Home | History | Annotate | Download | only in template
      1 #!/usr/bin/env ruby
      2 #
      3 # GroupFile.g
      4 # 
      5 # Generated using ANTLR version: 3.2.1-SNAPSHOT Jun 18, 2010 05:38:11
      6 # Ruby runtime library version: 1.7.5
      7 # Input grammar file: GroupFile.g
      8 # Generated at: 2010-07-03 23:15:35
      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.7.5):
     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.7.5' )
     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 # - - - - - - begin action @lexer::header - - - - - -
     60 # GroupFile.g
     61 
     62 
     63 module ANTLR3
     64 module Template
     65 
     66 # - - - - - - end action @lexer::header - - - - - - -
     67 
     68 
     69 module GroupFile
     70   # TokenData defines all of the token type integer values
     71   # as constants, which will be included in all 
     72   # ANTLR-generated recognizers.
     73   const_defined?( :TokenData ) or TokenData = ANTLR3::TokenScheme.new
     74 
     75   module TokenData
     76 
     77     # define the token constants
     78     define_tokens( :ID => 5, :EOF => -1, :T__19 => 19, :WS => 9, :T__16 => 16, 
     79                    :T__15 => 15, :T__18 => 18, :T__17 => 17, :T__12 => 12, 
     80                    :TEMPLATE => 6, :T__11 => 11, :T__14 => 14, :T__13 => 13, 
     81                    :T__10 => 10, :CONSTANT => 4, :COMMENT => 8, :STRING => 7 )
     82     
     83   end
     84 
     85 
     86   class Lexer < ANTLR3::Lexer
     87     @grammar_home = GroupFile
     88     include TokenData
     89 
     90     
     91     begin
     92       generated_using( "GroupFile.g", "3.2.1-SNAPSHOT Jun 18, 2010 05:38:11", "1.7.5" )
     93     rescue NoMethodError => error
     94       # ignore
     95     end
     96     
     97     RULE_NAMES   = [ "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", 
     98                      "T__16", "T__17", "T__18", "T__19", "CONSTANT", "ID", 
     99                      "TEMPLATE", "STRING", "COMMENT", "WS" ].freeze
    100     RULE_METHODS = [ :t__10!, :t__11!, :t__12!, :t__13!, :t__14!, :t__15!, 
    101                      :t__16!, :t__17!, :t__18!, :t__19!, :constant!, :id!, 
    102                      :template!, :string!, :comment!, :ws! ].freeze
    103 
    104     
    105     def initialize( input=nil, options = {} )
    106       super( input, options )
    107 
    108     end
    109     
    110     
    111     # - - - - - - - - - - - lexer rules - - - - - - - - - - - -
    112     # lexer rule t__10! (T__10)
    113     # (in GroupFile.g)
    114     def t__10!
    115       # -> uncomment the next line to manually enable rule tracing
    116       # trace_in( __method__, 1 )
    117 
    118       type = T__10
    119       channel = ANTLR3::DEFAULT_CHANNEL
    120 
    121       
    122       # - - - - main rule block - - - -
    123       # at line 16:9: 'group'
    124       match( "group" )
    125 
    126       
    127       @state.type = type
    128       @state.channel = channel
    129 
    130     ensure
    131       # -> uncomment the next line to manually enable rule tracing
    132       # trace_out( __method__, 1 )
    133 
    134     end
    135 
    136     # lexer rule t__11! (T__11)
    137     # (in GroupFile.g)
    138     def t__11!
    139       # -> uncomment the next line to manually enable rule tracing
    140       # trace_in( __method__, 2 )
    141 
    142       type = T__11
    143       channel = ANTLR3::DEFAULT_CHANNEL
    144 
    145       
    146       # - - - - main rule block - - - -
    147       # at line 17:9: '::'
    148       match( "::" )
    149 
    150       
    151       @state.type = type
    152       @state.channel = channel
    153 
    154     ensure
    155       # -> uncomment the next line to manually enable rule tracing
    156       # trace_out( __method__, 2 )
    157 
    158     end
    159 
    160     # lexer rule t__12! (T__12)
    161     # (in GroupFile.g)
    162     def t__12!
    163       # -> uncomment the next line to manually enable rule tracing
    164       # trace_in( __method__, 3 )
    165 
    166       type = T__12
    167       channel = ANTLR3::DEFAULT_CHANNEL
    168 
    169       
    170       # - - - - main rule block - - - -
    171       # at line 18:9: ';'
    172       match( 0x3b )
    173 
    174       
    175       @state.type = type
    176       @state.channel = channel
    177 
    178     ensure
    179       # -> uncomment the next line to manually enable rule tracing
    180       # trace_out( __method__, 3 )
    181 
    182     end
    183 
    184     # lexer rule t__13! (T__13)
    185     # (in GroupFile.g)
    186     def t__13!
    187       # -> uncomment the next line to manually enable rule tracing
    188       # trace_in( __method__, 4 )
    189 
    190       type = T__13
    191       channel = ANTLR3::DEFAULT_CHANNEL
    192 
    193       
    194       # - - - - main rule block - - - -
    195       # at line 19:9: '::='
    196       match( "::=" )
    197 
    198       
    199       @state.type = type
    200       @state.channel = channel
    201 
    202     ensure
    203       # -> uncomment the next line to manually enable rule tracing
    204       # trace_out( __method__, 4 )
    205 
    206     end
    207 
    208     # lexer rule t__14! (T__14)
    209     # (in GroupFile.g)
    210     def t__14!
    211       # -> uncomment the next line to manually enable rule tracing
    212       # trace_in( __method__, 5 )
    213 
    214       type = T__14
    215       channel = ANTLR3::DEFAULT_CHANNEL
    216 
    217       
    218       # - - - - main rule block - - - -
    219       # at line 20:9: '('
    220       match( 0x28 )
    221 
    222       
    223       @state.type = type
    224       @state.channel = channel
    225 
    226     ensure
    227       # -> uncomment the next line to manually enable rule tracing
    228       # trace_out( __method__, 5 )
    229 
    230     end
    231 
    232     # lexer rule t__15! (T__15)
    233     # (in GroupFile.g)
    234     def t__15!
    235       # -> uncomment the next line to manually enable rule tracing
    236       # trace_in( __method__, 6 )
    237 
    238       type = T__15
    239       channel = ANTLR3::DEFAULT_CHANNEL
    240 
    241       
    242       # - - - - main rule block - - - -
    243       # at line 21:9: ')'
    244       match( 0x29 )
    245 
    246       
    247       @state.type = type
    248       @state.channel = channel
    249 
    250     ensure
    251       # -> uncomment the next line to manually enable rule tracing
    252       # trace_out( __method__, 6 )
    253 
    254     end
    255 
    256     # lexer rule t__16! (T__16)
    257     # (in GroupFile.g)
    258     def t__16!
    259       # -> uncomment the next line to manually enable rule tracing
    260       # trace_in( __method__, 7 )
    261 
    262       type = T__16
    263       channel = ANTLR3::DEFAULT_CHANNEL
    264 
    265       
    266       # - - - - main rule block - - - -
    267       # at line 22:9: ','
    268       match( 0x2c )
    269 
    270       
    271       @state.type = type
    272       @state.channel = channel
    273 
    274     ensure
    275       # -> uncomment the next line to manually enable rule tracing
    276       # trace_out( __method__, 7 )
    277 
    278     end
    279 
    280     # lexer rule t__17! (T__17)
    281     # (in GroupFile.g)
    282     def t__17!
    283       # -> uncomment the next line to manually enable rule tracing
    284       # trace_in( __method__, 8 )
    285 
    286       type = T__17
    287       channel = ANTLR3::DEFAULT_CHANNEL
    288 
    289       
    290       # - - - - main rule block - - - -
    291       # at line 23:9: '*'
    292       match( 0x2a )
    293 
    294       
    295       @state.type = type
    296       @state.channel = channel
    297 
    298     ensure
    299       # -> uncomment the next line to manually enable rule tracing
    300       # trace_out( __method__, 8 )
    301 
    302     end
    303 
    304     # lexer rule t__18! (T__18)
    305     # (in GroupFile.g)
    306     def t__18!
    307       # -> uncomment the next line to manually enable rule tracing
    308       # trace_in( __method__, 9 )
    309 
    310       type = T__18
    311       channel = ANTLR3::DEFAULT_CHANNEL
    312 
    313       
    314       # - - - - main rule block - - - -
    315       # at line 24:9: '&'
    316       match( 0x26 )
    317 
    318       
    319       @state.type = type
    320       @state.channel = channel
    321 
    322     ensure
    323       # -> uncomment the next line to manually enable rule tracing
    324       # trace_out( __method__, 9 )
    325 
    326     end
    327 
    328     # lexer rule t__19! (T__19)
    329     # (in GroupFile.g)
    330     def t__19!
    331       # -> uncomment the next line to manually enable rule tracing
    332       # trace_in( __method__, 10 )
    333 
    334       type = T__19
    335       channel = ANTLR3::DEFAULT_CHANNEL
    336 
    337       
    338       # - - - - main rule block - - - -
    339       # at line 25:9: '='
    340       match( 0x3d )
    341 
    342       
    343       @state.type = type
    344       @state.channel = channel
    345 
    346     ensure
    347       # -> uncomment the next line to manually enable rule tracing
    348       # trace_out( __method__, 10 )
    349 
    350     end
    351 
    352     # lexer rule constant! (CONSTANT)
    353     # (in GroupFile.g)
    354     def constant!
    355       # -> uncomment the next line to manually enable rule tracing
    356       # trace_in( __method__, 11 )
    357 
    358       type = CONSTANT
    359       channel = ANTLR3::DEFAULT_CHANNEL
    360 
    361       
    362       # - - - - main rule block - - - -
    363       # at line 125:5: 'A' .. 'Z' ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
    364       match_range( 0x41, 0x5a )
    365       # at line 125:14: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
    366       while true # decision 1
    367         alt_1 = 2
    368         look_1_0 = @input.peek( 1 )
    369 
    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           alt_1 = 1
    372 
    373         end
    374         case alt_1
    375         when 1
    376           # at line 
    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             @input.consume
    379           else
    380             mse = MismatchedSet( nil )
    381             recover mse
    382             raise mse
    383           end
    384 
    385 
    386 
    387         else
    388           break # out of loop for decision 1
    389         end
    390       end # loop for decision 1
    391 
    392       
    393       @state.type = type
    394       @state.channel = channel
    395 
    396     ensure
    397       # -> uncomment the next line to manually enable rule tracing
    398       # trace_out( __method__, 11 )
    399 
    400     end
    401 
    402     # lexer rule id! (ID)
    403     # (in GroupFile.g)
    404     def id!
    405       # -> uncomment the next line to manually enable rule tracing
    406       # trace_in( __method__, 12 )
    407 
    408       type = ID
    409       channel = ANTLR3::DEFAULT_CHANNEL
    410 
    411       
    412       # - - - - main rule block - - - -
    413       # at line 129:5: ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
    414       if @input.peek( 1 ) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
    415         @input.consume
    416       else
    417         mse = MismatchedSet( nil )
    418         recover mse
    419         raise mse
    420       end
    421 
    422 
    423       # at line 130:5: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
    424       while true # decision 2
    425         alt_2 = 2
    426         look_2_0 = @input.peek( 1 )
    427 
    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           alt_2 = 1
    430 
    431         end
    432         case alt_2
    433         when 1
    434           # at line 
    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             @input.consume
    437           else
    438             mse = MismatchedSet( nil )
    439             recover mse
    440             raise mse
    441           end
    442 
    443 
    444 
    445         else
    446           break # out of loop for decision 2
    447         end
    448       end # loop for decision 2
    449 
    450       
    451       @state.type = type
    452       @state.channel = channel
    453 
    454     ensure
    455       # -> uncomment the next line to manually enable rule tracing
    456       # trace_out( __method__, 12 )
    457 
    458     end
    459 
    460     # lexer rule template! (TEMPLATE)
    461     # (in GroupFile.g)
    462     def template!
    463       # -> uncomment the next line to manually enable rule tracing
    464       # trace_in( __method__, 13 )
    465 
    466       type = TEMPLATE
    467       channel = ANTLR3::DEFAULT_CHANNEL
    468 
    469       
    470       # - - - - main rule block - - - -
    471       # at line 134:5: '<<<' ( options {greedy=false; } : '\\\\' . | . )* '>>>'
    472       match( "<<<" )
    473       # at line 135:5: ( options {greedy=false; } : '\\\\' . | . )*
    474       while true # decision 3
    475         alt_3 = 3
    476         look_3_0 = @input.peek( 1 )
    477 
    478         if ( look_3_0 == 0x3e )
    479           look_3_1 = @input.peek( 2 )
    480 
    481           if ( look_3_1 == 0x3e )
    482             look_3_4 = @input.peek( 3 )
    483 
    484             if ( look_3_4 == 0x3e )
    485               alt_3 = 3
    486             elsif ( look_3_4.between?( 0x0, 0x3d ) || look_3_4.between?( 0x3f, 0xffff ) )
    487               alt_3 = 2
    488 
    489             end
    490           elsif ( look_3_1.between?( 0x0, 0x3d ) || look_3_1.between?( 0x3f, 0xffff ) )
    491             alt_3 = 2
    492 
    493           end
    494         elsif ( look_3_0 == 0x5c )
    495           look_3_2 = @input.peek( 2 )
    496 
    497           if ( look_3_2 == 0x3e )
    498             alt_3 = 1
    499           elsif ( look_3_2 == 0x5c )
    500             alt_3 = 1
    501           elsif ( look_3_2.between?( 0x0, 0x3d ) || look_3_2.between?( 0x3f, 0x5b ) || look_3_2.between?( 0x5d, 0xffff ) )
    502             alt_3 = 1
    503 
    504           end
    505         elsif ( look_3_0.between?( 0x0, 0x3d ) || look_3_0.between?( 0x3f, 0x5b ) || look_3_0.between?( 0x5d, 0xffff ) )
    506           alt_3 = 2
    507 
    508         end
    509         case alt_3
    510         when 1
    511           # at line 135:35: '\\\\' .
    512           match( 0x5c )
    513           match_any
    514 
    515         when 2
    516           # at line 135:44: .
    517           match_any
    518 
    519         else
    520           break # out of loop for decision 3
    521         end
    522       end # loop for decision 3
    523       match( ">>>" )
    524 
    525       
    526       @state.type = type
    527       @state.channel = channel
    528 
    529     ensure
    530       # -> uncomment the next line to manually enable rule tracing
    531       # trace_out( __method__, 13 )
    532 
    533     end
    534 
    535     # lexer rule string! (STRING)
    536     # (in GroupFile.g)
    537     def string!
    538       # -> uncomment the next line to manually enable rule tracing
    539       # trace_in( __method__, 14 )
    540 
    541       type = STRING
    542       channel = ANTLR3::DEFAULT_CHANNEL
    543 
    544       
    545       # - - - - main rule block - - - -
    546       # at line 140:3: ( '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"' | '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\'' )
    547       alt_6 = 2
    548       look_6_0 = @input.peek( 1 )
    549 
    550       if ( look_6_0 == 0x22 )
    551         alt_6 = 1
    552       elsif ( look_6_0 == 0x27 )
    553         alt_6 = 2
    554       else
    555         raise NoViableAlternative( "", 6, 0 )
    556       end
    557       case alt_6
    558       when 1
    559         # at line 140:5: '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"'
    560         match( 0x22 )
    561         # at line 140:10: (~ ( '\\\\' | '\"' ) | '\\\\' . )*
    562         while true # decision 4
    563           alt_4 = 3
    564           look_4_0 = @input.peek( 1 )
    565 
    566           if ( look_4_0.between?( 0x0, 0x21 ) || look_4_0.between?( 0x23, 0x5b ) || look_4_0.between?( 0x5d, 0xffff ) )
    567             alt_4 = 1
    568           elsif ( look_4_0 == 0x5c )
    569             alt_4 = 2
    570 
    571           end
    572           case alt_4
    573           when 1
    574             # at line 140:12: ~ ( '\\\\' | '\"' )
    575             if @input.peek( 1 ).between?( 0x0, 0x21 ) || @input.peek( 1 ).between?( 0x23, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
    576               @input.consume
    577             else
    578               mse = MismatchedSet( nil )
    579               recover mse
    580               raise mse
    581             end
    582 
    583 
    584 
    585           when 2
    586             # at line 140:31: '\\\\' .
    587             match( 0x5c )
    588             match_any
    589 
    590           else
    591             break # out of loop for decision 4
    592           end
    593         end # loop for decision 4
    594         match( 0x22 )
    595 
    596       when 2
    597         # at line 141:5: '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\''
    598         match( 0x27 )
    599         # at line 141:10: (~ ( '\\\\' | '\\'' ) | '\\\\' . )*
    600         while true # decision 5
    601           alt_5 = 3
    602           look_5_0 = @input.peek( 1 )
    603 
    604           if ( look_5_0.between?( 0x0, 0x26 ) || look_5_0.between?( 0x28, 0x5b ) || look_5_0.between?( 0x5d, 0xffff ) )
    605             alt_5 = 1
    606           elsif ( look_5_0 == 0x5c )
    607             alt_5 = 2
    608 
    609           end
    610           case alt_5
    611           when 1
    612             # at line 141:12: ~ ( '\\\\' | '\\'' )
    613             if @input.peek( 1 ).between?( 0x0, 0x26 ) || @input.peek( 1 ).between?( 0x28, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
    614               @input.consume
    615             else
    616               mse = MismatchedSet( nil )
    617               recover mse
    618               raise mse
    619             end
    620 
    621 
    622 
    623           when 2
    624             # at line 141:31: '\\\\' .
    625             match( 0x5c )
    626             match_any
    627 
    628           else
    629             break # out of loop for decision 5
    630           end
    631         end # loop for decision 5
    632         match( 0x27 )
    633 
    634       end
    635       
    636       @state.type = type
    637       @state.channel = channel
    638 
    639     ensure
    640       # -> uncomment the next line to manually enable rule tracing
    641       # trace_out( __method__, 14 )
    642 
    643     end
    644 
    645     # lexer rule comment! (COMMENT)
    646     # (in GroupFile.g)
    647     def comment!
    648       # -> uncomment the next line to manually enable rule tracing
    649       # trace_in( __method__, 15 )
    650 
    651       type = COMMENT
    652       channel = ANTLR3::DEFAULT_CHANNEL
    653 
    654       
    655       # - - - - main rule block - - - -
    656       # at line 146:3: ( ( '#' | '//' ) (~ '\\n' )* | '/*' ( . )* '*/' )
    657       alt_10 = 2
    658       look_10_0 = @input.peek( 1 )
    659 
    660       if ( look_10_0 == 0x23 )
    661         alt_10 = 1
    662       elsif ( look_10_0 == 0x2f )
    663         look_10_2 = @input.peek( 2 )
    664 
    665         if ( look_10_2 == 0x2f )
    666           alt_10 = 1
    667         elsif ( look_10_2 == 0x2a )
    668           alt_10 = 2
    669         else
    670           raise NoViableAlternative( "", 10, 2 )
    671         end
    672       else
    673         raise NoViableAlternative( "", 10, 0 )
    674       end
    675       case alt_10
    676       when 1
    677         # at line 146:5: ( '#' | '//' ) (~ '\\n' )*
    678         # at line 146:5: ( '#' | '//' )
    679         alt_7 = 2
    680         look_7_0 = @input.peek( 1 )
    681 
    682         if ( look_7_0 == 0x23 )
    683           alt_7 = 1
    684         elsif ( look_7_0 == 0x2f )
    685           alt_7 = 2
    686         else
    687           raise NoViableAlternative( "", 7, 0 )
    688         end
    689         case alt_7
    690         when 1
    691           # at line 146:7: '#'
    692           match( 0x23 )
    693 
    694         when 2
    695           # at line 146:13: '//'
    696           match( "//" )
    697 
    698         end
    699         # at line 146:20: (~ '\\n' )*
    700         while true # decision 8
    701           alt_8 = 2
    702           look_8_0 = @input.peek( 1 )
    703 
    704           if ( look_8_0.between?( 0x0, 0x9 ) || look_8_0.between?( 0xb, 0xffff ) )
    705             alt_8 = 1
    706 
    707           end
    708           case alt_8
    709           when 1
    710             # at line 146:20: ~ '\\n'
    711             if @input.peek( 1 ).between?( 0x0, 0x9 ) || @input.peek( 1 ).between?( 0xb, 0xff )
    712               @input.consume
    713             else
    714               mse = MismatchedSet( nil )
    715               recover mse
    716               raise mse
    717             end
    718 
    719 
    720 
    721           else
    722             break # out of loop for decision 8
    723           end
    724         end # loop for decision 8
    725 
    726       when 2
    727         # at line 147:5: '/*' ( . )* '*/'
    728         match( "/*" )
    729         # at line 147:10: ( . )*
    730         while true # decision 9
    731           alt_9 = 2
    732           look_9_0 = @input.peek( 1 )
    733 
    734           if ( look_9_0 == 0x2a )
    735             look_9_1 = @input.peek( 2 )
    736 
    737             if ( look_9_1 == 0x2f )
    738               alt_9 = 2
    739             elsif ( look_9_1.between?( 0x0, 0x2e ) || look_9_1.between?( 0x30, 0xffff ) )
    740               alt_9 = 1
    741 
    742             end
    743           elsif ( look_9_0.between?( 0x0, 0x29 ) || look_9_0.between?( 0x2b, 0xffff ) )
    744             alt_9 = 1
    745 
    746           end
    747           case alt_9
    748           when 1
    749             # at line 147:10: .
    750             match_any
    751 
    752           else
    753             break # out of loop for decision 9
    754           end
    755         end # loop for decision 9
    756         match( "*/" )
    757 
    758       end
    759       
    760       @state.type = type
    761       @state.channel = channel
    762     # --> action
    763      skip 
    764     # <-- action
    765     ensure
    766       # -> uncomment the next line to manually enable rule tracing
    767       # trace_out( __method__, 15 )
    768 
    769     end
    770 
    771     # lexer rule ws! (WS)
    772     # (in GroupFile.g)
    773     def ws!
    774       # -> uncomment the next line to manually enable rule tracing
    775       # trace_in( __method__, 16 )
    776 
    777       type = WS
    778       channel = ANTLR3::DEFAULT_CHANNEL
    779 
    780       
    781       # - - - - main rule block - - - -
    782       # at line 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
    783       # at file 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
    784       match_count_11 = 0
    785       while true
    786         alt_11 = 2
    787         look_11_0 = @input.peek( 1 )
    788 
    789         if ( look_11_0.between?( 0x9, 0xa ) || look_11_0.between?( 0xc, 0xd ) || look_11_0 == 0x20 )
    790           alt_11 = 1
    791 
    792         end
    793         case alt_11
    794         when 1
    795           # at line 
    796           if @input.peek( 1 ).between?( 0x9, 0xa ) || @input.peek( 1 ).between?( 0xc, 0xd ) || @input.peek( 1 ) == 0x20
    797             @input.consume
    798           else
    799             mse = MismatchedSet( nil )
    800             recover mse
    801             raise mse
    802           end
    803 
    804 
    805 
    806         else
    807           match_count_11 > 0 and break
    808           eee = EarlyExit( 11 )
    809 
    810 
    811           raise eee
    812         end
    813         match_count_11 += 1
    814       end
    815 
    816       # --> action
    817        skip 
    818       # <-- action
    819 
    820       
    821       @state.type = type
    822       @state.channel = channel
    823 
    824     ensure
    825       # -> uncomment the next line to manually enable rule tracing
    826       # trace_out( __method__, 16 )
    827 
    828     end
    829 
    830     # main rule used to study the input at the current position,
    831     # and choose the proper lexer rule to call in order to
    832     # fetch the next token
    833     # 
    834     # usually, you don't make direct calls to this method,
    835     # but instead use the next_token method, which will
    836     # build and emit the actual next token
    837     def token!
    838       # at line 1:8: ( T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | CONSTANT | ID | TEMPLATE | STRING | COMMENT | WS )
    839       alt_12 = 16
    840       alt_12 = @dfa12.predict( @input )
    841       case alt_12
    842       when 1
    843         # at line 1:10: T__10
    844         t__10!
    845 
    846       when 2
    847         # at line 1:16: T__11
    848         t__11!
    849 
    850       when 3
    851         # at line 1:22: T__12
    852         t__12!
    853 
    854       when 4
    855         # at line 1:28: T__13
    856         t__13!
    857 
    858       when 5
    859         # at line 1:34: T__14
    860         t__14!
    861 
    862       when 6
    863         # at line 1:40: T__15
    864         t__15!
    865 
    866       when 7
    867         # at line 1:46: T__16
    868         t__16!
    869 
    870       when 8
    871         # at line 1:52: T__17
    872         t__17!
    873 
    874       when 9
    875         # at line 1:58: T__18
    876         t__18!
    877 
    878       when 10
    879         # at line 1:64: T__19
    880         t__19!
    881 
    882       when 11
    883         # at line 1:70: CONSTANT
    884         constant!
    885 
    886       when 12
    887         # at line 1:79: ID
    888         id!
    889 
    890       when 13
    891         # at line 1:82: TEMPLATE
    892         template!
    893 
    894       when 14
    895         # at line 1:91: STRING
    896         string!
    897 
    898       when 15
    899         # at line 1:98: COMMENT
    900         comment!
    901 
    902       when 16
    903         # at line 1:106: WS
    904         ws!
    905 
    906       end
    907     end
    908 
    909     
    910     # - - - - - - - - - - DFA definitions - - - - - - - - - - -
    911     class DFA12 < ANTLR3::DFA
    912       EOT = unpack( 1, -1, 1, 11, 14, -1, 1, 11, 1, 20, 1, 11, 2, -1, 1, 
    913                     11, 1, 23, 1, -1 )
    914       EOF = unpack( 24, -1 )
    915       MIN = unpack( 1, 9, 1, 114, 1, 58, 13, -1, 1, 111, 1, 61, 1, 117, 
    916                     2, -1, 1, 112, 1, 48, 1, -1 )
    917       MAX = unpack( 1, 122, 1, 114, 1, 58, 13, -1, 1, 111, 1, 61, 1, 117, 
    918                     2, -1, 1, 112, 1, 122, 1, -1 )
    919       ACCEPT = unpack( 3, -1, 1, 3, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 
    920                        1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 3, -1, 
    921                        1, 4, 1, 2, 2, -1, 1, 1 )
    922       SPECIAL = unpack( 24, -1 )
    923       TRANSITION = [ 
    924         unpack( 2, 15, 1, -1, 2, 15, 18, -1, 1, 15, 1, -1, 1, 13, 1, 14, 
    925                 2, -1, 1, 8, 1, 13, 1, 4, 1, 5, 1, 7, 1, -1, 1, 6, 2, -1, 
    926                 1, 14, 10, -1, 1, 2, 1, 3, 1, 12, 1, 9, 3, -1, 26, 10, 4, 
    927                 -1, 1, 11, 1, -1, 6, 11, 1, 1, 19, 11 ),
    928         unpack( 1, 16 ),
    929         unpack( 1, 17 ),
    930         unpack(  ),
    931         unpack(  ),
    932         unpack(  ),
    933         unpack(  ),
    934         unpack(  ),
    935         unpack(  ),
    936         unpack(  ),
    937         unpack(  ),
    938         unpack(  ),
    939         unpack(  ),
    940         unpack(  ),
    941         unpack(  ),
    942         unpack(  ),
    943         unpack( 1, 18 ),
    944         unpack( 1, 19 ),
    945         unpack( 1, 21 ),
    946         unpack(  ),
    947         unpack(  ),
    948         unpack( 1, 22 ),
    949         unpack( 10, 11, 7, -1, 26, 11, 4, -1, 1, 11, 1, -1, 26, 11 ),
    950         unpack(  )
    951       ].freeze
    952       
    953       ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z |
    954         if a > 0 and z < 0
    955           MAX[ i ] %= 0x10000
    956         end
    957       end
    958       
    959       @decision = 12
    960       
    961 
    962       def description
    963         <<-'__dfa_description__'.strip!
    964           1:1: Tokens : ( T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | CONSTANT | ID | TEMPLATE | STRING | COMMENT | WS );
    965         __dfa_description__
    966       end
    967     end
    968 
    969     
    970     private
    971     
    972     def initialize_dfas
    973       super rescue nil
    974       @dfa12 = DFA12.new( self, 12 )
    975 
    976     end
    977   end # class Lexer < ANTLR3::Lexer
    978 
    979   at_exit { Lexer.main( ARGV ) } if __FILE__ == $0
    980 end
    981 # - - - - - - begin action @lexer::footer - - - - - -
    982 # GroupFile.g
    983 
    984 
    985 end # module Template
    986 end # module ANTLR3
    987 
    988 # - - - - - - end action @lexer::footer - - - - - - -
    989