antlr3 1.6.3 → 1.7.2
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/Manifest.txt +3 -3
- data/java/RubyTarget.java +374 -364
- data/java/antlr-full-3.2.1.jar +0 -0
- data/lib/antlr3/error.rb +1 -1
- data/lib/antlr3/main.rb +2 -2
- data/lib/antlr3/recognizers.rb +8 -16
- data/lib/antlr3/streams.rb +51 -0
- data/lib/antlr3/task.rb +1 -0
- data/lib/antlr3/template.rb +5 -2
- data/lib/antlr3/template/{group-lexer.rb → group-file-lexer.rb} +57 -57
- data/lib/antlr3/template/{group-parser.rb → group-file-parser.rb} +110 -110
- data/lib/antlr3/template/group-file.rb +20 -0
- data/lib/antlr3/tree.rb +16 -14
- data/lib/antlr3/tree/debug.rb +7 -7
- data/lib/antlr3/tree/wizard.rb +3 -3
- data/lib/antlr3/version.rb +2 -2
- data/samples/ANTLRv3Grammar.g +0 -9
- data/templates/AST.stg +52 -58
- data/templates/ASTDbg.stg +13 -14
- data/templates/ASTParser.stg +16 -25
- data/templates/ASTTreeParser.stg +34 -64
- data/templates/Dbg.stg +6 -6
- data/templates/Ruby.stg +159 -191
- data/test/functional/debugging/debug-mode.rb +0 -1
- data/test/functional/parser/actions.rb +15 -1
- data/test/unit/test-trees.rb +7 -7
- metadata +7 -6
data/java/antlr-full-3.2.1.jar
CHANGED
Binary file
|
data/lib/antlr3/error.rb
CHANGED
@@ -624,7 +624,7 @@ def EarlyExit( decision, input = @input )
|
|
624
624
|
end
|
625
625
|
|
626
626
|
def FailedPredicate( rule, predicate, input = @input )
|
627
|
-
FailedPredicate.new( input,
|
627
|
+
FailedPredicate.new( input, rule, predicate )
|
628
628
|
end
|
629
629
|
|
630
630
|
def MismatchedTreeNode( expecting, input = @input )
|
data/lib/antlr3/main.rb
CHANGED
@@ -444,8 +444,8 @@ class ParserMain < Main
|
|
444
444
|
parser_options[ :log ] = @log
|
445
445
|
end
|
446
446
|
lexer = @lexer_class.new( in_stream )
|
447
|
-
token_stream = CommonTokenStream.new( lexer )
|
448
|
-
parser = @parser_class.new(
|
447
|
+
# token_stream = CommonTokenStream.new( lexer )
|
448
|
+
parser = @parser_class.new( lexer, parser_options )
|
449
449
|
result = parser.send( @parser_rule ) and present( result )
|
450
450
|
end
|
451
451
|
|
data/lib/antlr3/recognizers.rb
CHANGED
@@ -121,7 +121,8 @@ class RecognizerSharedState
|
|
121
121
|
self.text = nil
|
122
122
|
end
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
|
+
end # unless const_defined?( :RecognizerSharedState )
|
125
126
|
|
126
127
|
|
127
128
|
=begin rdoc ANTLR3::Recognizer
|
@@ -336,8 +337,7 @@ class Recognizer
|
|
336
337
|
return matched_symbol
|
337
338
|
end
|
338
339
|
raise( BacktrackingFailed ) if @state.backtracking > 0
|
339
|
-
|
340
|
-
return matched_symbol
|
340
|
+
return recover_from_mismatched_token( type, follow )
|
341
341
|
end
|
342
342
|
|
343
343
|
# match anything -- i.e. wildcard match. Simply consume
|
@@ -574,23 +574,15 @@ class Recognizer
|
|
574
574
|
def recover_from_mismatched_token( type, follow )
|
575
575
|
if mismatch_is_unwanted_token?( type )
|
576
576
|
err = UnwantedToken( type )
|
577
|
-
|
578
|
-
resync do
|
579
|
-
@input.consume
|
580
|
-
end
|
581
|
-
|
577
|
+
resync { @input.consume }
|
582
578
|
report_error( err )
|
583
579
|
|
584
|
-
|
585
|
-
@input.consume
|
586
|
-
return matched_symbol
|
580
|
+
return @input.consume
|
587
581
|
end
|
588
582
|
|
589
583
|
if mismatch_is_missing_token?( follow )
|
590
|
-
inserted = missing_symbol(
|
591
|
-
|
592
|
-
|
593
|
-
report_error( err )
|
584
|
+
inserted = missing_symbol( nil, type, follow )
|
585
|
+
report_error( MissingToken( type, inserted ) )
|
594
586
|
return inserted
|
595
587
|
end
|
596
588
|
|
@@ -1135,7 +1127,7 @@ private
|
|
1135
1127
|
case input
|
1136
1128
|
when CharacterStream then input
|
1137
1129
|
when ::String then StringStream.new( input, options )
|
1138
|
-
when ::IO
|
1130
|
+
when ::IO, ARGF then FileStream.new( input, options )
|
1139
1131
|
else input
|
1140
1132
|
end
|
1141
1133
|
end
|
data/lib/antlr3/streams.rb
CHANGED
@@ -646,6 +646,9 @@ class FileStream < StringStream
|
|
646
646
|
when $stdin then
|
647
647
|
data = $stdin.read
|
648
648
|
@name = '(stdin)'
|
649
|
+
when ARGF
|
650
|
+
data = file.read
|
651
|
+
@name = file.path
|
649
652
|
when ::File then
|
650
653
|
file = file.clone
|
651
654
|
file.reopen( file.path, 'r' )
|
@@ -831,6 +834,19 @@ class CommonTokenStream
|
|
831
834
|
seek( marker )
|
832
835
|
end
|
833
836
|
|
837
|
+
#
|
838
|
+
# saves the current stream position, yields to the block,
|
839
|
+
# and then ensures the stream's position is restored before
|
840
|
+
# returning the value of the block
|
841
|
+
#
|
842
|
+
def hold( pos = @position )
|
843
|
+
block_given? or return enum_for( :hold, pos )
|
844
|
+
begin
|
845
|
+
yield
|
846
|
+
ensure
|
847
|
+
seek( pos )
|
848
|
+
end
|
849
|
+
end
|
834
850
|
|
835
851
|
###### Stream Navigation ###########################################
|
836
852
|
|
@@ -937,6 +953,41 @@ class CommonTokenStream
|
|
937
953
|
tokens( *args ).each { |token| yield( token ) }
|
938
954
|
end
|
939
955
|
|
956
|
+
|
957
|
+
#
|
958
|
+
# yields each token in the stream with the given channel value
|
959
|
+
# If no channel value is given, the stream's tuned channel value will be used.
|
960
|
+
# If no block is given, an enumerator will be returned.
|
961
|
+
#
|
962
|
+
def each_on_channel( channel = @channel )
|
963
|
+
block_given? or return enum_for( :each_on_channel, channel )
|
964
|
+
for token in @tokens
|
965
|
+
token.channel == channel and yield( token )
|
966
|
+
end
|
967
|
+
end
|
968
|
+
|
969
|
+
#
|
970
|
+
# iterates through the token stream, yielding each on channel token along the way.
|
971
|
+
# After iteration has completed, the stream's position will be restored to where
|
972
|
+
# it was before #walk was called. While #each or #each_on_channel does not change
|
973
|
+
# the positions stream during iteration, #walk advances through the stream. This
|
974
|
+
# makes it possible to look ahead and behind the current token during iteration.
|
975
|
+
# If no block is given, an enumerator will be returned.
|
976
|
+
#
|
977
|
+
def walk
|
978
|
+
block_given? or return enum_for( :walk )
|
979
|
+
initial_position = @position
|
980
|
+
begin
|
981
|
+
while token = look and token.type != EOF
|
982
|
+
consume
|
983
|
+
yield( token )
|
984
|
+
end
|
985
|
+
return self
|
986
|
+
ensure
|
987
|
+
@position = initial_position
|
988
|
+
end
|
989
|
+
end
|
990
|
+
|
940
991
|
#
|
941
992
|
# returns a copy of the token buffer. If +start+ and +stop+ are provided, tokens
|
942
993
|
# returns a slice of the token buffer from <tt>start..stop</tt>. The parameters
|
data/lib/antlr3/task.rb
CHANGED
data/lib/antlr3/template.rb
CHANGED
@@ -84,9 +84,12 @@ private
|
|
84
84
|
|
85
85
|
end
|
86
86
|
|
87
|
+
|
88
|
+
autoload :GroupFile, 'antlr3/template/group-file'
|
89
|
+
|
87
90
|
class Group < Module
|
88
|
-
autoload :Lexer, 'antlr3/template/group-
|
89
|
-
autoload :Parser, 'antlr3/template/group-
|
91
|
+
autoload :Lexer, 'antlr3/template/group-file'
|
92
|
+
autoload :Parser, 'antlr3/template/group-file'
|
90
93
|
|
91
94
|
def self.parse( source, options = {} )
|
92
95
|
namespace = options.fetch( :namespace, ::Object )
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
|
-
#
|
3
|
+
# GroupFile.g
|
4
4
|
#
|
5
5
|
# Generated using ANTLR version: 3.2.1-SNAPSHOT Dec 18, 2009 04:29:28
|
6
|
-
# Ruby runtime library version: 1.
|
7
|
-
# Input grammar file:
|
8
|
-
# Generated at: 2010-
|
6
|
+
# Ruby runtime library version: 1.6.3
|
7
|
+
# Input grammar file: GroupFile.g
|
8
|
+
# Generated at: 2010-03-19 19:43:54
|
9
9
|
#
|
10
10
|
|
11
11
|
# ~~~> start load path setup
|
@@ -16,7 +16,7 @@ antlr_load_failed = proc do
|
|
16
16
|
load_path = $LOAD_PATH.map { |dir| ' - ' << dir }.join( $/ )
|
17
17
|
raise LoadError, <<-END.strip!
|
18
18
|
|
19
|
-
Failed to load the ANTLR3 runtime library (version 1.
|
19
|
+
Failed to load the ANTLR3 runtime library (version 1.6.3):
|
20
20
|
|
21
21
|
Ensure the library has been installed on your system and is available
|
22
22
|
on the load path. If rubygems is available on your system, this can
|
@@ -46,7 +46,7 @@ rescue LoadError
|
|
46
46
|
|
47
47
|
# 3: try to activate the antlr3 gem
|
48
48
|
begin
|
49
|
-
Gem.activate( 'antlr3', '~> 1.
|
49
|
+
Gem.activate( 'antlr3', '~> 1.6.3' )
|
50
50
|
rescue Gem::LoadError
|
51
51
|
antlr_load_failed.call
|
52
52
|
end
|
@@ -57,7 +57,7 @@ end
|
|
57
57
|
# <~~~ end load path setup
|
58
58
|
|
59
59
|
# - - - - - - begin action @lexer::header - - - - - -
|
60
|
-
#
|
60
|
+
# GroupFile.g
|
61
61
|
|
62
62
|
|
63
63
|
module ANTLR3
|
@@ -66,7 +66,7 @@ module Template
|
|
66
66
|
# - - - - - - end action @lexer::header - - - - - - -
|
67
67
|
|
68
68
|
|
69
|
-
|
69
|
+
module GroupFile
|
70
70
|
# TokenData defines all of the token type integer values
|
71
71
|
# as constants, which will be included in all
|
72
72
|
# ANTLR-generated recognizers.
|
@@ -84,11 +84,11 @@ class Group
|
|
84
84
|
|
85
85
|
|
86
86
|
class Lexer < ANTLR3::Lexer
|
87
|
-
@grammar_home =
|
87
|
+
@grammar_home = GroupFile
|
88
88
|
include TokenData
|
89
89
|
|
90
90
|
begin
|
91
|
-
generated_using( "
|
91
|
+
generated_using( "GroupFile.g", "3.2.1-SNAPSHOT Dec 18, 2009 04:29:28", "1.6.3" )
|
92
92
|
rescue NoMethodError => error
|
93
93
|
error.name.to_sym == :generated_using or raise
|
94
94
|
end
|
@@ -108,7 +108,7 @@ class Group
|
|
108
108
|
|
109
109
|
# - - - - - - - - - - - lexer rules - - - - - - - - - - - -
|
110
110
|
# lexer rule t__10! (T__10)
|
111
|
-
# (in
|
111
|
+
# (in GroupFile.g)
|
112
112
|
def t__10!
|
113
113
|
# -> uncomment the next line to manually enable rule tracing
|
114
114
|
# trace_in(__method__, 1)
|
@@ -132,7 +132,7 @@ class Group
|
|
132
132
|
end
|
133
133
|
|
134
134
|
# lexer rule t__11! (T__11)
|
135
|
-
# (in
|
135
|
+
# (in GroupFile.g)
|
136
136
|
def t__11!
|
137
137
|
# -> uncomment the next line to manually enable rule tracing
|
138
138
|
# trace_in(__method__, 2)
|
@@ -156,7 +156,7 @@ class Group
|
|
156
156
|
end
|
157
157
|
|
158
158
|
# lexer rule t__12! (T__12)
|
159
|
-
# (in
|
159
|
+
# (in GroupFile.g)
|
160
160
|
def t__12!
|
161
161
|
# -> uncomment the next line to manually enable rule tracing
|
162
162
|
# trace_in(__method__, 3)
|
@@ -180,7 +180,7 @@ class Group
|
|
180
180
|
end
|
181
181
|
|
182
182
|
# lexer rule t__13! (T__13)
|
183
|
-
# (in
|
183
|
+
# (in GroupFile.g)
|
184
184
|
def t__13!
|
185
185
|
# -> uncomment the next line to manually enable rule tracing
|
186
186
|
# trace_in(__method__, 4)
|
@@ -204,7 +204,7 @@ class Group
|
|
204
204
|
end
|
205
205
|
|
206
206
|
# lexer rule t__14! (T__14)
|
207
|
-
# (in
|
207
|
+
# (in GroupFile.g)
|
208
208
|
def t__14!
|
209
209
|
# -> uncomment the next line to manually enable rule tracing
|
210
210
|
# trace_in(__method__, 5)
|
@@ -228,7 +228,7 @@ class Group
|
|
228
228
|
end
|
229
229
|
|
230
230
|
# lexer rule t__15! (T__15)
|
231
|
-
# (in
|
231
|
+
# (in GroupFile.g)
|
232
232
|
def t__15!
|
233
233
|
# -> uncomment the next line to manually enable rule tracing
|
234
234
|
# trace_in(__method__, 6)
|
@@ -252,7 +252,7 @@ class Group
|
|
252
252
|
end
|
253
253
|
|
254
254
|
# lexer rule t__16! (T__16)
|
255
|
-
# (in
|
255
|
+
# (in GroupFile.g)
|
256
256
|
def t__16!
|
257
257
|
# -> uncomment the next line to manually enable rule tracing
|
258
258
|
# trace_in(__method__, 7)
|
@@ -276,7 +276,7 @@ class Group
|
|
276
276
|
end
|
277
277
|
|
278
278
|
# lexer rule t__17! (T__17)
|
279
|
-
# (in
|
279
|
+
# (in GroupFile.g)
|
280
280
|
def t__17!
|
281
281
|
# -> uncomment the next line to manually enable rule tracing
|
282
282
|
# trace_in(__method__, 8)
|
@@ -300,7 +300,7 @@ class Group
|
|
300
300
|
end
|
301
301
|
|
302
302
|
# lexer rule t__18! (T__18)
|
303
|
-
# (in
|
303
|
+
# (in GroupFile.g)
|
304
304
|
def t__18!
|
305
305
|
# -> uncomment the next line to manually enable rule tracing
|
306
306
|
# trace_in(__method__, 9)
|
@@ -324,7 +324,7 @@ class Group
|
|
324
324
|
end
|
325
325
|
|
326
326
|
# lexer rule t__19! (T__19)
|
327
|
-
# (in
|
327
|
+
# (in GroupFile.g)
|
328
328
|
def t__19!
|
329
329
|
# -> uncomment the next line to manually enable rule tracing
|
330
330
|
# trace_in(__method__, 10)
|
@@ -348,7 +348,7 @@ class Group
|
|
348
348
|
end
|
349
349
|
|
350
350
|
# lexer rule constant! (CONSTANT)
|
351
|
-
# (in
|
351
|
+
# (in GroupFile.g)
|
352
352
|
def constant!
|
353
353
|
# -> uncomment the next line to manually enable rule tracing
|
354
354
|
# trace_in(__method__, 11)
|
@@ -358,9 +358,9 @@ class Group
|
|
358
358
|
|
359
359
|
|
360
360
|
# - - - - main rule block - - - -
|
361
|
-
# at line
|
361
|
+
# at line 125:5: 'A' .. 'Z' ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
362
362
|
match_range(?A, ?Z)
|
363
|
-
# at line
|
363
|
+
# at line 125:14: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
364
364
|
while true # decision 1
|
365
365
|
alt_1 = 2
|
366
366
|
look_1_0 = @input.peek(1)
|
@@ -398,7 +398,7 @@ class Group
|
|
398
398
|
end
|
399
399
|
|
400
400
|
# lexer rule id! (ID)
|
401
|
-
# (in
|
401
|
+
# (in GroupFile.g)
|
402
402
|
def id!
|
403
403
|
# -> uncomment the next line to manually enable rule tracing
|
404
404
|
# trace_in(__method__, 12)
|
@@ -408,7 +408,7 @@ class Group
|
|
408
408
|
|
409
409
|
|
410
410
|
# - - - - main rule block - - - -
|
411
|
-
# at line
|
411
|
+
# at line 129:5: ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
412
412
|
if @input.peek(1) == ?_ || @input.peek(1).between?(?a, ?z)
|
413
413
|
@input.consume
|
414
414
|
else
|
@@ -418,7 +418,7 @@ class Group
|
|
418
418
|
end
|
419
419
|
|
420
420
|
|
421
|
-
# at line
|
421
|
+
# at line 130:5: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
422
422
|
while true # decision 2
|
423
423
|
alt_2 = 2
|
424
424
|
look_2_0 = @input.peek(1)
|
@@ -456,7 +456,7 @@ class Group
|
|
456
456
|
end
|
457
457
|
|
458
458
|
# lexer rule template! (TEMPLATE)
|
459
|
-
# (in
|
459
|
+
# (in GroupFile.g)
|
460
460
|
def template!
|
461
461
|
# -> uncomment the next line to manually enable rule tracing
|
462
462
|
# trace_in(__method__, 13)
|
@@ -466,9 +466,9 @@ class Group
|
|
466
466
|
|
467
467
|
|
468
468
|
# - - - - main rule block - - - -
|
469
|
-
# at line
|
469
|
+
# at line 134:5: '<<<' ( options {greedy=false; } : '\\\\' . | . )* '>>>'
|
470
470
|
match("<<<")
|
471
|
-
# at line
|
471
|
+
# at line 135:5: ( options {greedy=false; } : '\\\\' . | . )*
|
472
472
|
while true # decision 3
|
473
473
|
alt_3 = 3
|
474
474
|
look_3_0 = @input.peek(1)
|
@@ -506,12 +506,12 @@ class Group
|
|
506
506
|
end
|
507
507
|
case alt_3
|
508
508
|
when 1
|
509
|
-
# at line
|
509
|
+
# at line 135:35: '\\\\' .
|
510
510
|
match(?\\)
|
511
511
|
match_any
|
512
512
|
|
513
513
|
when 2
|
514
|
-
# at line
|
514
|
+
# at line 135:44: .
|
515
515
|
match_any
|
516
516
|
|
517
517
|
else
|
@@ -531,7 +531,7 @@ class Group
|
|
531
531
|
end
|
532
532
|
|
533
533
|
# lexer rule string! (STRING)
|
534
|
-
# (in
|
534
|
+
# (in GroupFile.g)
|
535
535
|
def string!
|
536
536
|
# -> uncomment the next line to manually enable rule tracing
|
537
537
|
# trace_in(__method__, 14)
|
@@ -541,7 +541,7 @@ class Group
|
|
541
541
|
|
542
542
|
|
543
543
|
# - - - - main rule block - - - -
|
544
|
-
# at line
|
544
|
+
# at line 140:3: ( '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"' | '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\'' )
|
545
545
|
alt_6 = 2
|
546
546
|
look_6_0 = @input.peek(1)
|
547
547
|
|
@@ -555,9 +555,9 @@ class Group
|
|
555
555
|
end
|
556
556
|
case alt_6
|
557
557
|
when 1
|
558
|
-
# at line
|
558
|
+
# at line 140:5: '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"'
|
559
559
|
match(?")
|
560
|
-
# at line
|
560
|
+
# at line 140:10: (~ ( '\\\\' | '\"' ) | '\\\\' . )*
|
561
561
|
while true # decision 4
|
562
562
|
alt_4 = 3
|
563
563
|
look_4_0 = @input.peek(1)
|
@@ -570,7 +570,7 @@ class Group
|
|
570
570
|
end
|
571
571
|
case alt_4
|
572
572
|
when 1
|
573
|
-
# at line
|
573
|
+
# at line 140:12: ~ ( '\\\\' | '\"' )
|
574
574
|
if @input.peek(1).between?(0x0000, ?!) || @input.peek(1).between?(?#, ?[) || @input.peek(1).between?(?], 0x00FF)
|
575
575
|
@input.consume
|
576
576
|
else
|
@@ -582,7 +582,7 @@ class Group
|
|
582
582
|
|
583
583
|
|
584
584
|
when 2
|
585
|
-
# at line
|
585
|
+
# at line 140:31: '\\\\' .
|
586
586
|
match(?\\)
|
587
587
|
match_any
|
588
588
|
|
@@ -593,9 +593,9 @@ class Group
|
|
593
593
|
match(?")
|
594
594
|
|
595
595
|
when 2
|
596
|
-
# at line
|
596
|
+
# at line 141:5: '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\''
|
597
597
|
match(?\')
|
598
|
-
# at line
|
598
|
+
# at line 141:10: (~ ( '\\\\' | '\\'' ) | '\\\\' . )*
|
599
599
|
while true # decision 5
|
600
600
|
alt_5 = 3
|
601
601
|
look_5_0 = @input.peek(1)
|
@@ -608,7 +608,7 @@ class Group
|
|
608
608
|
end
|
609
609
|
case alt_5
|
610
610
|
when 1
|
611
|
-
# at line
|
611
|
+
# at line 141:12: ~ ( '\\\\' | '\\'' )
|
612
612
|
if @input.peek(1).between?(0x0000, ?&) || @input.peek(1).between?(?(, ?[) || @input.peek(1).between?(?], 0x00FF)
|
613
613
|
@input.consume
|
614
614
|
else
|
@@ -620,7 +620,7 @@ class Group
|
|
620
620
|
|
621
621
|
|
622
622
|
when 2
|
623
|
-
# at line
|
623
|
+
# at line 141:31: '\\\\' .
|
624
624
|
match(?\\)
|
625
625
|
match_any
|
626
626
|
|
@@ -642,7 +642,7 @@ class Group
|
|
642
642
|
end
|
643
643
|
|
644
644
|
# lexer rule comment! (COMMENT)
|
645
|
-
# (in
|
645
|
+
# (in GroupFile.g)
|
646
646
|
def comment!
|
647
647
|
# -> uncomment the next line to manually enable rule tracing
|
648
648
|
# trace_in(__method__, 15)
|
@@ -652,7 +652,7 @@ class Group
|
|
652
652
|
|
653
653
|
|
654
654
|
# - - - - main rule block - - - -
|
655
|
-
# at line
|
655
|
+
# at line 146:3: ( ( '#' | '//' ) (~ '\\n' )* | '/*' ( . )* '*/' )
|
656
656
|
alt_10 = 2
|
657
657
|
look_10_0 = @input.peek(1)
|
658
658
|
|
@@ -675,8 +675,8 @@ class Group
|
|
675
675
|
end
|
676
676
|
case alt_10
|
677
677
|
when 1
|
678
|
-
# at line
|
679
|
-
# at line
|
678
|
+
# at line 146:5: ( '#' | '//' ) (~ '\\n' )*
|
679
|
+
# at line 146:5: ( '#' | '//' )
|
680
680
|
alt_7 = 2
|
681
681
|
look_7_0 = @input.peek(1)
|
682
682
|
|
@@ -690,15 +690,15 @@ class Group
|
|
690
690
|
end
|
691
691
|
case alt_7
|
692
692
|
when 1
|
693
|
-
# at line
|
693
|
+
# at line 146:7: '#'
|
694
694
|
match(?#)
|
695
695
|
|
696
696
|
when 2
|
697
|
-
# at line
|
697
|
+
# at line 146:13: '//'
|
698
698
|
match("//")
|
699
699
|
|
700
700
|
end
|
701
|
-
# at line
|
701
|
+
# at line 146:20: (~ '\\n' )*
|
702
702
|
while true # decision 8
|
703
703
|
alt_8 = 2
|
704
704
|
look_8_0 = @input.peek(1)
|
@@ -709,7 +709,7 @@ class Group
|
|
709
709
|
end
|
710
710
|
case alt_8
|
711
711
|
when 1
|
712
|
-
# at line
|
712
|
+
# at line 146:20: ~ '\\n'
|
713
713
|
if @input.peek(1).between?(0x0000, ?\t) || @input.peek(1).between?(0x000B, 0x00FF)
|
714
714
|
@input.consume
|
715
715
|
else
|
@@ -726,9 +726,9 @@ class Group
|
|
726
726
|
end # loop for decision 8
|
727
727
|
|
728
728
|
when 2
|
729
|
-
# at line
|
729
|
+
# at line 147:5: '/*' ( . )* '*/'
|
730
730
|
match("/*")
|
731
|
-
# at line
|
731
|
+
# at line 147:10: ( . )*
|
732
732
|
while true # decision 9
|
733
733
|
alt_9 = 2
|
734
734
|
look_9_0 = @input.peek(1)
|
@@ -748,7 +748,7 @@ class Group
|
|
748
748
|
end
|
749
749
|
case alt_9
|
750
750
|
when 1
|
751
|
-
# at line
|
751
|
+
# at line 147:10: .
|
752
752
|
match_any
|
753
753
|
|
754
754
|
else
|
@@ -771,7 +771,7 @@ class Group
|
|
771
771
|
end
|
772
772
|
|
773
773
|
# lexer rule ws! (WS)
|
774
|
-
# (in
|
774
|
+
# (in GroupFile.g)
|
775
775
|
def ws!
|
776
776
|
# -> uncomment the next line to manually enable rule tracing
|
777
777
|
# trace_in(__method__, 16)
|
@@ -781,13 +781,13 @@ class Group
|
|
781
781
|
|
782
782
|
|
783
783
|
# - - - - main rule block - - - -
|
784
|
-
# at line
|
785
|
-
# at file
|
784
|
+
# at line 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
|
785
|
+
# at file 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
|
786
786
|
match_count_11 = 0
|
787
787
|
while true
|
788
788
|
alt_11 = 2
|
789
789
|
look_11_0 = @input.peek(1)
|
790
|
-
|
790
|
+
|
791
791
|
if (look_11_0.between?(?\t, ?\n) || look_11_0.between?(?\f, ?\r) || look_11_0 == ?\s)
|
792
792
|
alt_11 = 1
|
793
793
|
|
@@ -981,7 +981,7 @@ class Group
|
|
981
981
|
at_exit { Lexer.main(ARGV) } if __FILE__ == $0
|
982
982
|
end
|
983
983
|
# - - - - - - begin action @lexer::footer - - - - - -
|
984
|
-
#
|
984
|
+
# GroupFile.g
|
985
985
|
|
986
986
|
|
987
987
|
end # module Template
|