antlr3 1.7.5 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/java/RubyTarget.java +50 -16
- data/java/antlr-full-3.2.1.jar +0 -0
- data/lib/antlr3/streams.rb +82 -41
- data/lib/antlr3/template/group-file-lexer.rb +59 -59
- data/lib/antlr3/template/group-file-parser.rb +6 -6
- data/lib/antlr3/test/functional.rb +64 -36
- data/lib/antlr3/version.rb +2 -2
- data/templates/Ruby.stg +1 -1
- data/test/functional/ast-output/auto-ast.rb +86 -86
- data/test/functional/ast-output/construction.rb +14 -15
- data/test/functional/ast-output/hetero-nodes.rb +63 -66
- data/test/functional/ast-output/rewrites.rb +119 -120
- data/test/functional/ast-output/tree-rewrite.rb +96 -96
- data/test/functional/debugging/debug-mode.rb +379 -379
- data/test/functional/debugging/profile-mode.rb +6 -6
- data/test/functional/debugging/rule-tracing.rb +4 -5
- data/test/functional/delegation/import.rb +32 -32
- data/test/functional/lexer/basic.rb +27 -27
- data/test/functional/lexer/filter-mode.rb +6 -7
- data/test/functional/lexer/nuances.rb +2 -3
- data/test/functional/lexer/properties.rb +7 -8
- data/test/functional/lexer/syn-pred.rb +1 -2
- data/test/functional/lexer/xml.rb +3 -3
- data/test/functional/main/main-scripts.rb +37 -37
- data/test/functional/parser/actions.rb +8 -8
- data/test/functional/parser/backtracking.rb +1 -2
- data/test/functional/parser/basic.rb +10 -10
- data/test/functional/parser/calc.rb +9 -9
- data/test/functional/parser/ll-star.rb +3 -3
- data/test/functional/parser/nuances.rb +4 -5
- data/test/functional/parser/predicates.rb +3 -4
- data/test/functional/parser/properties.rb +14 -14
- data/test/functional/parser/rule-methods.rb +8 -7
- data/test/functional/parser/scopes.rb +15 -16
- data/test/functional/template-output/template-output.rb +1 -1
- data/test/functional/token-rewrite/basic.rb +60 -61
- data/test/functional/token-rewrite/via-parser.rb +3 -4
- data/test/functional/tree-parser/basic.rb +30 -31
- data/test/unit/test-streams.rb +10 -10
- data/test/unit/test-template.rb +1 -1
- metadata +2 -2
data/java/RubyTarget.java
CHANGED
@@ -330,24 +330,58 @@ public class RubyTarget
|
|
330
330
|
String literal
|
331
331
|
)
|
332
332
|
{
|
333
|
+
int code_point = 0;
|
333
334
|
literal = literal.substring( 1, literal.length() - 1 );
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
335
|
+
|
336
|
+
if ( literal.charAt( 0 ) == '\\' ) {
|
337
|
+
switch ( literal.charAt( 1 ) ) {
|
338
|
+
case '\\':
|
339
|
+
case '"':
|
340
|
+
case '\'':
|
341
|
+
code_point = literal.codePointAt( 1 );
|
342
|
+
break;
|
343
|
+
case 'n':
|
344
|
+
code_point = 10;
|
345
|
+
break;
|
346
|
+
case 'r':
|
347
|
+
code_point = 13;
|
348
|
+
break;
|
349
|
+
case 't':
|
350
|
+
code_point = 9;
|
351
|
+
break;
|
352
|
+
case 'b':
|
353
|
+
code_point = 8;
|
354
|
+
break;
|
355
|
+
case 'f':
|
356
|
+
code_point = 12;
|
357
|
+
break;
|
358
|
+
case 'u': // Assume unnnn
|
359
|
+
code_point = Integer.parseInt( literal.substring( 2 ), 16 );
|
360
|
+
break;
|
361
|
+
default:
|
362
|
+
System.out.println( "1: hey you didn't account for this: \"" + literal + "\"" );
|
363
|
+
break;
|
364
|
+
}
|
365
|
+
} else if ( literal.length() == 1 ) {
|
366
|
+
code_point = literal.codePointAt( 0 );
|
367
|
+
} else {
|
368
|
+
System.out.println( "2: hey you didn't account for this: \"" + literal + "\"" );
|
348
369
|
}
|
349
|
-
|
350
|
-
return
|
370
|
+
|
371
|
+
return ( "0x" + Integer.toHexString( code_point ) );
|
372
|
+
|
373
|
+
//if ( literal.equals( "\\" ) ) {
|
374
|
+
// result += "\\\\";
|
375
|
+
//}
|
376
|
+
//else if ( literal.equals( " " ) ) {
|
377
|
+
// result += "\\s";
|
378
|
+
//}
|
379
|
+
//else if ( literal.startsWith( "\\u" ) ) {
|
380
|
+
// result = "0x" + literal.substring( 2 );
|
381
|
+
//}
|
382
|
+
//else {
|
383
|
+
// result += literal;
|
384
|
+
//}
|
351
385
|
}
|
352
386
|
|
353
387
|
public int getMaxCharValue( CodeGenerator generator )
|
data/java/antlr-full-3.2.1.jar
CHANGED
Binary file
|
data/lib/antlr3/streams.rb
CHANGED
@@ -360,6 +360,8 @@ development goal for this project.
|
|
360
360
|
=end
|
361
361
|
|
362
362
|
class StringStream
|
363
|
+
NEWLINE = ?\n.ord
|
364
|
+
|
363
365
|
include CharacterStream
|
364
366
|
|
365
367
|
# current integer character index of the stream
|
@@ -377,24 +379,76 @@ class StringStream
|
|
377
379
|
|
378
380
|
# the entire string that is wrapped by the stream
|
379
381
|
attr_reader :data
|
382
|
+
attr_reader :string
|
380
383
|
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
384
|
+
if RUBY_VERSION =~ /^1\.9/
|
385
|
+
|
386
|
+
# creates a new StringStream object where +data+ is the string data to stream.
|
387
|
+
# accepts the following options in a symbol-to-value hash:
|
388
|
+
#
|
389
|
+
# [:file or :name] the (file) name to associate with the stream; default: <tt>'(string)'</tt>
|
390
|
+
# [:line] the initial line number; default: +1+
|
391
|
+
# [:column] the initial column number; default: +0+
|
392
|
+
#
|
393
|
+
def initialize( data, options = {} ) # for 1.9
|
394
|
+
@string = data.to_s.encode( Encoding::UTF_8 ).freeze
|
395
|
+
@data = @string.codepoints.to_a.freeze
|
396
|
+
@position = options.fetch :position, 0
|
397
|
+
@line = options.fetch :line, 1
|
398
|
+
@column = options.fetch :column, 0
|
399
|
+
@markers = []
|
400
|
+
@name ||= options[ :file ] || options[ :name ] # || '(string)'
|
401
|
+
mark
|
402
|
+
end
|
403
|
+
|
404
|
+
#
|
405
|
+
# identical to #peek, except it returns the character value as a String
|
406
|
+
#
|
407
|
+
def look( k = 1 ) # for 1.9
|
408
|
+
k == 0 and return nil
|
409
|
+
k += 1 if k < 0
|
410
|
+
|
411
|
+
index = @position + k - 1
|
412
|
+
index < 0 and return nil
|
413
|
+
|
414
|
+
@string[ index ]
|
415
|
+
end
|
416
|
+
|
417
|
+
else
|
418
|
+
|
419
|
+
# creates a new StringStream object where +data+ is the string data to stream.
|
420
|
+
# accepts the following options in a symbol-to-value hash:
|
421
|
+
#
|
422
|
+
# [:file or :name] the (file) name to associate with the stream; default: <tt>'(string)'</tt>
|
423
|
+
# [:line] the initial line number; default: +1+
|
424
|
+
# [:column] the initial column number; default: +0+
|
425
|
+
#
|
426
|
+
def initialize( data, options = {} ) # for 1.8
|
427
|
+
@data = data.to_s
|
428
|
+
@data.equal?( data ) and @data = @data.clone
|
429
|
+
@data.freeze
|
430
|
+
@string = @data
|
431
|
+
@position = options.fetch :position, 0
|
432
|
+
@line = options.fetch :line, 1
|
433
|
+
@column = options.fetch :column, 0
|
434
|
+
@markers = []
|
435
|
+
@name ||= options[ :file ] || options[ :name ] # || '(string)'
|
436
|
+
mark
|
437
|
+
end
|
438
|
+
|
439
|
+
#
|
440
|
+
# identical to #peek, except it returns the character value as a String
|
441
|
+
#
|
442
|
+
def look( k = 1 ) # for 1.8
|
443
|
+
k == 0 and return nil
|
444
|
+
k += 1 if k < 0
|
445
|
+
|
446
|
+
index = @position + k - 1
|
447
|
+
index < 0 and return nil
|
448
|
+
|
449
|
+
c = @data[ index ] and c.chr
|
450
|
+
end
|
451
|
+
|
398
452
|
end
|
399
453
|
|
400
454
|
def size
|
@@ -407,10 +461,10 @@ class StringStream
|
|
407
461
|
# rewinds the stream back to the start and clears out any existing marker entries
|
408
462
|
#
|
409
463
|
def reset
|
410
|
-
|
411
|
-
@line =
|
412
|
-
@column = 0
|
464
|
+
initial_location = @markers.first
|
465
|
+
@position, @line, @column = initial_location
|
413
466
|
@markers.clear
|
467
|
+
@markers << initial_location
|
414
468
|
return self
|
415
469
|
end
|
416
470
|
|
@@ -421,7 +475,7 @@ class StringStream
|
|
421
475
|
c = @data[ @position ] || EOF
|
422
476
|
if @position < @data.length
|
423
477
|
@column += 1
|
424
|
-
if c ==
|
478
|
+
if c == NEWLINE
|
425
479
|
@line += 1
|
426
480
|
@column = 0
|
427
481
|
end
|
@@ -444,28 +498,15 @@ class StringStream
|
|
444
498
|
@data[ index ] or EOF
|
445
499
|
end
|
446
500
|
|
447
|
-
#
|
448
|
-
# identical to #peek, except it returns the character value as a String
|
449
|
-
#
|
450
|
-
def look( k = 1 )
|
451
|
-
k == 0 and return nil
|
452
|
-
k += 1 if k < 0
|
453
|
-
|
454
|
-
index = @position + k - 1
|
455
|
-
index < 0 and return nil
|
456
|
-
|
457
|
-
c = @data[ index ] and c.chr
|
458
|
-
end
|
459
|
-
|
460
501
|
#
|
461
502
|
# return a substring around the stream cursor at a distance +k+
|
462
503
|
# if <tt>k >= 0</tt>, return the next k characters
|
463
504
|
# if <tt>k < 0</tt>, return the previous <tt>|k|</tt> characters
|
464
505
|
#
|
465
506
|
def through( k )
|
466
|
-
if k >= 0 then @
|
507
|
+
if k >= 0 then @string[ @position, k ] else
|
467
508
|
start = ( @position + k ).at_least( 0 ) # start cannot be negative or index will wrap around
|
468
|
-
@
|
509
|
+
@string[ start ... @position ]
|
469
510
|
end
|
470
511
|
end
|
471
512
|
|
@@ -487,7 +528,7 @@ class StringStream
|
|
487
528
|
# This is an extra utility method for use inside lexer actions if needed.
|
488
529
|
#
|
489
530
|
def beginning_of_line?
|
490
|
-
@position.zero? or @data[ @position - 1 ] ==
|
531
|
+
@position.zero? or @data[ @position - 1 ] == NEWLINE
|
491
532
|
end
|
492
533
|
|
493
534
|
#
|
@@ -495,7 +536,7 @@ class StringStream
|
|
495
536
|
# This is an extra utility method for use inside lexer actions if needed.
|
496
537
|
#
|
497
538
|
def end_of_line?
|
498
|
-
@data[ @position ] ==
|
539
|
+
@data[ @position ] == NEWLINE #if @position < @data.length
|
499
540
|
end
|
500
541
|
|
501
542
|
#
|
@@ -516,7 +557,7 @@ class StringStream
|
|
516
557
|
|
517
558
|
alias eof? end_of_string?
|
518
559
|
alias bof? beginning_of_string?
|
519
|
-
|
560
|
+
|
520
561
|
#
|
521
562
|
# record the current stream location parameters in the stream's marker table and
|
522
563
|
# return an integer-valued bookmark that may be used to restore the stream's
|
@@ -605,14 +646,14 @@ class StringStream
|
|
605
646
|
# return the string slice between position +start+ and +stop+
|
606
647
|
#
|
607
648
|
def substring( start, stop )
|
608
|
-
@
|
649
|
+
@string[ start, stop - start + 1 ]
|
609
650
|
end
|
610
651
|
|
611
652
|
#
|
612
653
|
# identical to String#[]
|
613
654
|
#
|
614
655
|
def []( start, *args )
|
615
|
-
@
|
656
|
+
@string[ start, *args ]
|
616
657
|
end
|
617
658
|
end
|
618
659
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# GroupFile.g
|
4
4
|
#
|
5
|
-
# Generated using ANTLR version: 3.2.1-SNAPSHOT
|
6
|
-
# Ruby runtime library version: 1.7.
|
5
|
+
# Generated using ANTLR version: 3.2.1-SNAPSHOT Jun 18, 2010 05:38:11
|
6
|
+
# Ruby runtime library version: 1.7.5
|
7
7
|
# Input grammar file: GroupFile.g
|
8
|
-
# Generated at: 2010-
|
8
|
+
# Generated at: 2010-07-03 23:15:35
|
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.7.
|
19
|
+
Failed to load the ANTLR3 runtime library (version 1.7.5):
|
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.7.
|
49
|
+
Gem.activate( 'antlr3', '~> 1.7.5' )
|
50
50
|
rescue Gem::LoadError
|
51
51
|
antlr_load_failed.call
|
52
52
|
end
|
@@ -89,7 +89,7 @@ module GroupFile
|
|
89
89
|
|
90
90
|
|
91
91
|
begin
|
92
|
-
generated_using( "GroupFile.g", "3.2.1-SNAPSHOT
|
92
|
+
generated_using( "GroupFile.g", "3.2.1-SNAPSHOT Jun 18, 2010 05:38:11", "1.7.5" )
|
93
93
|
rescue NoMethodError => error
|
94
94
|
# ignore
|
95
95
|
end
|
@@ -169,7 +169,7 @@ module GroupFile
|
|
169
169
|
|
170
170
|
# - - - - main rule block - - - -
|
171
171
|
# at line 18:9: ';'
|
172
|
-
match(
|
172
|
+
match( 0x3b )
|
173
173
|
|
174
174
|
|
175
175
|
@state.type = type
|
@@ -217,7 +217,7 @@ module GroupFile
|
|
217
217
|
|
218
218
|
# - - - - main rule block - - - -
|
219
219
|
# at line 20:9: '('
|
220
|
-
match(
|
220
|
+
match( 0x28 )
|
221
221
|
|
222
222
|
|
223
223
|
@state.type = type
|
@@ -241,7 +241,7 @@ module GroupFile
|
|
241
241
|
|
242
242
|
# - - - - main rule block - - - -
|
243
243
|
# at line 21:9: ')'
|
244
|
-
match(
|
244
|
+
match( 0x29 )
|
245
245
|
|
246
246
|
|
247
247
|
@state.type = type
|
@@ -265,7 +265,7 @@ module GroupFile
|
|
265
265
|
|
266
266
|
# - - - - main rule block - - - -
|
267
267
|
# at line 22:9: ','
|
268
|
-
match(
|
268
|
+
match( 0x2c )
|
269
269
|
|
270
270
|
|
271
271
|
@state.type = type
|
@@ -289,7 +289,7 @@ module GroupFile
|
|
289
289
|
|
290
290
|
# - - - - main rule block - - - -
|
291
291
|
# at line 23:9: '*'
|
292
|
-
match(
|
292
|
+
match( 0x2a )
|
293
293
|
|
294
294
|
|
295
295
|
@state.type = type
|
@@ -313,7 +313,7 @@ module GroupFile
|
|
313
313
|
|
314
314
|
# - - - - main rule block - - - -
|
315
315
|
# at line 24:9: '&'
|
316
|
-
match(
|
316
|
+
match( 0x26 )
|
317
317
|
|
318
318
|
|
319
319
|
@state.type = type
|
@@ -337,7 +337,7 @@ module GroupFile
|
|
337
337
|
|
338
338
|
# - - - - main rule block - - - -
|
339
339
|
# at line 25:9: '='
|
340
|
-
match(
|
340
|
+
match( 0x3d )
|
341
341
|
|
342
342
|
|
343
343
|
@state.type = type
|
@@ -361,20 +361,20 @@ module GroupFile
|
|
361
361
|
|
362
362
|
# - - - - main rule block - - - -
|
363
363
|
# at line 125:5: 'A' .. 'Z' ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
364
|
-
match_range(
|
364
|
+
match_range( 0x41, 0x5a )
|
365
365
|
# at line 125:14: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
366
366
|
while true # decision 1
|
367
367
|
alt_1 = 2
|
368
368
|
look_1_0 = @input.peek( 1 )
|
369
369
|
|
370
|
-
if ( look_1_0.between?(
|
370
|
+
if ( look_1_0.between?( 0x30, 0x39 ) || look_1_0.between?( 0x41, 0x5a ) || look_1_0 == 0x5f || look_1_0.between?( 0x61, 0x7a ) )
|
371
371
|
alt_1 = 1
|
372
372
|
|
373
373
|
end
|
374
374
|
case alt_1
|
375
375
|
when 1
|
376
376
|
# at line
|
377
|
-
if @input.peek( 1 ).between?(
|
377
|
+
if @input.peek( 1 ).between?( 0x30, 0x39 ) || @input.peek( 1 ).between?( 0x41, 0x5a ) || @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
|
378
378
|
@input.consume
|
379
379
|
else
|
380
380
|
mse = MismatchedSet( nil )
|
@@ -411,7 +411,7 @@ module GroupFile
|
|
411
411
|
|
412
412
|
# - - - - main rule block - - - -
|
413
413
|
# at line 129:5: ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
|
414
|
-
if @input.peek(1) ==
|
414
|
+
if @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
|
415
415
|
@input.consume
|
416
416
|
else
|
417
417
|
mse = MismatchedSet( nil )
|
@@ -425,14 +425,14 @@ module GroupFile
|
|
425
425
|
alt_2 = 2
|
426
426
|
look_2_0 = @input.peek( 1 )
|
427
427
|
|
428
|
-
if ( look_2_0.between?(
|
428
|
+
if ( look_2_0.between?( 0x30, 0x39 ) || look_2_0.between?( 0x41, 0x5a ) || look_2_0 == 0x5f || look_2_0.between?( 0x61, 0x7a ) )
|
429
429
|
alt_2 = 1
|
430
430
|
|
431
431
|
end
|
432
432
|
case alt_2
|
433
433
|
when 1
|
434
434
|
# at line
|
435
|
-
if @input.peek( 1 ).between?(
|
435
|
+
if @input.peek( 1 ).between?( 0x30, 0x39 ) || @input.peek( 1 ).between?( 0x41, 0x5a ) || @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
|
436
436
|
@input.consume
|
437
437
|
else
|
438
438
|
mse = MismatchedSet( nil )
|
@@ -475,41 +475,41 @@ module GroupFile
|
|
475
475
|
alt_3 = 3
|
476
476
|
look_3_0 = @input.peek( 1 )
|
477
477
|
|
478
|
-
if ( look_3_0 ==
|
478
|
+
if ( look_3_0 == 0x3e )
|
479
479
|
look_3_1 = @input.peek( 2 )
|
480
480
|
|
481
|
-
if ( look_3_1 ==
|
481
|
+
if ( look_3_1 == 0x3e )
|
482
482
|
look_3_4 = @input.peek( 3 )
|
483
483
|
|
484
|
-
if ( look_3_4 ==
|
484
|
+
if ( look_3_4 == 0x3e )
|
485
485
|
alt_3 = 3
|
486
|
-
elsif ( look_3_4.between?(
|
486
|
+
elsif ( look_3_4.between?( 0x0, 0x3d ) || look_3_4.between?( 0x3f, 0xffff ) )
|
487
487
|
alt_3 = 2
|
488
488
|
|
489
489
|
end
|
490
|
-
elsif ( look_3_1.between?(
|
490
|
+
elsif ( look_3_1.between?( 0x0, 0x3d ) || look_3_1.between?( 0x3f, 0xffff ) )
|
491
491
|
alt_3 = 2
|
492
492
|
|
493
493
|
end
|
494
|
-
elsif ( look_3_0 ==
|
494
|
+
elsif ( look_3_0 == 0x5c )
|
495
495
|
look_3_2 = @input.peek( 2 )
|
496
496
|
|
497
|
-
if ( look_3_2 ==
|
497
|
+
if ( look_3_2 == 0x3e )
|
498
498
|
alt_3 = 1
|
499
|
-
elsif ( look_3_2 ==
|
499
|
+
elsif ( look_3_2 == 0x5c )
|
500
500
|
alt_3 = 1
|
501
|
-
elsif ( look_3_2.between?(
|
501
|
+
elsif ( look_3_2.between?( 0x0, 0x3d ) || look_3_2.between?( 0x3f, 0x5b ) || look_3_2.between?( 0x5d, 0xffff ) )
|
502
502
|
alt_3 = 1
|
503
503
|
|
504
504
|
end
|
505
|
-
elsif ( look_3_0.between?(
|
505
|
+
elsif ( look_3_0.between?( 0x0, 0x3d ) || look_3_0.between?( 0x3f, 0x5b ) || look_3_0.between?( 0x5d, 0xffff ) )
|
506
506
|
alt_3 = 2
|
507
507
|
|
508
508
|
end
|
509
509
|
case alt_3
|
510
510
|
when 1
|
511
511
|
# at line 135:35: '\\\\' .
|
512
|
-
match(
|
512
|
+
match( 0x5c )
|
513
513
|
match_any
|
514
514
|
|
515
515
|
when 2
|
@@ -547,9 +547,9 @@ module GroupFile
|
|
547
547
|
alt_6 = 2
|
548
548
|
look_6_0 = @input.peek( 1 )
|
549
549
|
|
550
|
-
if ( look_6_0 ==
|
550
|
+
if ( look_6_0 == 0x22 )
|
551
551
|
alt_6 = 1
|
552
|
-
elsif ( look_6_0 ==
|
552
|
+
elsif ( look_6_0 == 0x27 )
|
553
553
|
alt_6 = 2
|
554
554
|
else
|
555
555
|
raise NoViableAlternative( "", 6, 0 )
|
@@ -557,22 +557,22 @@ module GroupFile
|
|
557
557
|
case alt_6
|
558
558
|
when 1
|
559
559
|
# at line 140:5: '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"'
|
560
|
-
match(
|
560
|
+
match( 0x22 )
|
561
561
|
# at line 140:10: (~ ( '\\\\' | '\"' ) | '\\\\' . )*
|
562
562
|
while true # decision 4
|
563
563
|
alt_4 = 3
|
564
564
|
look_4_0 = @input.peek( 1 )
|
565
565
|
|
566
|
-
if ( look_4_0.between?(
|
566
|
+
if ( look_4_0.between?( 0x0, 0x21 ) || look_4_0.between?( 0x23, 0x5b ) || look_4_0.between?( 0x5d, 0xffff ) )
|
567
567
|
alt_4 = 1
|
568
|
-
elsif ( look_4_0 ==
|
568
|
+
elsif ( look_4_0 == 0x5c )
|
569
569
|
alt_4 = 2
|
570
570
|
|
571
571
|
end
|
572
572
|
case alt_4
|
573
573
|
when 1
|
574
574
|
# at line 140:12: ~ ( '\\\\' | '\"' )
|
575
|
-
if @input.peek( 1 ).between?(
|
575
|
+
if @input.peek( 1 ).between?( 0x0, 0x21 ) || @input.peek( 1 ).between?( 0x23, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
|
576
576
|
@input.consume
|
577
577
|
else
|
578
578
|
mse = MismatchedSet( nil )
|
@@ -584,33 +584,33 @@ module GroupFile
|
|
584
584
|
|
585
585
|
when 2
|
586
586
|
# at line 140:31: '\\\\' .
|
587
|
-
match(
|
587
|
+
match( 0x5c )
|
588
588
|
match_any
|
589
589
|
|
590
590
|
else
|
591
591
|
break # out of loop for decision 4
|
592
592
|
end
|
593
593
|
end # loop for decision 4
|
594
|
-
match(
|
594
|
+
match( 0x22 )
|
595
595
|
|
596
596
|
when 2
|
597
597
|
# at line 141:5: '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\''
|
598
|
-
match(
|
598
|
+
match( 0x27 )
|
599
599
|
# at line 141:10: (~ ( '\\\\' | '\\'' ) | '\\\\' . )*
|
600
600
|
while true # decision 5
|
601
601
|
alt_5 = 3
|
602
602
|
look_5_0 = @input.peek( 1 )
|
603
603
|
|
604
|
-
if ( look_5_0.between?(
|
604
|
+
if ( look_5_0.between?( 0x0, 0x26 ) || look_5_0.between?( 0x28, 0x5b ) || look_5_0.between?( 0x5d, 0xffff ) )
|
605
605
|
alt_5 = 1
|
606
|
-
elsif ( look_5_0 ==
|
606
|
+
elsif ( look_5_0 == 0x5c )
|
607
607
|
alt_5 = 2
|
608
608
|
|
609
609
|
end
|
610
610
|
case alt_5
|
611
611
|
when 1
|
612
612
|
# at line 141:12: ~ ( '\\\\' | '\\'' )
|
613
|
-
if @input.peek( 1 ).between?(
|
613
|
+
if @input.peek( 1 ).between?( 0x0, 0x26 ) || @input.peek( 1 ).between?( 0x28, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
|
614
614
|
@input.consume
|
615
615
|
else
|
616
616
|
mse = MismatchedSet( nil )
|
@@ -622,14 +622,14 @@ module GroupFile
|
|
622
622
|
|
623
623
|
when 2
|
624
624
|
# at line 141:31: '\\\\' .
|
625
|
-
match(
|
625
|
+
match( 0x5c )
|
626
626
|
match_any
|
627
627
|
|
628
628
|
else
|
629
629
|
break # out of loop for decision 5
|
630
630
|
end
|
631
631
|
end # loop for decision 5
|
632
|
-
match(
|
632
|
+
match( 0x27 )
|
633
633
|
|
634
634
|
end
|
635
635
|
|
@@ -657,14 +657,14 @@ module GroupFile
|
|
657
657
|
alt_10 = 2
|
658
658
|
look_10_0 = @input.peek( 1 )
|
659
659
|
|
660
|
-
if ( look_10_0 ==
|
660
|
+
if ( look_10_0 == 0x23 )
|
661
661
|
alt_10 = 1
|
662
|
-
elsif ( look_10_0 ==
|
662
|
+
elsif ( look_10_0 == 0x2f )
|
663
663
|
look_10_2 = @input.peek( 2 )
|
664
664
|
|
665
|
-
if ( look_10_2 ==
|
665
|
+
if ( look_10_2 == 0x2f )
|
666
666
|
alt_10 = 1
|
667
|
-
elsif ( look_10_2 ==
|
667
|
+
elsif ( look_10_2 == 0x2a )
|
668
668
|
alt_10 = 2
|
669
669
|
else
|
670
670
|
raise NoViableAlternative( "", 10, 2 )
|
@@ -679,9 +679,9 @@ module GroupFile
|
|
679
679
|
alt_7 = 2
|
680
680
|
look_7_0 = @input.peek( 1 )
|
681
681
|
|
682
|
-
if ( look_7_0 ==
|
682
|
+
if ( look_7_0 == 0x23 )
|
683
683
|
alt_7 = 1
|
684
|
-
elsif ( look_7_0 ==
|
684
|
+
elsif ( look_7_0 == 0x2f )
|
685
685
|
alt_7 = 2
|
686
686
|
else
|
687
687
|
raise NoViableAlternative( "", 7, 0 )
|
@@ -689,7 +689,7 @@ module GroupFile
|
|
689
689
|
case alt_7
|
690
690
|
when 1
|
691
691
|
# at line 146:7: '#'
|
692
|
-
match(
|
692
|
+
match( 0x23 )
|
693
693
|
|
694
694
|
when 2
|
695
695
|
# at line 146:13: '//'
|
@@ -701,14 +701,14 @@ module GroupFile
|
|
701
701
|
alt_8 = 2
|
702
702
|
look_8_0 = @input.peek( 1 )
|
703
703
|
|
704
|
-
if ( look_8_0.between?(
|
704
|
+
if ( look_8_0.between?( 0x0, 0x9 ) || look_8_0.between?( 0xb, 0xffff ) )
|
705
705
|
alt_8 = 1
|
706
706
|
|
707
707
|
end
|
708
708
|
case alt_8
|
709
709
|
when 1
|
710
710
|
# at line 146:20: ~ '\\n'
|
711
|
-
if @input.peek( 1 ).between?(
|
711
|
+
if @input.peek( 1 ).between?( 0x0, 0x9 ) || @input.peek( 1 ).between?( 0xb, 0xff )
|
712
712
|
@input.consume
|
713
713
|
else
|
714
714
|
mse = MismatchedSet( nil )
|
@@ -731,16 +731,16 @@ module GroupFile
|
|
731
731
|
alt_9 = 2
|
732
732
|
look_9_0 = @input.peek( 1 )
|
733
733
|
|
734
|
-
if ( look_9_0 ==
|
734
|
+
if ( look_9_0 == 0x2a )
|
735
735
|
look_9_1 = @input.peek( 2 )
|
736
736
|
|
737
|
-
if ( look_9_1 ==
|
737
|
+
if ( look_9_1 == 0x2f )
|
738
738
|
alt_9 = 2
|
739
|
-
elsif ( look_9_1.between?(
|
739
|
+
elsif ( look_9_1.between?( 0x0, 0x2e ) || look_9_1.between?( 0x30, 0xffff ) )
|
740
740
|
alt_9 = 1
|
741
741
|
|
742
742
|
end
|
743
|
-
elsif ( look_9_0.between?(
|
743
|
+
elsif ( look_9_0.between?( 0x0, 0x29 ) || look_9_0.between?( 0x2b, 0xffff ) )
|
744
744
|
alt_9 = 1
|
745
745
|
|
746
746
|
end
|
@@ -786,14 +786,14 @@ module GroupFile
|
|
786
786
|
alt_11 = 2
|
787
787
|
look_11_0 = @input.peek( 1 )
|
788
788
|
|
789
|
-
if ( look_11_0.between?(
|
789
|
+
if ( look_11_0.between?( 0x9, 0xa ) || look_11_0.between?( 0xc, 0xd ) || look_11_0 == 0x20 )
|
790
790
|
alt_11 = 1
|
791
791
|
|
792
792
|
end
|
793
793
|
case alt_11
|
794
794
|
when 1
|
795
795
|
# at line
|
796
|
-
if @input.peek( 1 ).between?(
|
796
|
+
if @input.peek( 1 ).between?( 0x9, 0xa ) || @input.peek( 1 ).between?( 0xc, 0xd ) || @input.peek(1) == 0x20
|
797
797
|
@input.consume
|
798
798
|
else
|
799
799
|
mse = MismatchedSet( nil )
|