class ANTLR3::Template::GroupFile::Lexer

Constants

RULE_METHODS
RULE_NAMES

Public Class Methods

new( input=nil, options = {} ) click to toggle source
Calls superclass method ANTLR3::Lexer::new
# File lib/antlr3/template/group-file-lexer.rb, line 105
def initialize( input=nil, options = {} )
  super( input, options )

end

Public Instance Methods

comment!() click to toggle source

lexer rule comment! (COMMENT) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 647
def comment!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 15 )

  type = COMMENT
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 146:3: ( ( '#' | '//' ) (~ '\\n' )* | '/*' ( . )* '*/' )
  alt_10 = 2
  look_10_0 = @input.peek( 1 )

  if ( look_10_0 == 0x23 )
    alt_10 = 1
  elsif ( look_10_0 == 0x2f )
    look_10_2 = @input.peek( 2 )

    if ( look_10_2 == 0x2f )
      alt_10 = 1
    elsif ( look_10_2 == 0x2a )
      alt_10 = 2
    else
      raise NoViableAlternative( "", 10, 2 )
    end
  else
    raise NoViableAlternative( "", 10, 0 )
  end
  case alt_10
  when 1
    # at line 146:5: ( '#' | '//' ) (~ '\\n' )*
    # at line 146:5: ( '#' | '//' )
    alt_7 = 2
    look_7_0 = @input.peek( 1 )

    if ( look_7_0 == 0x23 )
      alt_7 = 1
    elsif ( look_7_0 == 0x2f )
      alt_7 = 2
    else
      raise NoViableAlternative( "", 7, 0 )
    end
    case alt_7
    when 1
      # at line 146:7: '#'
      match( 0x23 )

    when 2
      # at line 146:13: '//'
      match( "//" )

    end
    # at line 146:20: (~ '\\n' )*
    while true # decision 8
      alt_8 = 2
      look_8_0 = @input.peek( 1 )

      if ( look_8_0.between?( 0x0, 0x9 ) || look_8_0.between?( 0xb, 0xffff ) )
        alt_8 = 1

      end
      case alt_8
      when 1
        # at line 146:20: ~ '\\n'
        if @input.peek( 1 ).between?( 0x0, 0x9 ) || @input.peek( 1 ).between?( 0xb, 0xff )
          @input.consume
        else
          mse = MismatchedSet( nil )
          recover mse
          raise mse
        end



      else
        break # out of loop for decision 8
      end
    end # loop for decision 8

  when 2
    # at line 147:5: '/*' ( . )* '*/'
    match( "/*" )
    # at line 147:10: ( . )*
    while true # decision 9
      alt_9 = 2
      look_9_0 = @input.peek( 1 )

      if ( look_9_0 == 0x2a )
        look_9_1 = @input.peek( 2 )

        if ( look_9_1 == 0x2f )
          alt_9 = 2
        elsif ( look_9_1.between?( 0x0, 0x2e ) || look_9_1.between?( 0x30, 0xffff ) )
          alt_9 = 1

        end
      elsif ( look_9_0.between?( 0x0, 0x29 ) || look_9_0.between?( 0x2b, 0xffff ) )
        alt_9 = 1

      end
      case alt_9
      when 1
        # at line 147:10: .
        match_any

      else
        break # out of loop for decision 9
      end
    end # loop for decision 9
    match( "*/" )

  end
  
  @state.type = type
  @state.channel = channel
# --> action
 skip 
# <-- action
ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 15 )

end
constant!() click to toggle source

lexer rule constant! (CONSTANT) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 354
def constant!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 11 )

  type = CONSTANT
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 125:5: 'A' .. 'Z' ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
  match_range( 0x41, 0x5a )
  # at line 125:14: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
  while true # decision 1
    alt_1 = 2
    look_1_0 = @input.peek( 1 )

    if ( look_1_0.between?( 0x30, 0x39 ) || look_1_0.between?( 0x41, 0x5a ) || look_1_0 == 0x5f || look_1_0.between?( 0x61, 0x7a ) )
      alt_1 = 1

    end
    case alt_1
    when 1
      # at line
      if @input.peek( 1 ).between?( 0x30, 0x39 ) || @input.peek( 1 ).between?( 0x41, 0x5a ) || @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
        @input.consume
      else
        mse = MismatchedSet( nil )
        recover mse
        raise mse
      end



    else
      break # out of loop for decision 1
    end
  end # loop for decision 1

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 11 )

end
id!() click to toggle source

lexer rule id! (ID) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 404
def id!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 12 )

  type = ID
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 129:5: ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
  if @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
    @input.consume
  else
    mse = MismatchedSet( nil )
    recover mse
    raise mse
  end


  # at line 130:5: ( 'a' .. 'z' | '_' | 'A' .. 'Z' | '0' .. '9' )*
  while true # decision 2
    alt_2 = 2
    look_2_0 = @input.peek( 1 )

    if ( look_2_0.between?( 0x30, 0x39 ) || look_2_0.between?( 0x41, 0x5a ) || look_2_0 == 0x5f || look_2_0.between?( 0x61, 0x7a ) )
      alt_2 = 1

    end
    case alt_2
    when 1
      # at line
      if @input.peek( 1 ).between?( 0x30, 0x39 ) || @input.peek( 1 ).between?( 0x41, 0x5a ) || @input.peek(1) == 0x5f || @input.peek( 1 ).between?( 0x61, 0x7a )
        @input.consume
      else
        mse = MismatchedSet( nil )
        recover mse
        raise mse
      end



    else
      break # out of loop for decision 2
    end
  end # loop for decision 2

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 12 )

end
string!() click to toggle source

lexer rule string! (STRING) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 537
def string!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 14 )

  type = STRING
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 140:3: ( '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"' | '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\'' )
  alt_6 = 2
  look_6_0 = @input.peek( 1 )

  if ( look_6_0 == 0x22 )
    alt_6 = 1
  elsif ( look_6_0 == 0x27 )
    alt_6 = 2
  else
    raise NoViableAlternative( "", 6, 0 )
  end
  case alt_6
  when 1
    # at line 140:5: '\"' (~ ( '\\\\' | '\"' ) | '\\\\' . )* '\"'
    match( 0x22 )
    # at line 140:10: (~ ( '\\\\' | '\"' ) | '\\\\' . )*
    while true # decision 4
      alt_4 = 3
      look_4_0 = @input.peek( 1 )

      if ( look_4_0.between?( 0x0, 0x21 ) || look_4_0.between?( 0x23, 0x5b ) || look_4_0.between?( 0x5d, 0xffff ) )
        alt_4 = 1
      elsif ( look_4_0 == 0x5c )
        alt_4 = 2

      end
      case alt_4
      when 1
        # at line 140:12: ~ ( '\\\\' | '\"' )
        if @input.peek( 1 ).between?( 0x0, 0x21 ) || @input.peek( 1 ).between?( 0x23, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
          @input.consume
        else
          mse = MismatchedSet( nil )
          recover mse
          raise mse
        end



      when 2
        # at line 140:31: '\\\\' .
        match( 0x5c )
        match_any

      else
        break # out of loop for decision 4
      end
    end # loop for decision 4
    match( 0x22 )

  when 2
    # at line 141:5: '\\'' (~ ( '\\\\' | '\\'' ) | '\\\\' . )* '\\''
    match( 0x27 )
    # at line 141:10: (~ ( '\\\\' | '\\'' ) | '\\\\' . )*
    while true # decision 5
      alt_5 = 3
      look_5_0 = @input.peek( 1 )

      if ( look_5_0.between?( 0x0, 0x26 ) || look_5_0.between?( 0x28, 0x5b ) || look_5_0.between?( 0x5d, 0xffff ) )
        alt_5 = 1
      elsif ( look_5_0 == 0x5c )
        alt_5 = 2

      end
      case alt_5
      when 1
        # at line 141:12: ~ ( '\\\\' | '\\'' )
        if @input.peek( 1 ).between?( 0x0, 0x26 ) || @input.peek( 1 ).between?( 0x28, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
          @input.consume
        else
          mse = MismatchedSet( nil )
          recover mse
          raise mse
        end



      when 2
        # at line 141:31: '\\\\' .
        match( 0x5c )
        match_any

      else
        break # out of loop for decision 5
      end
    end # loop for decision 5
    match( 0x27 )

  end
  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 14 )

end
t__10!() click to toggle source
                      • lexer rules - - - - - - - - - - - -

lexer rule t__10! (T__10) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 114
def t__10!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 1 )

  type = T__10
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 16:9: 'group'
  match( "group" )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 1 )

end
t__11!() click to toggle source

lexer rule t__11! (T__11) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 138
def t__11!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 2 )

  type = T__11
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 17:9: '::'
  match( "::" )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 2 )

end
t__12!() click to toggle source

lexer rule t__12! (T__12) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 162
def t__12!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 3 )

  type = T__12
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 18:9: ';'
  match( 0x3b )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 3 )

end
t__13!() click to toggle source

lexer rule t__13! (T__13) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 186
def t__13!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 4 )

  type = T__13
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 19:9: '::='
  match( "::=" )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 4 )

end
t__14!() click to toggle source

lexer rule t__14! (T__14) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 210
def t__14!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 5 )

  type = T__14
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 20:9: '('
  match( 0x28 )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 5 )

end
t__15!() click to toggle source

lexer rule t__15! (T__15) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 234
def t__15!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 6 )

  type = T__15
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 21:9: ')'
  match( 0x29 )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 6 )

end
t__16!() click to toggle source

lexer rule t__16! (T__16) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 258
def t__16!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 7 )

  type = T__16
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 22:9: ','
  match( 0x2c )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 7 )

end
t__17!() click to toggle source

lexer rule t__17! (T__17) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 282
def t__17!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 8 )

  type = T__17
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 23:9: '*'
  match( 0x2a )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 8 )

end
t__18!() click to toggle source

lexer rule t__18! (T__18) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 306
def t__18!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 9 )

  type = T__18
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 24:9: '&'
  match( 0x26 )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 9 )

end
t__19!() click to toggle source

lexer rule t__19! (T__19) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 330
def t__19!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 10 )

  type = T__19
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 25:9: '='
  match( 0x3d )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 10 )

end
template!() click to toggle source

lexer rule template! (TEMPLATE) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 462
def template!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 13 )

  type = TEMPLATE
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 134:5: '<<<' ( options {greedy=false; } : '\\\\' . | . )* '>>>'
  match( "<<<" )
  # at line 135:5: ( options {greedy=false; } : '\\\\' . | . )*
  while true # decision 3
    alt_3 = 3
    look_3_0 = @input.peek( 1 )

    if ( look_3_0 == 0x3e )
      look_3_1 = @input.peek( 2 )

      if ( look_3_1 == 0x3e )
        look_3_4 = @input.peek( 3 )

        if ( look_3_4 == 0x3e )
          alt_3 = 3
        elsif ( look_3_4.between?( 0x0, 0x3d ) || look_3_4.between?( 0x3f, 0xffff ) )
          alt_3 = 2

        end
      elsif ( look_3_1.between?( 0x0, 0x3d ) || look_3_1.between?( 0x3f, 0xffff ) )
        alt_3 = 2

      end
    elsif ( look_3_0 == 0x5c )
      look_3_2 = @input.peek( 2 )

      if ( look_3_2 == 0x3e )
        alt_3 = 1
      elsif ( look_3_2 == 0x5c )
        alt_3 = 1
      elsif ( look_3_2.between?( 0x0, 0x3d ) || look_3_2.between?( 0x3f, 0x5b ) || look_3_2.between?( 0x5d, 0xffff ) )
        alt_3 = 1

      end
    elsif ( look_3_0.between?( 0x0, 0x3d ) || look_3_0.between?( 0x3f, 0x5b ) || look_3_0.between?( 0x5d, 0xffff ) )
      alt_3 = 2

    end
    case alt_3
    when 1
      # at line 135:35: '\\\\' .
      match( 0x5c )
      match_any

    when 2
      # at line 135:44: .
      match_any

    else
      break # out of loop for decision 3
    end
  end # loop for decision 3
  match( ">>>" )

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 13 )

end
token!() click to toggle source

main rule used to study the input at the current position, and choose the proper lexer rule to call in order to fetch the next token

usually, you don’t make direct calls to this method, but instead use the next_token method, which will build and emit the actual next token

# File lib/antlr3/template/group-file-lexer.rb, line 837
def token!
  # 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 )
  alt_12 = 16
  alt_12 = @dfa12.predict( @input )
  case alt_12
  when 1
    # at line 1:10: T__10
    t__10!

  when 2
    # at line 1:16: T__11
    t__11!

  when 3
    # at line 1:22: T__12
    t__12!

  when 4
    # at line 1:28: T__13
    t__13!

  when 5
    # at line 1:34: T__14
    t__14!

  when 6
    # at line 1:40: T__15
    t__15!

  when 7
    # at line 1:46: T__16
    t__16!

  when 8
    # at line 1:52: T__17
    t__17!

  when 9
    # at line 1:58: T__18
    t__18!

  when 10
    # at line 1:64: T__19
    t__19!

  when 11
    # at line 1:70: CONSTANT
    constant!

  when 12
    # at line 1:79: ID
    id!

  when 13
    # at line 1:82: TEMPLATE
    template!

  when 14
    # at line 1:91: STRING
    string!

  when 15
    # at line 1:98: COMMENT
    comment!

  when 16
    # at line 1:106: WS
    ws!

  end
end
ws!() click to toggle source

lexer rule ws! (WS) (in GroupFile.g)

# File lib/antlr3/template/group-file-lexer.rb, line 773
def ws!
  # -> uncomment the next line to manually enable rule tracing
  # trace_in( __method__, 16 )

  type = WS
  channel = ANTLR3::DEFAULT_CHANNEL

  
  # - - - - main rule block - - - -
  # at line 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
  # at file 151:5: ( ' ' | '\\t' | '\\n' | '\\r' | '\\f' )+
  match_count_11 = 0
  while true
    alt_11 = 2
    look_11_0 = @input.peek( 1 )

    if ( look_11_0.between?( 0x9, 0xa ) || look_11_0.between?( 0xc, 0xd ) || look_11_0 == 0x20 )
      alt_11 = 1

    end
    case alt_11
    when 1
      # at line
      if @input.peek( 1 ).between?( 0x9, 0xa ) || @input.peek( 1 ).between?( 0xc, 0xd ) || @input.peek(1) == 0x20
        @input.consume
      else
        mse = MismatchedSet( nil )
        recover mse
        raise mse
      end



    else
      match_count_11 > 0 and break
      eee = EarlyExit(11)


      raise eee
    end
    match_count_11 += 1
  end

  # --> action
   skip 
  # <-- action

  
  @state.type = type
  @state.channel = channel

ensure
  # -> uncomment the next line to manually enable rule tracing
  # trace_out( __method__, 16 )

end

Private Instance Methods

initialize_dfas() click to toggle source
Calls superclass method ANTLR3::Recognizer#initialize_dfas
# File lib/antlr3/template/group-file-lexer.rb, line 972
def initialize_dfas
  super rescue nil
  @dfa12 = DFA12.new( self, 12 )

end