plympton 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/idascript.py ADDED
@@ -0,0 +1,21 @@
1
+ # http://www.hexblog.com/?p=128
2
+ import os
3
+ import sys
4
+
5
+ class ToFileStdOut(object):
6
+ def __init__(self):
7
+ self.outfile = open(os.environ['PWD'] + "/" + 'idaout.txt', 'w')
8
+
9
+ def write(self, text):
10
+ self.outfile.write(text)
11
+
12
+ def flush(self):
13
+ self.outfile.flush()
14
+
15
+ def isatty(self):
16
+ return False
17
+
18
+ def __del__(self):
19
+ self.outfile.close()
20
+
21
+ sys.stdout = sys.stderr = ToFileStdOut()
data/lib/plympton.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'yaml'
2
+ require 'bigdecimal'
3
+ require 'bigdecimal/math'
4
+ require 'nokogiri'
5
+ require 'narray'
6
+
7
+ Dir[File.dirname(__FILE__) + "/plympton/*.rb"].each do |file|
8
+ require "plympton/#{File.basename(file, File.extname(file))}"
9
+ end
10
+
11
+ # Add in the YAML parsing hooks
12
+ YAML.add_domain_type("fuzz.io,2011", "Object") do |type, val|
13
+ YAML.object_maker(Plympton::Object, val)
14
+ end
15
+
16
+ YAML.add_domain_type("fuzz.io,2011", "Function") do |type, val|
17
+ YAML.object_maker(Plympton::Function, val)
18
+ end
19
+
20
+ YAML.add_domain_type("fuzz.io,2011", "Chunk") do |type, val|
21
+ YAML.object_maker(Plympton::Chunk, val)
22
+ end
23
+
24
+ YAML.add_domain_type("fuzz.io,2011", "Block") do |type, val|
25
+ YAML.object_maker(Plympton::Block, val)
26
+ end
@@ -0,0 +1,25 @@
1
+ MOD=8
2
+ WHITESPACE=18
3
+ INT=12
4
+ FLOAT=13
5
+ MULT=6
6
+ MINUS=5
7
+ MODIFIER=17
8
+ LPAREN=10
9
+ T__19=19
10
+ RPAREN=11
11
+ EXP=9
12
+ PLUS=4
13
+ MODVAR=14
14
+ DIGIT=16
15
+ DIV=7
16
+ UNMODVAR=15
17
+ 'ln'=19
18
+ '/'=7
19
+ '('=10
20
+ '*'=6
21
+ '-'=5
22
+ '+'=4
23
+ ')'=11
24
+ '^'=9
25
+ '%'=8
@@ -0,0 +1,704 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # solver.g
4
+ # --
5
+ # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
+ # Ruby runtime library version: 1.8.11
7
+ # Input grammar file: solver.g
8
+ # Generated at: 2011-11-02 11:29:53
9
+ #
10
+
11
+ # ~~~> start load path setup
12
+ this_directory = File.expand_path( File.dirname( __FILE__ ) )
13
+ $LOAD_PATH.unshift( this_directory ) unless $LOAD_PATH.include?( this_directory )
14
+
15
+ antlr_load_failed = proc do
16
+ load_path = $LOAD_PATH.map { |dir| ' - ' << dir }.join( $/ )
17
+ raise LoadError, <<-END.strip!
18
+
19
+ Failed to load the ANTLR3 runtime library (version 1.8.11):
20
+
21
+ Ensure the library has been installed on your system and is available
22
+ on the load path. If rubygems is available on your system, this can
23
+ be done with the command:
24
+
25
+ gem install antlr3
26
+
27
+ Current load path:
28
+ #{ load_path }
29
+
30
+ END
31
+ end
32
+
33
+ defined?( ANTLR3 ) or begin
34
+
35
+ # 1: try to load the ruby antlr3 runtime library from the system path
36
+ require 'antlr3'
37
+
38
+ rescue LoadError
39
+
40
+ # 2: try to load rubygems if it isn't already loaded
41
+ defined?( Gem ) or begin
42
+ require 'rubygems'
43
+ rescue LoadError
44
+ antlr_load_failed.call
45
+ end
46
+
47
+ # 3: try to activate the antlr3 gem
48
+ begin
49
+ Gem.activate( 'antlr3', '~> 1.8.11' )
50
+ rescue Gem::LoadError
51
+ antlr_load_failed.call
52
+ end
53
+
54
+ require 'antlr3'
55
+
56
+ end
57
+ # <~~~ end load path setup
58
+
59
+
60
+ module Solver
61
+ # TokenData defines all of the token type integer values
62
+ # as constants, which will be included in all
63
+ # ANTLR-generated recognizers.
64
+ const_defined?( :TokenData ) or TokenData = ANTLR3::TokenScheme.new
65
+
66
+ module TokenData
67
+
68
+ # define the token constants
69
+ define_tokens( :MOD => 8, :WHITESPACE => 18, :FLOAT => 13, :INT => 12,
70
+ :MULT => 6, :MINUS => 5, :EOF => -1, :MODIFIER => 17,
71
+ :LPAREN => 10, :T__19 => 19, :RPAREN => 11, :EXP => 9,
72
+ :PLUS => 4, :MODVAR => 14, :DIGIT => 16, :DIV => 7, :UNMODVAR => 15 )
73
+
74
+ end
75
+
76
+
77
+ class Lexer < ANTLR3::Lexer
78
+ @grammar_home = Solver
79
+ include TokenData
80
+
81
+
82
+ begin
83
+ generated_using( "solver.g", "3.2.1-SNAPSHOT Jul 31, 2010 19:34:52", "1.8.11" )
84
+ rescue NoMethodError => error
85
+ # ignore
86
+ end
87
+
88
+ RULE_NAMES = [ "PLUS", "MINUS", "MULT", "DIV", "MOD", "EXP", "LPAREN",
89
+ "RPAREN", "T__19", "INT", "FLOAT", "MODVAR", "UNMODVAR",
90
+ "WHITESPACE", "DIGIT", "MODIFIER" ].freeze
91
+ RULE_METHODS = [ :plus!, :minus!, :mult!, :div!, :mod!, :exp!, :lparen!,
92
+ :rparen!, :t__19!, :int!, :float!, :modvar!, :unmodvar!,
93
+ :whitespace!, :digit!, :modifier! ].freeze
94
+
95
+
96
+ def initialize( input=nil, options = {} )
97
+ super( input, options )
98
+
99
+ end
100
+
101
+ # - - - - - - begin action @lexer::members - - - - - -
102
+ # solver.g
103
+
104
+
105
+ # Recovery function handling errors
106
+ def recover( error = $! )
107
+ puts "Lexer Recovering: #{error}"
108
+ exit(1)
109
+ end
110
+
111
+ # Reporting function handling errors
112
+ def report_error( error = $! )
113
+ puts "Lexer Reporting: #{error}"
114
+ exit(1)
115
+ end
116
+
117
+ # - - - - - - end action @lexer::members - - - - - - -
118
+
119
+
120
+ # - - - - - - - - - - - lexer rules - - - - - - - - - - - -
121
+ # lexer rule plus! (PLUS)
122
+ # (in solver.g)
123
+ def plus!
124
+ # -> uncomment the next line to manually enable rule tracing
125
+ # trace_in( __method__, 1 )
126
+
127
+ type = PLUS
128
+ channel = ANTLR3::DEFAULT_CHANNEL
129
+
130
+
131
+ # - - - - main rule block - - - -
132
+ # at line 21:8: '+'
133
+ match( 0x2b )
134
+
135
+
136
+ @state.type = type
137
+ @state.channel = channel
138
+
139
+ ensure
140
+ # -> uncomment the next line to manually enable rule tracing
141
+ # trace_out( __method__, 1 )
142
+
143
+ end
144
+
145
+ # lexer rule minus! (MINUS)
146
+ # (in solver.g)
147
+ def minus!
148
+ # -> uncomment the next line to manually enable rule tracing
149
+ # trace_in( __method__, 2 )
150
+
151
+ type = MINUS
152
+ channel = ANTLR3::DEFAULT_CHANNEL
153
+
154
+
155
+ # - - - - main rule block - - - -
156
+ # at line 22:9: '-'
157
+ match( 0x2d )
158
+
159
+
160
+ @state.type = type
161
+ @state.channel = channel
162
+
163
+ ensure
164
+ # -> uncomment the next line to manually enable rule tracing
165
+ # trace_out( __method__, 2 )
166
+
167
+ end
168
+
169
+ # lexer rule mult! (MULT)
170
+ # (in solver.g)
171
+ def mult!
172
+ # -> uncomment the next line to manually enable rule tracing
173
+ # trace_in( __method__, 3 )
174
+
175
+ type = MULT
176
+ channel = ANTLR3::DEFAULT_CHANNEL
177
+
178
+
179
+ # - - - - main rule block - - - -
180
+ # at line 23:8: '*'
181
+ match( 0x2a )
182
+
183
+
184
+ @state.type = type
185
+ @state.channel = channel
186
+
187
+ ensure
188
+ # -> uncomment the next line to manually enable rule tracing
189
+ # trace_out( __method__, 3 )
190
+
191
+ end
192
+
193
+ # lexer rule div! (DIV)
194
+ # (in solver.g)
195
+ def div!
196
+ # -> uncomment the next line to manually enable rule tracing
197
+ # trace_in( __method__, 4 )
198
+
199
+ type = DIV
200
+ channel = ANTLR3::DEFAULT_CHANNEL
201
+
202
+
203
+ # - - - - main rule block - - - -
204
+ # at line 24:7: '/'
205
+ match( 0x2f )
206
+
207
+
208
+ @state.type = type
209
+ @state.channel = channel
210
+
211
+ ensure
212
+ # -> uncomment the next line to manually enable rule tracing
213
+ # trace_out( __method__, 4 )
214
+
215
+ end
216
+
217
+ # lexer rule mod! (MOD)
218
+ # (in solver.g)
219
+ def mod!
220
+ # -> uncomment the next line to manually enable rule tracing
221
+ # trace_in( __method__, 5 )
222
+
223
+ type = MOD
224
+ channel = ANTLR3::DEFAULT_CHANNEL
225
+
226
+
227
+ # - - - - main rule block - - - -
228
+ # at line 25:7: '%'
229
+ match( 0x25 )
230
+
231
+
232
+ @state.type = type
233
+ @state.channel = channel
234
+
235
+ ensure
236
+ # -> uncomment the next line to manually enable rule tracing
237
+ # trace_out( __method__, 5 )
238
+
239
+ end
240
+
241
+ # lexer rule exp! (EXP)
242
+ # (in solver.g)
243
+ def exp!
244
+ # -> uncomment the next line to manually enable rule tracing
245
+ # trace_in( __method__, 6 )
246
+
247
+ type = EXP
248
+ channel = ANTLR3::DEFAULT_CHANNEL
249
+
250
+
251
+ # - - - - main rule block - - - -
252
+ # at line 26:7: '^'
253
+ match( 0x5e )
254
+
255
+
256
+ @state.type = type
257
+ @state.channel = channel
258
+
259
+ ensure
260
+ # -> uncomment the next line to manually enable rule tracing
261
+ # trace_out( __method__, 6 )
262
+
263
+ end
264
+
265
+ # lexer rule lparen! (LPAREN)
266
+ # (in solver.g)
267
+ def lparen!
268
+ # -> uncomment the next line to manually enable rule tracing
269
+ # trace_in( __method__, 7 )
270
+
271
+ type = LPAREN
272
+ channel = ANTLR3::DEFAULT_CHANNEL
273
+
274
+
275
+ # - - - - main rule block - - - -
276
+ # at line 27:10: '('
277
+ match( 0x28 )
278
+
279
+
280
+ @state.type = type
281
+ @state.channel = channel
282
+
283
+ ensure
284
+ # -> uncomment the next line to manually enable rule tracing
285
+ # trace_out( __method__, 7 )
286
+
287
+ end
288
+
289
+ # lexer rule rparen! (RPAREN)
290
+ # (in solver.g)
291
+ def rparen!
292
+ # -> uncomment the next line to manually enable rule tracing
293
+ # trace_in( __method__, 8 )
294
+
295
+ type = RPAREN
296
+ channel = ANTLR3::DEFAULT_CHANNEL
297
+
298
+
299
+ # - - - - main rule block - - - -
300
+ # at line 28:10: ')'
301
+ match( 0x29 )
302
+
303
+
304
+ @state.type = type
305
+ @state.channel = channel
306
+
307
+ ensure
308
+ # -> uncomment the next line to manually enable rule tracing
309
+ # trace_out( __method__, 8 )
310
+
311
+ end
312
+
313
+ # lexer rule t__19! (T__19)
314
+ # (in solver.g)
315
+ def t__19!
316
+ # -> uncomment the next line to manually enable rule tracing
317
+ # trace_in( __method__, 9 )
318
+
319
+ type = T__19
320
+ channel = ANTLR3::DEFAULT_CHANNEL
321
+
322
+
323
+ # - - - - main rule block - - - -
324
+ # at line 29:9: 'ln'
325
+ match( "ln" )
326
+
327
+
328
+ @state.type = type
329
+ @state.channel = channel
330
+
331
+ ensure
332
+ # -> uncomment the next line to manually enable rule tracing
333
+ # trace_out( __method__, 9 )
334
+
335
+ end
336
+
337
+ # lexer rule int! (INT)
338
+ # (in solver.g)
339
+ def int!
340
+ # -> uncomment the next line to manually enable rule tracing
341
+ # trace_in( __method__, 10 )
342
+
343
+ type = INT
344
+ channel = ANTLR3::DEFAULT_CHANNEL
345
+
346
+
347
+ # - - - - main rule block - - - -
348
+ # at line 107:11: ( DIGIT )+
349
+ # at file 107:11: ( DIGIT )+
350
+ match_count_1 = 0
351
+ while true
352
+ alt_1 = 2
353
+ look_1_0 = @input.peek( 1 )
354
+
355
+ if ( look_1_0.between?( 0x30, 0x39 ) )
356
+ alt_1 = 1
357
+
358
+ end
359
+ case alt_1
360
+ when 1
361
+ # at line 107:12: DIGIT
362
+ digit!
363
+
364
+ else
365
+ match_count_1 > 0 and break
366
+ eee = EarlyExit(1)
367
+
368
+
369
+ raise eee
370
+ end
371
+ match_count_1 += 1
372
+ end
373
+
374
+
375
+
376
+ @state.type = type
377
+ @state.channel = channel
378
+
379
+ ensure
380
+ # -> uncomment the next line to manually enable rule tracing
381
+ # trace_out( __method__, 10 )
382
+
383
+ end
384
+
385
+ # lexer rule float! (FLOAT)
386
+ # (in solver.g)
387
+ def float!
388
+ # -> uncomment the next line to manually enable rule tracing
389
+ # trace_in( __method__, 11 )
390
+
391
+ type = FLOAT
392
+ channel = ANTLR3::DEFAULT_CHANNEL
393
+
394
+
395
+ # - - - - main rule block - - - -
396
+ # at line 108:12: INT '.' INT
397
+ int!
398
+ match( 0x2e )
399
+ int!
400
+
401
+
402
+ @state.type = type
403
+ @state.channel = channel
404
+
405
+ ensure
406
+ # -> uncomment the next line to manually enable rule tracing
407
+ # trace_out( __method__, 11 )
408
+
409
+ end
410
+
411
+ # lexer rule modvar! (MODVAR)
412
+ # (in solver.g)
413
+ def modvar!
414
+ # -> uncomment the next line to manually enable rule tracing
415
+ # trace_in( __method__, 12 )
416
+
417
+ type = MODVAR
418
+ channel = ANTLR3::DEFAULT_CHANNEL
419
+
420
+
421
+ # - - - - main rule block - - - -
422
+ # at line 109:13: 'A' .. 'G' ( MODIFIER )
423
+ match_range( 0x41, 0x47 )
424
+ # at line 109:21: ( MODIFIER )
425
+ # at line 109:22: MODIFIER
426
+ modifier!
427
+
428
+
429
+
430
+ @state.type = type
431
+ @state.channel = channel
432
+
433
+ ensure
434
+ # -> uncomment the next line to manually enable rule tracing
435
+ # trace_out( __method__, 12 )
436
+
437
+ end
438
+
439
+ # lexer rule unmodvar! (UNMODVAR)
440
+ # (in solver.g)
441
+ def unmodvar!
442
+ # -> uncomment the next line to manually enable rule tracing
443
+ # trace_in( __method__, 13 )
444
+
445
+ type = UNMODVAR
446
+ channel = ANTLR3::DEFAULT_CHANNEL
447
+
448
+
449
+ # - - - - main rule block - - - -
450
+ # at line 110:14: ( 'R' | 'U' | 'V' )
451
+ if @input.peek(1) == 0x52 || @input.peek( 1 ).between?( 0x55, 0x56 )
452
+ @input.consume
453
+ else
454
+ mse = MismatchedSet( nil )
455
+ recover mse
456
+ raise mse
457
+ end
458
+
459
+
460
+
461
+
462
+ @state.type = type
463
+ @state.channel = channel
464
+
465
+ ensure
466
+ # -> uncomment the next line to manually enable rule tracing
467
+ # trace_out( __method__, 13 )
468
+
469
+ end
470
+
471
+ # lexer rule whitespace! (WHITESPACE)
472
+ # (in solver.g)
473
+ def whitespace!
474
+ # -> uncomment the next line to manually enable rule tracing
475
+ # trace_in( __method__, 14 )
476
+
477
+ type = WHITESPACE
478
+ channel = ANTLR3::DEFAULT_CHANNEL
479
+
480
+
481
+ # - - - - main rule block - - - -
482
+ # at line 111:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
483
+ # at file 111:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
484
+ match_count_2 = 0
485
+ while true
486
+ alt_2 = 2
487
+ look_2_0 = @input.peek( 1 )
488
+
489
+ if ( look_2_0.between?( 0x9, 0xa ) || look_2_0.between?( 0xc, 0xd ) || look_2_0 == 0x20 )
490
+ alt_2 = 1
491
+
492
+ end
493
+ case alt_2
494
+ when 1
495
+ # at line
496
+ if @input.peek( 1 ).between?( 0x9, 0xa ) || @input.peek( 1 ).between?( 0xc, 0xd ) || @input.peek(1) == 0x20
497
+ @input.consume
498
+ else
499
+ mse = MismatchedSet( nil )
500
+ recover mse
501
+ raise mse
502
+ end
503
+
504
+
505
+
506
+ else
507
+ match_count_2 > 0 and break
508
+ eee = EarlyExit(2)
509
+
510
+
511
+ raise eee
512
+ end
513
+ match_count_2 += 1
514
+ end
515
+
516
+ # --> action
517
+ channel = HIDDEN;
518
+ # <-- action
519
+
520
+
521
+ @state.type = type
522
+ @state.channel = channel
523
+
524
+ ensure
525
+ # -> uncomment the next line to manually enable rule tracing
526
+ # trace_out( __method__, 14 )
527
+
528
+ end
529
+
530
+ # lexer rule digit! (DIGIT)
531
+ # (in solver.g)
532
+ def digit!
533
+ # -> uncomment the next line to manually enable rule tracing
534
+ # trace_in( __method__, 15 )
535
+
536
+
537
+ # - - - - main rule block - - - -
538
+ # at line 117:18: '0' .. '9'
539
+ match_range( 0x30, 0x39 )
540
+
541
+ ensure
542
+ # -> uncomment the next line to manually enable rule tracing
543
+ # trace_out( __method__, 15 )
544
+
545
+ end
546
+
547
+ # lexer rule modifier! (MODIFIER)
548
+ # (in solver.g)
549
+ def modifier!
550
+ # -> uncomment the next line to manually enable rule tracing
551
+ # trace_in( __method__, 16 )
552
+
553
+
554
+ # - - - - main rule block - - - -
555
+ # at line
556
+ if @input.peek(1) == 0x61 || @input.peek(1) == 0x73
557
+ @input.consume
558
+ else
559
+ mse = MismatchedSet( nil )
560
+ recover mse
561
+ raise mse
562
+ end
563
+
564
+
565
+
566
+ ensure
567
+ # -> uncomment the next line to manually enable rule tracing
568
+ # trace_out( __method__, 16 )
569
+
570
+ end
571
+
572
+ # main rule used to study the input at the current position,
573
+ # and choose the proper lexer rule to call in order to
574
+ # fetch the next token
575
+ #
576
+ # usually, you don't make direct calls to this method,
577
+ # but instead use the next_token method, which will
578
+ # build and emit the actual next token
579
+ def token!
580
+ # at line 1:8: ( PLUS | MINUS | MULT | DIV | MOD | EXP | LPAREN | RPAREN | T__19 | INT | FLOAT | MODVAR | UNMODVAR | WHITESPACE )
581
+ alt_3 = 14
582
+ alt_3 = @dfa3.predict( @input )
583
+ case alt_3
584
+ when 1
585
+ # at line 1:10: PLUS
586
+ plus!
587
+
588
+ when 2
589
+ # at line 1:15: MINUS
590
+ minus!
591
+
592
+ when 3
593
+ # at line 1:21: MULT
594
+ mult!
595
+
596
+ when 4
597
+ # at line 1:26: DIV
598
+ div!
599
+
600
+ when 5
601
+ # at line 1:30: MOD
602
+ mod!
603
+
604
+ when 6
605
+ # at line 1:34: EXP
606
+ exp!
607
+
608
+ when 7
609
+ # at line 1:38: LPAREN
610
+ lparen!
611
+
612
+ when 8
613
+ # at line 1:45: RPAREN
614
+ rparen!
615
+
616
+ when 9
617
+ # at line 1:52: T__19
618
+ t__19!
619
+
620
+ when 10
621
+ # at line 1:58: INT
622
+ int!
623
+
624
+ when 11
625
+ # at line 1:62: FLOAT
626
+ float!
627
+
628
+ when 12
629
+ # at line 1:68: MODVAR
630
+ modvar!
631
+
632
+ when 13
633
+ # at line 1:75: UNMODVAR
634
+ unmodvar!
635
+
636
+ when 14
637
+ # at line 1:84: WHITESPACE
638
+ whitespace!
639
+
640
+ end
641
+ end
642
+
643
+
644
+ # - - - - - - - - - - DFA definitions - - - - - - - - - - -
645
+ class DFA3 < ANTLR3::DFA
646
+ EOT = unpack( 10, -1, 1, 14, 5, -1 )
647
+ EOF = unpack( 16, -1 )
648
+ MIN = unpack( 1, 9, 9, -1, 1, 46, 5, -1 )
649
+ MAX = unpack( 1, 108, 9, -1, 1, 57, 5, -1 )
650
+ ACCEPT = unpack( 1, -1, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7,
651
+ 1, 8, 1, 9, 1, -1, 1, 12, 1, 13, 1, 14, 1, 10, 1,
652
+ 11 )
653
+ SPECIAL = unpack( 16, -1 )
654
+ TRANSITION = [
655
+ unpack( 2, 13, 1, -1, 2, 13, 18, -1, 1, 13, 4, -1, 1, 5, 2, -1,
656
+ 1, 7, 1, 8, 1, 3, 1, 1, 1, -1, 1, 2, 1, -1, 1, 4, 10, 10,
657
+ 7, -1, 7, 11, 10, -1, 1, 12, 2, -1, 2, 12, 7, -1, 1, 6,
658
+ 13, -1, 1, 9 ),
659
+ unpack( ),
660
+ unpack( ),
661
+ unpack( ),
662
+ unpack( ),
663
+ unpack( ),
664
+ unpack( ),
665
+ unpack( ),
666
+ unpack( ),
667
+ unpack( ),
668
+ unpack( 1, 15, 1, -1, 10, 10 ),
669
+ unpack( ),
670
+ unpack( ),
671
+ unpack( ),
672
+ unpack( ),
673
+ unpack( )
674
+ ].freeze
675
+
676
+ ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z |
677
+ if a > 0 and z < 0
678
+ MAX[ i ] %= 0x10000
679
+ end
680
+ end
681
+
682
+ @decision = 3
683
+
684
+
685
+ def description
686
+ <<-'__dfa_description__'.strip!
687
+ 1:1: Tokens : ( PLUS | MINUS | MULT | DIV | MOD | EXP | LPAREN | RPAREN | T__19 | INT | FLOAT | MODVAR | UNMODVAR | WHITESPACE );
688
+ __dfa_description__
689
+ end
690
+ end
691
+
692
+
693
+ private
694
+
695
+ def initialize_dfas
696
+ super rescue nil
697
+ @dfa3 = DFA3.new( self, 3 )
698
+
699
+ end
700
+ end # class Lexer < ANTLR3::Lexer
701
+
702
+ at_exit { Lexer.main( ARGV ) } if __FILE__ == $0
703
+ end
704
+