~ubuntu-branches/ubuntu/trusty/happy/trusty-proposed

« back to all changes in this revision

Viewing changes to examples/glr/bio-eg/Bio.y

  • Committer: Bazaar Package Importer
  • Author(s): Ian Lynagh (wibble)
  • Date: 2006-10-26 22:52:14 UTC
  • mfrom: (1.2.2 upstream) (3.1.1 dapper)
  • Revision ID: james.westby@ubuntu.com-20061026225214-6jmf0n3ykkc9elyw
Tags: 1.16~rc2-1
* New upstream (release candidate) version.
* Removed happy/ prefixes from various paths in debian/rules and
  debian/docs.
* doc/configure generated by autoconf is in the Debian diff.
* Build using cabal:
  * Various debian/rules changes.
  * Create debian/get_version.hs for extracting the version from the cabal
    file.
  * Requires ghc6 >= 6.4.2.
  * No longer tries to detect platform. Closes: #340325, #332979.
  * Removed autotool-dev build-dep.
* Add 'XSLTPROC_OPTS = --nonet' to doc/config.mk.in.
* Remove src/Parser.ly and src/AttrGrammarParser.ly before cleaning so
  the generated files don't get cleaned.
* Set Standards-Version to 3.7.2 (no changes needed).
* Removed PS and DVI stanzas from debian/doc-base as we don't build
  the documentation those ways.
* Removed content-free postinst and prerm.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
{
 
2
 
 
3
-- (c) 2004 University of Durham, Julia Fischer
 
4
-- Portions of the grammar are derived from work by Leung/Mellish/Robertson
 
5
 
 
6
import Char
 
7
}
 
8
 
 
9
%tokentype { Token }
 
10
 
 
11
%token
 
12
        a       { Base_A }
 
13
        c       { Base_C }
 
14
        g       { Base_G }
 
15
        t       { Base_T }
 
16
 
 
17
%lexer { lexer } { TokenEOF } 
 
18
 
 
19
%%
 
20
 
 
21
 
22
 :  Intergenic_noise Match Intergenic_noise {}                          
 
23
                -- replace NSkip by Intergenic_noise?
 
24
 
 
25
Intergenic_noise 
 
26
 : {}
 
27
 | Intergenic_noise N {}                -- Left-assoc, less stack?
 
28
 
 
29
Match  
 
30
 : Promoter Translation {} 
 
31
 
 
32
Promoter :: {Int}
 
33
 : Promoter_consensus {1}
 
34
 | Promoter_hcv_large {2}
 
35
 | Promoter_cart {3}
 
36
 | Promoter_hcv_small {4}
 
37
 
 
38
 
 
39
--------------------
 
40
-- HCV SMALL
 
41
--------------------
 
42
-- regions [data from Leung (hvc_small.gr)]
 
43
Promoter_hcv_small 
 
44
 : N V N7_skip K B K N20_skip R N12_skip  {}    --mod 3 = 0
 
45
 | K N B N N D N18_skip H N9_skip V N     {}    --mod 3 = 0
 
46
 | t N20_skip N6_skip t N4_skip t N6_skip {}    --mod 3 = 0
 
47
 
 
48
 
 
49
 
 
50
--------------------
 
51
-- CONSENSUS
 
52
--------------------
 
53
-- regions [data from Leung (consensus.gr)]
 
54
 
 
55
Promoter_consensus 
 
56
 : Minus_35 N15_skip Minus_10 {}
 
57
 | Minus_35 N15_skip N1_skip Minus_10 N5_skip {}
 
58
 | Minus_35 N15_skip N2_skip Minus_10 N5_skip {}
 
59
 | Minus_35 N15_skip N3_skip Minus_10 N5_skip {}
 
60
 | Minus_35 N15_skip N4_skip Minus_10 N5_skip {}
 
61
 
 
62
Minus_35  
 
63
 : t t g a c a {}
 
64
 
 
65
Minus_10  
 
66
 : t a t a a t {}
 
67
 
 
68
--------------------
 
69
-- HVC LARGE
 
70
--------------------
 
71
-- regions [data from Leung (hvc_large.gr)]
 
72
    
 
73
Promoter_hcv_large 
 
74
 : H N11_skip D Y B N3_skip H N12_skip B N5_skip Y N2_skip W N4_skip {}
 
75
 | N D N3_skip V N1_skip B N12_skip H N2_skip B D N2_skip H N2_skip H B N4_skip W N6_skip H H {}
 
76
 | N H N B N D N6_skip H N4_skip K B N6_skip D B N3_skip B N4_skip V N4_skip H N2_skip D N7_skip {}
 
77
 | N N D N12_skip B D N2_skip V N2_skip H D N2_skip D H B N7_skip B D N5_skip H H N6_skip {}
 
78
 | D N D N12_skip B N5_skip H N13_skip B N H H W N6_skip H Y {}
 
79
 | N N D N B N D N H N3_skip D N4_skip V N2_skip H N D H N6_skip H N3_skip D N6_skip H N2_skip B N3_skip {}
 
80
 | D N8_skip H N1_skip H N1_skip D N4_skip H N3_skip V H N11_skip H N2_skip H N5_skip D N1_skip V N1_skip H {}
 
81
 | H N3_skip B N9_skip H N12_skip H D N4_skip W B N2_skip D D H N1_skip D N5_skip D H   {}
 
82
 | V N7_skip V N2_skip D N2_skip D N6_skip B H N11_skip D D N1_skip H N1_skip H H N1_skip B N2_skip   {}
 
83
 | D N8_skip B D D N2_skip B N6_skip H N4_skip D N5_skip D N1_skip H D N2_skip D N3_skip D D N6_skip   {}
 
84
 | B N13_skip H N1_skip D H V N14_skip B N1_skip V N2_skip D N1_skip D V D N1_skip D N3_skip H   {}
 
85
 | H V N4_skip B N1_skip D N6_skip D N4_skip D N4_skip H H N3_skip B N6_skip B N1_skip D N3_skip D N1_skip D N4_skip {}
 
86
 | W N3_skip V N9_skip D N11_skip B N1_skip D H N5_skip D H N1_skip D N1_skip H D N6_skip   {}
 
87
 | K N2_skip D N3_skip H N1_skip H N6_skip H N2_skip B N5_skip D D N7_skip V N2_skip D N1_skip H H N7_skip   {}
 
88
 | D N11_skip H D D N2_skip D N6_skip D N3_skip H N6_skip V N1_skip D D N2_skip H B N1_skip B N1_skip   {}            
 
89
 | H N3_skip B N1_skip H N6_skip V N1_skip B N2_skip V N2_skip D N7_skip B N8_skip H N3_skip H D N1_skip H N1_skip H N1_skip   {}
 
90
 | B N4_skip B N12_skip H N4_skip V N2_skip H D N2_skip V H N1_skip H N2_skip H N3_skip B N1_skip K N4_skip   {}              
 
91
 | W D N7_skip B N1_skip D N2_skip D N2_skip W N1_skip D H N2_skip D N12_skip D N5_skip H   {}
 
92
 | a N2_skip t N4_skip g N18_skip {}
 
93
 
 
94
--------------------
 
95
-- CART
 
96
--------------------
 
97
-- regions [data from Leung (cart.gr)]
 
98
 
 
99
Promoter_cart 
 
100
 : N N t a N N N N N N N N N N N {}
 
101
 | N N V a N N N t N N N N N N N {}
 
102
 | t N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N t B N N N t N N N N N N N t N N N N N N N {}
 
103
 
 
104
 
 
105
--------------------------------------------------------------------------------------------------------------
 
106
--------------------------------------------------------------------------------------------------------------
 
107
 
 
108
Translation 
 
109
 : Start Mincodon Stop {}
 
110
 | Start Mincodon Codon Stop {}
 
111
 | Start Mincodon Codon Codon Stop {}
 
112
 | Start Mincodon Codon Codon Codon Stop {}
 
113
 | Start Mincodon Codon Codon Codon Codon Stop {}
 
114
 | Start Mincodon Codon Codon Codon Codon Codon Stop {}
 
115
 | Start Mincodon Codon Codon Codon Codon Codon Codon Stop {}
 
116
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
117
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
118
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
119
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
120
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
121
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
122
 | Start Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
123
 | Start Mincodon Mincodon Stop {}
 
124
 | Start Mincodon Mincodon Codon Stop {}
 
125
 | Start Mincodon Mincodon Codon Codon Stop {}
 
126
 | Start Mincodon Mincodon Codon Codon Codon Stop {}
 
127
 | Start Mincodon Mincodon Codon Codon Codon Codon Stop {}
 
128
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Stop {}
 
129
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Stop {}
 
130
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
131
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
132
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
133
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
134
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
135
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
136
 | Start Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
137
 | Start Mincodon Mincodon Mincodon Stop {}
 
138
 | Start Mincodon Mincodon Mincodon Codon Stop {}
 
139
 | Start Mincodon Mincodon Mincodon Codon Codon Stop {}
 
140
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Stop {}
 
141
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Stop {}
 
142
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Stop {}
 
143
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Stop {}
 
144
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
145
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
146
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
147
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
148
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
149
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
150
 | Start Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
151
 | Start Mincodon Mincodon Mincodon Mincodon Stop {}
 
152
 | Start Mincodon Mincodon Mincodon Mincodon Codon Stop {}
 
153
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Stop {}
 
154
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Stop {}
 
155
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Stop {}
 
156
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Stop {}
 
157
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Stop {}
 
158
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
159
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
160
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
161
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
162
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
163
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
164
 | Start Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
165
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Stop {}
 
166
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Stop {}
 
167
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Stop {}
 
168
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Stop {}
 
169
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Stop {}
 
170
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Stop {}
 
171
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Stop {}
 
172
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
173
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
174
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
175
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
176
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
177
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
178
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Stop {}
 
179
 | Start Mincodon Mincodon Mincodon Mincodon Mincodon Mincodon Stop {} --252 Basen
 
180
 
 
181
 
 
182
Mincodon : Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon Codon {} --42 Basen
 
183
 
 
184
 
 
185
 
 
186
 
 
187
N0_skip 
 
188
 : {}
 
189
N1_skip 
 
190
 : N {}                         -- match starts one place on
 
191
N2_skip 
 
192
 : N N {}                       -- match starts two places on
 
193
N3_skip  
 
194
 : N N N {}                     -- missing an entire codon
 
195
N4_skip 
 
196
 : N N N N {}                   -- missing 4 bases
 
197
N5_skip 
 
198
 : N N N N N {}                 -- missing 5 bases
 
199
N6_skip 
 
200
 : N N N N N N {}               -- missing 6 bases
 
201
N7_skip 
 
202
 : N N N N N N N {}             -- missing 8 bases
 
203
N8_skip 
 
204
 : N N N N N N N N {}           -- missing 7 bases
 
205
N9_skip 
 
206
 : N N N N N N N N N {}         -- missing 9 bases
 
207
N10_skip 
 
208
 : N N N N N N N N N N {}       -- missing 10 bases
 
209
N11_skip 
 
210
 : N10_skip N1_skip {}          -- missing 11 bases
 
211
N12_skip 
 
212
 : N10_skip N2_skip {}          -- missing 12 bases
 
213
N13_skip 
 
214
 : N10_skip N3_skip {}          -- missing 13 bases
 
215
N14_skip 
 
216
 : N10_skip N4_skip {}          -- missing 14 bases
 
217
N15_skip 
 
218
 : N10_skip N5_skip {}          -- missing 15 bases
 
219
N16_skip 
 
220
 : N10_skip N6_skip {}          -- missing 16 bases
 
221
N17_skip 
 
222
 : N10_skip N7_skip {}          -- missing 17 bases
 
223
N18_skip 
 
224
 : N10_skip N8_skip {}          -- missing 18 bases
 
225
N19_skip 
 
226
 : N10_skip N9_skip {}          -- missing 19 bases
 
227
N20_skip 
 
228
 : N10_skip N10_skip {}         -- missing 20 bases
 
229
N30_skip 
 
230
 : N10_skip N10_skip N10_skip {}                -- missing 30 bases
 
231
N40_skip 
 
232
 : N10_skip N10_skip N10_skip N10_skip {}               -- missing 40 bases
 
233
N50_skip 
 
234
 : N10_skip N10_skip N10_skip N10_skip N10_skip {}              -- missing 50 bases
 
235
N60_skip 
 
236
 : N10_skip N50_skip {}         -- missing 40 bases
 
237
N70_skip 
 
238
 : N10_skip N10_skip N50_skip {}                -- missing 50 bases
 
239
N80_skip 
 
240
 : N10_skip N10_skip N10_skip N50_skip {}               -- missing 40 bases
 
241
N90_skip 
 
242
 : N10_skip N10_skip N10_skip N10_skip N50_skip{}               -- missing 50 bases
 
243
N100_skip 
 
244
 : N50_skip N50_skip {}         
 
245
 
 
246
 
 
247
 
 
248
--  Definitions of base categories according to the
 
249
--  International Union of Biochemistry (IUB)
 
250
--  Standard Nucleotide Codes. [Leung_data]
 
251
 
 
252
N                       -- any base
 
253
 : a {}
 
254
 | c {}
 
255
 | g {}
 
256
 | t {}
 
257
 
 
258
Y                       -- pyrimidin
 
259
 : c {}
 
260
 | t {}
 
261
 
 
262
R                       -- purine
 
263
 : a {}
 
264
 | g {}
 
265
 
 
266
S                       -- strong bonding bases
 
267
 : g {}
 
268
 | c {}
 
269
 
 
270
W                       -- weak bonding bases
 
271
 : a {}
 
272
 | t {}
 
273
 
 
274
K                       -- keto bases
 
275
 : g {}
 
276
 | t {}
 
277
 
 
278
AM                      -- aMino bases
 
279
 : a {}
 
280
 | c {}
 
281
 
 
282
B                       -- not base a
 
283
 : g {}
 
284
 | c {}
 
285
 | t {}
 
286
 
 
287
D                       -- not base c
 
288
 : a {}
 
289
 | g {}
 
290
 | t {}
 
291
 
 
292
H                       -- not base g
 
293
 : a {}
 
294
 | c {}
 
295
 | t {}
 
296
 
 
297
V                       -- not base t
 
298
 : a {}
 
299
 | c {}
 
300
 | g {}
 
301
 
 
302
 
 
303
 
 
304
Base 
 
305
 : a {}
 
306
 | c {}
 
307
 | g {}
 
308
 | t {}
 
309
 
 
310
--------------------
 
311
-- codons
 
312
 
 
313
Start : a t g {}                -- start codon
 
314
 
 
315
Stop                            -- stop codons
 
316
 : t a a {}
 
317
 | t a g {}
 
318
 | t g a {}
 
319
 
 
320
Codon                           -- any other codon
 
321
 : a a a {}
 
322
 | a a c {}
 
323
 | a a g {}
 
324
 | a a t {}
 
325
 | a c a {}
 
326
 | a c c {}
 
327
 | a c g {}
 
328
 | a c t {}
 
329
 | a g a {}
 
330
 | a g c {}
 
331
 | a g g {}
 
332
 | a g t {}
 
333
 | a t a {}
 
334
 | a t c {}
 
335
 | a t g {}
 
336
 | a t t {}
 
337
 | c a a {}
 
338
 | c a c {}
 
339
 | c a g {}
 
340
 | c a t {}
 
341
 | c c a {}
 
342
 | c c c {}
 
343
 | c c g {}
 
344
 | c c t {}
 
345
 | c g a {}
 
346
 | c g c {}
 
347
 | c g g {}
 
348
 | c g t {}
 
349
 | c t a {}
 
350
 | c t c {}
 
351
 | c t g {}
 
352
 | c t t {}
 
353
 | g a a {}
 
354
 | g a c {}
 
355
 | g a g {}
 
356
 | g a t {}
 
357
 | g c a {}
 
358
 | g c c {}
 
359
 | g c g {}
 
360
 | g c t {}
 
361
 | g g a {}
 
362
 | g g c {}
 
363
 | g g g {}
 
364
 | g g t {}
 
365
 | g t a {}
 
366
 | g t c {}
 
367
 | g t g {}
 
368
 | g t t {}
 
369
 | t a c {}
 
370
 | t a t {}
 
371
 | t c a {}
 
372
 | t c c {}
 
373
 | t c g {}
 
374
 | t c t {}
 
375
 | t g c {}
 
376
 | t g g {}
 
377
 | t g t {}
 
378
 | t t a {}
 
379
 | t t c {}
 
380
 | t t g {}
 
381
 | t t t {}
 
382
 
 
383
--------------------
 
384
 
 
385
 
 
386
 
 
387
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
388
--some aux code
 
389
{
 
390
 
 
391
data Token
 
392
        = TokenEOF
 
393
        | Base_A
 
394
        | Base_C
 
395
        | Base_G
 
396
        | Base_T
 
397
  deriving (Show,Eq, Ord)
 
398
 
 
399
 
 
400
lexer :: String -> [Token]
 
401
lexer [] = []
 
402
lexer (' ':cs) = lexer cs
 
403
lexer ('\n':cs) = lexer cs
 
404
lexer ('a':cs) = Base_A : lexer cs
 
405
lexer ('c':cs) = Base_C : lexer cs
 
406
lexer ('g':cs) = Base_G : lexer cs
 
407
lexer ('t':cs) = Base_T : lexer cs
 
408
 
 
409
}