lib/surpass/ExcelFormulaLexer.rb in surpass-0.0.9 vs lib/surpass/ExcelFormulaLexer.rb in surpass-0.1.0

- old
+ new

@@ -3,11 +3,11 @@ # ExcelFormula.g # # Generated using ANTLR version: 3.2.1-SNAPSHOT Dec 18, 2009 04:29:28 # Ruby runtime library version: 1.3.1 # Input grammar file: ExcelFormula.g -# Generated at: 2010-05-03 16:34:32 +# Generated at: 2010-06-13 10:19:27 # # ~~~> start load path setup this_directory = File.expand_path( File.dirname( __FILE__ ) ) $:.unshift( this_directory ) unless $:.include?( this_directory ) @@ -65,17 +65,17 @@ module TokenData # define the token constants define_tokens(:GE => 8, :LT => 7, :NUM_CONST => 21, :PERCENT => 16, - :REF2D => 22, :CONCAT => 10, :RP => 29, :LP => 26, :INT_CONST => 20, + :REF2D => 22, :CONCAT => 10, :RP => 25, :LP => 24, :INT_CONST => 20, :STR_CONST => 19, :POWER => 15, :SUB => 12, :FUNC_CHOOSE => 30, - :SEMICOLON => 27, :BANG => 24, :TRUE_CONST => 17, :EOF => -1, - :MUL => 13, :COLON => 23, :FALSE_CONST => 18, :NAME => 31, - :COMMA => 28, :GT => 6, :DIGIT => 33, :DIV => 14, :EQ => 4, - :FUNC_IF => 25, :QUOTENAME => 32, :LE => 9, :ADD => 11, - :NE => 5) + :SEMICOLON => 28, :BANG => 26, :TRUE_CONST => 17, :EOF => -1, + :MUL => 13, :ALPHA => 34, :COLON => 23, :FALSE_CONST => 18, + :NAME => 31, :WS => 35, :COMMA => 29, :GT => 6, :DIGIT => 33, + :DIV => 14, :EQ => 4, :FUNC_IF => 27, :QUOTENAME => 32, + :LE => 9, :ADD => 11, :NE => 5) end class Lexer < ANTLR3::Lexer @@ -89,17 +89,18 @@ end RULE_NAMES = ["EQ", "LT", "GT", "NE", "LE", "GE", "ADD", "SUB", "MUL", "DIV", "COLON", "SEMICOLON", "COMMA", "LP", "RP", "CONCAT", "PERCENT", "POWER", "BANG", "DIGIT", "INT_CONST", "NUM_CONST", - "STR_CONST", "REF2D", "TRUE_CONST", "FALSE_CONST", "NAME", - "QUOTENAME", "FUNC_IF", "FUNC_CHOOSE"].freeze + "STR_CONST", "REF2D", "TRUE_CONST", "FALSE_CONST", "QUOTENAME", + "FUNC_IF", "FUNC_CHOOSE", "ALPHA", "NAME", "WS"].freeze RULE_METHODS = [:eq!, :lt!, :gt!, :ne!, :le!, :ge!, :add!, :sub!, :mul!, :div!, :colon!, :semicolon!, :comma!, :lp!, :rp!, :concat!, :percent!, :power!, :bang!, :digit!, :int_const!, :num_const!, :str_const!, :ref_2_d!, :true_const!, :false_const!, - :name!, :quotename!, :func_if!, :func_choose!].freeze + :quotename!, :func_if!, :func_choose!, :alpha!, :name!, + :ws!].freeze def initialize(input=nil, options = {}) super(input, options) @@ -115,11 +116,11 @@ type = EQ channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 329:5: '=' + # at line 340:5: '=' match(?=) @state.type = type @state.channel = channel @@ -139,11 +140,11 @@ type = LT channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 330:5: '<' + # at line 341:5: '<' match(?<) @state.type = type @state.channel = channel @@ -163,11 +164,11 @@ type = GT channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 331:5: '>' + # at line 342:5: '>' match(?>) @state.type = type @state.channel = channel @@ -187,11 +188,11 @@ type = NE channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 332:5: '<>' + # at line 343:5: '<>' match("<>") @state.type = type @state.channel = channel @@ -211,11 +212,11 @@ type = LE channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 333:5: '<=' + # at line 344:5: '<=' match("<=") @state.type = type @state.channel = channel @@ -235,11 +236,11 @@ type = GE channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 334:5: '>=' + # at line 345:5: '>=' match(">=") @state.type = type @state.channel = channel @@ -259,11 +260,11 @@ type = ADD channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 336:6: '+' + # at line 347:6: '+' match(?+) @state.type = type @state.channel = channel @@ -283,11 +284,11 @@ type = SUB channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 337:6: '-' + # at line 348:6: '-' match(?-) @state.type = type @state.channel = channel @@ -307,11 +308,11 @@ type = MUL channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 338:6: '*' + # at line 349:6: '*' match(?*) @state.type = type @state.channel = channel @@ -331,11 +332,11 @@ type = DIV channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 339:6: '/' + # at line 350:6: '/' match(?/) @state.type = type @state.channel = channel @@ -355,11 +356,11 @@ type = COLON channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 341:8: ':' + # at line 352:8: ':' match(?:) @state.type = type @state.channel = channel @@ -379,11 +380,11 @@ type = SEMICOLON channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 342:12: ';' + # at line 353:12: ';' match(?;) @state.type = type @state.channel = channel @@ -403,11 +404,11 @@ type = COMMA channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 343:8: ',' + # at line 354:8: ',' match(?,) @state.type = type @state.channel = channel @@ -427,11 +428,11 @@ type = LP channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 345:5: '(' + # at line 356:5: '(' match(?() @state.type = type @state.channel = channel @@ -451,11 +452,11 @@ type = RP channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 346:5: ')' + # at line 357:5: ')' match(?)) @state.type = type @state.channel = channel @@ -475,11 +476,11 @@ type = CONCAT channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 347:9: '&' + # at line 358:9: '&' match(?&) @state.type = type @state.channel = channel @@ -499,12 +500,12 @@ type = PERCENT channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 348:10: '%' - match(?%) + # at line 359:10: '\\%' + match(?\%) @state.type = type @state.channel = channel @@ -523,11 +524,11 @@ type = POWER channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 349:8: '^' + # at line 360:8: '^' match(?^) @state.type = type @state.channel = channel @@ -547,11 +548,11 @@ type = BANG channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 350:7: '!' + # at line 361:7: '!' match(?!) @state.type = type @state.channel = channel @@ -568,11 +569,11 @@ # -> uncomment the next line to manually enable rule tracing # trace_in(__method__, 20) # - - - - main rule block - - - - - # at line 352:17: '0' .. '9' + # at line 363:17: '0' .. '9' match_range(?0, ?9) ensure # -> uncomment the next line to manually enable rule tracing # trace_out(__method__, 20) @@ -588,12 +589,12 @@ type = INT_CONST channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 354:12: ( DIGIT )+ - # at file 354:12: ( DIGIT )+ + # at line 365:12: ( DIGIT )+ + # at file 365:12: ( DIGIT )+ match_count_1 = 0 loop do alt_1 = 2 look_1_0 = @input.peek(1) @@ -601,11 +602,11 @@ alt_1 = 1 end case alt_1 when 1 - # at line 354:12: DIGIT + # at line 365:12: DIGIT digit! else match_count_1 > 0 and break eee = EarlyExit(1) @@ -636,31 +637,31 @@ type = NUM_CONST channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 355:12: ( DIGIT )* '.' ( DIGIT )+ ( ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ )? - # at line 355:12: ( DIGIT )* + # at line 366:12: ( DIGIT )* '.' ( DIGIT )+ ( ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ )? + # at line 366:12: ( DIGIT )* loop do # decision 2 alt_2 = 2 look_2_0 = @input.peek(1) if (look_2_0.between?(?0, ?9)) alt_2 = 1 end case alt_2 when 1 - # at line 355:12: DIGIT + # at line 366:12: DIGIT digit! else break # out of loop for decision 2 end end # loop for decision 2 match(?.) - # at file 355:23: ( DIGIT )+ + # at file 366:23: ( DIGIT )+ match_count_3 = 0 loop do alt_3 = 2 look_3_0 = @input.peek(1) @@ -668,11 +669,11 @@ alt_3 = 1 end case alt_3 when 1 - # at line 355:23: DIGIT + # at line 366:23: DIGIT digit! else match_count_3 > 0 and break eee = EarlyExit(3) @@ -681,30 +682,30 @@ raise eee end match_count_3 += 1 end - # at line 355:30: ( ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ )? + # at line 366:30: ( ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ )? alt_6 = 2 look_6_0 = @input.peek(1) if (look_6_0 == ?E || look_6_0 == ?e) alt_6 = 1 end case alt_6 when 1 - # at line 355:31: ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ + # at line 366:31: ( 'E' | 'e' ) ( '+' | '-' )? ( DIGIT )+ if @input.peek(1) == ?E || @input.peek(1) == ?e @input.consume else mse = MismatchedSet(nil) recover(mse) raise mse end - # at line 355:41: ( '+' | '-' )? + # at line 366:41: ( '+' | '-' )? alt_4 = 2 look_4_0 = @input.peek(1) if (look_4_0 == ?+ || look_4_0 == ?-) alt_4 = 1 @@ -721,11 +722,11 @@ end end - # at file 355:52: ( DIGIT )+ + # at file 366:52: ( DIGIT )+ match_count_5 = 0 loop do alt_5 = 2 look_5_0 = @input.peek(1) @@ -733,11 +734,11 @@ alt_5 = 1 end case alt_5 when 1 - # at line 355:52: DIGIT + # at line 366:52: DIGIT digit! else match_count_5 > 0 and break eee = EarlyExit(5) @@ -770,13 +771,13 @@ type = STR_CONST channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 356:12: '\"' (~ '\"' )+ '\"' + # at line 367:12: '\"' (~ '\"' )+ '\"' match(?") - # at file 356:16: (~ '\"' )+ + # at file 367:16: (~ '\"' )+ match_count_7 = 0 loop do alt_7 = 2 look_7_0 = @input.peek(1) @@ -784,11 +785,11 @@ alt_7 = 1 end case alt_7 when 1 - # at line 356:17: ~ '\"' + # at line 367:17: ~ '\"' if @input.peek(1).between?(0x0000, ?!) || @input.peek(1).between?(?#, 0x00FF) @input.consume else mse = MismatchedSet(nil) recover(mse) @@ -828,25 +829,25 @@ type = REF2D channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 357:8: ( '$' )? ( 'A' .. 'I' )? ( 'A' .. 'Z' ) ( '$' )? ( DIGIT )+ - # at line 357:8: ( '$' )? + # at line 368:8: ( '$' )? ( 'A' .. 'I' )? ( 'A' .. 'Z' ) ( '$' )? ( DIGIT )+ + # at line 368:8: ( '$' )? alt_8 = 2 look_8_0 = @input.peek(1) if (look_8_0 == ?$) alt_8 = 1 end case alt_8 when 1 - # at line 357:8: '$' + # at line 368:8: '$' match(?$) end - # at line 357:13: ( 'A' .. 'I' )? + # at line 368:13: ( 'A' .. 'I' )? alt_9 = 2 look_9_0 = @input.peek(1) if (look_9_0.between?(?A, ?I)) look_9_1 = @input.peek(2) @@ -855,32 +856,32 @@ alt_9 = 1 end end case alt_9 when 1 - # at line 357:14: 'A' .. 'I' + # at line 368:14: 'A' .. 'I' match_range(?A, ?I) end - # at line 357:25: ( 'A' .. 'Z' ) - # at line 357:26: 'A' .. 'Z' + # at line 368:25: ( 'A' .. 'Z' ) + # at line 368:26: 'A' .. 'Z' match_range(?A, ?Z) - # at line 357:36: ( '$' )? + # at line 368:36: ( '$' )? alt_10 = 2 look_10_0 = @input.peek(1) if (look_10_0 == ?$) alt_10 = 1 end case alt_10 when 1 - # at line 357:36: '$' + # at line 368:36: '$' match(?$) end - # at file 357:41: ( DIGIT )+ + # at file 368:41: ( DIGIT )+ match_count_11 = 0 loop do alt_11 = 2 look_11_0 = @input.peek(1) @@ -888,11 +889,11 @@ alt_11 = 1 end case alt_11 when 1 - # at line 357:41: DIGIT + # at line 368:41: DIGIT digit! else match_count_11 > 0 and break eee = EarlyExit(11) @@ -923,11 +924,11 @@ type = TRUE_CONST channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 358:13: ( 'T' | 't' ) ( 'R' | 'r' ) ( 'U' | 'u' ) ( 'E' | 'e' ) + # at line 369:13: ( 'T' | 't' ) ( 'R' | 'r' ) ( 'U' | 'u' ) ( 'E' | 'e' ) if @input.peek(1) == ?T || @input.peek(1) == ?t @input.consume else mse = MismatchedSet(nil) recover(mse) @@ -982,11 +983,11 @@ type = FALSE_CONST channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 359:14: ( 'F' | 'f' ) ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'S' | 's' ) ( 'E' | 'e' ) + # at line 370:14: ( 'F' | 'f' ) ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'S' | 's' ) ( 'E' | 'e' ) if @input.peek(1) == ?F || @input.peek(1) == ?f @input.consume else mse = MismatchedSet(nil) recover(mse) @@ -1039,23 +1040,23 @@ # -> uncomment the next line to manually enable rule tracing # trace_out(__method__, 26) end - # lexer rule name! (NAME) + # lexer rule quotename! (QUOTENAME) # (in ExcelFormula.g) - def name! + def quotename! # -> uncomment the next line to manually enable rule tracing # trace_in(__method__, 27) - type = NAME + type = QUOTENAME channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 360:7: '\\w[\\.\\w]*' - match("w[.w]*") + # at line 371:12: '\\'(?:[^\\']|\\'\\')*\\'' + match("'(?:[^']|'')*'") @state.type = type @state.channel = channel @@ -1063,23 +1064,23 @@ # -> uncomment the next line to manually enable rule tracing # trace_out(__method__, 27) end - # lexer rule quotename! (QUOTENAME) + # lexer rule func_if! (FUNC_IF) # (in ExcelFormula.g) - def quotename! + def func_if! # -> uncomment the next line to manually enable rule tracing # trace_in(__method__, 28) - type = QUOTENAME + type = FUNC_IF channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 361:12: '\\'(?:[^\\']|\\'\\')*\\'' - match("'(?:[^']|'')*'") + # at line 372:10: 'IF' + match("IF") @state.type = type @state.channel = channel @@ -1087,23 +1088,23 @@ # -> uncomment the next line to manually enable rule tracing # trace_out(__method__, 28) end - # lexer rule func_if! (FUNC_IF) + # lexer rule func_choose! (FUNC_CHOOSE) # (in ExcelFormula.g) - def func_if! + def func_choose! # -> uncomment the next line to manually enable rule tracing # trace_in(__method__, 29) - type = FUNC_IF + type = FUNC_CHOOSE channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 362:10: 'IF' - match("IF") + # at line 373:14: 'CHOOSE' + match("CHOOSE") @state.type = type @state.channel = channel @@ -1111,46 +1112,146 @@ # -> uncomment the next line to manually enable rule tracing # trace_out(__method__, 29) end - # lexer rule func_choose! (FUNC_CHOOSE) + # lexer rule alpha! (ALPHA) # (in ExcelFormula.g) - def func_choose! + def alpha! # -> uncomment the next line to manually enable rule tracing # trace_in(__method__, 30) - type = FUNC_CHOOSE + + # - - - - main rule block - - - - + # at line + if @input.peek(1).between?(?A, ?Z) || @input.peek(1).between?(?a, ?z) + @input.consume + else + mse = MismatchedSet(nil) + recover(mse) + raise mse + end + + + + ensure + # -> uncomment the next line to manually enable rule tracing + # trace_out(__method__, 30) + + end + + # lexer rule name! (NAME) + # (in ExcelFormula.g) + def name! + # -> uncomment the next line to manually enable rule tracing + # trace_in(__method__, 31) + + type = NAME channel = ANTLR3::DEFAULT_CHANNEL # - - - - main rule block - - - - - # at line 363:14: 'CHOOSE' - match("CHOOSE") + # at line 376:7: ( ALPHA )+ + # at file 376:7: ( ALPHA )+ + match_count_12 = 0 + loop do + alt_12 = 2 + look_12_0 = @input.peek(1) + if (look_12_0.between?(?A, ?Z) || look_12_0.between?(?a, ?z)) + alt_12 = 1 + + end + case alt_12 + when 1 + # at line 376:7: ALPHA + alpha! + + else + match_count_12 > 0 and break + eee = EarlyExit(12) + + + raise eee + end + match_count_12 += 1 + end + + @state.type = type @state.channel = channel ensure # -> uncomment the next line to manually enable rule tracing - # trace_out(__method__, 30) + # trace_out(__method__, 31) end + # lexer rule ws! (WS) + # (in ExcelFormula.g) + def ws! + # -> uncomment the next line to manually enable rule tracing + # trace_in(__method__, 32) + + type = WS + channel = ANTLR3::DEFAULT_CHANNEL + + + # - - - - main rule block - - - - + # at line 378:5: ( ' ' )+ + # at file 378:5: ( ' ' )+ + match_count_13 = 0 + loop do + alt_13 = 2 + look_13_0 = @input.peek(1) + + if (look_13_0 == ?\s) + alt_13 = 1 + + end + case alt_13 + when 1 + # at line 378:6: ' ' + match(?\s) + + else + match_count_13 > 0 and break + eee = EarlyExit(13) + + + raise eee + end + match_count_13 += 1 + end + + # --> action + skip() + # <-- action + + + @state.type = type + @state.channel = channel + + ensure + # -> uncomment the next line to manually enable rule tracing + # trace_out(__method__, 32) + + end + # 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 def token! - # at line 1:8: ( EQ | LT | GT | NE | LE | GE | ADD | SUB | MUL | DIV | COLON | SEMICOLON | COMMA | LP | RP | CONCAT | PERCENT | POWER | BANG | INT_CONST | NUM_CONST | STR_CONST | REF2D | TRUE_CONST | FALSE_CONST | NAME | QUOTENAME | FUNC_IF | FUNC_CHOOSE ) - alt_12 = 29 - alt_12 = @dfa12.predict(@input) - case alt_12 + # at line 1:8: ( EQ | LT | GT | NE | LE | GE | ADD | SUB | MUL | DIV | COLON | SEMICOLON | COMMA | LP | RP | CONCAT | PERCENT | POWER | BANG | INT_CONST | NUM_CONST | STR_CONST | REF2D | TRUE_CONST | FALSE_CONST | QUOTENAME | FUNC_IF | FUNC_CHOOSE | NAME | WS ) + alt_14 = 30 + alt_14 = @dfa14.predict(@input) + case alt_14 when 1 # at line 1:10: EQ eq! when 2 @@ -1248,54 +1349,64 @@ when 25 # at line 1:145: FALSE_CONST false_const! when 26 - # at line 1:157: NAME - name! + # at line 1:157: QUOTENAME + quotename! when 27 - # at line 1:162: QUOTENAME - quotename! + # at line 1:167: FUNC_IF + func_if! when 28 - # at line 1:172: FUNC_IF - func_if! + # at line 1:175: FUNC_CHOOSE + func_choose! when 29 - # at line 1:180: FUNC_CHOOSE - func_choose! + # at line 1:187: NAME + name! + when 30 + # at line 1:192: WS + ws! + end end # - - - - - - - - - - DFA definitions - - - - - - - - - - - - class DFA12 < ANTLR3::DFA - EOT = unpack(2, -1, 1, 31, 1, 33, 13, -1, 1, 34, 18, -1, 1, 38, 3, - -1) - EOF = unpack(40, -1) - MIN = unpack(1, 0, 1, -1, 2, 61, 13, -1, 1, 46, 3, -1, 2, 36, 1, -1, - 1, 36, 3, -1, 1, 36, 6, -1, 3, 36, 2, -1) - MAX = unpack(1, 116, 1, -1, 1, 62, 1, 61, 13, -1, 1, 57, 3, -1, 1, - 97, 1, 114, 1, -1, 1, 90, 3, -1, 1, 90, 6, -1, 1, 108, - 1, 57, 1, 79, 2, -1) + class DFA14 < ANTLR3::DFA + EOT = unpack(2, -1, 1, 34, 1, 36, 13, -1, 1, 37, 3, -1, 6, 30, 1, + -1, 2, 30, 8, -1, 3, 30, 1, 45, 3, 30, 1, -1, 2, 30, + 1, 51, 1, 30, 1, 53, 1, -1, 1, 30, 1, -1, 1, 55, 1, -1) + EOF = unpack(56, -1) + MIN = unpack(1, 32, 1, -1, 2, 61, 13, -1, 1, 46, 3, -1, 3, 36, 1, + 82, 1, 36, 1, 65, 1, -1, 2, 36, 8, -1, 1, 36, 1, 76, + 1, 85, 2, 36, 1, 83, 1, 69, 1, -1, 1, 79, 1, 69, 1, 65, + 1, 83, 1, 65, 1, -1, 1, 69, 1, -1, 1, 65, 1, -1) + MAX = unpack(1, 122, 1, -1, 1, 62, 1, 61, 13, -1, 1, 57, 3, -1, 1, + 97, 1, 114, 1, 57, 1, 114, 1, 90, 1, 97, 1, -1, 2, 90, + 8, -1, 2, 108, 1, 117, 1, 122, 1, 79, 1, 115, 1, 101, + 1, -1, 1, 79, 1, 101, 1, 122, 1, 83, 1, 122, 1, -1, 1, + 69, 1, -1, 1, 122, 1, -1) ACCEPT = unpack(1, -1, 1, 1, 2, -1, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, - 19, 1, -1, 1, 21, 1, 22, 1, 23, 2, -1, 1, 24, 1, -1, - 1, 25, 1, 26, 1, 27, 1, -1, 1, 4, 1, 5, 1, 2, 1, 6, - 1, 3, 1, 20, 3, -1, 1, 28, 1, 29) - SPECIAL = unpack(40, -1) + 19, 1, -1, 1, 21, 1, 22, 1, 23, 6, -1, 1, 26, 2, -1, + 1, 29, 1, 30, 1, 4, 1, 5, 1, 2, 1, 6, 1, 3, 1, 20, + 7, -1, 1, 27, 5, -1, 1, 24, 1, -1, 1, 25, 1, -1, 1, + 28) + SPECIAL = unpack(56, -1) TRANSITION = [ - unpack(1, 26, 32, -1, 1, 16, 1, 19, 1, -1, 1, 20, 1, 14, 1, 13, - 1, 27, 1, 11, 1, 12, 1, 6, 1, 4, 1, 10, 1, 5, 1, 18, 1, 7, - 10, 17, 1, 8, 1, 9, 1, 2, 1, 1, 1, 3, 2, -1, 2, 20, 1, 28, - 2, 20, 1, 21, 2, 20, 1, 24, 10, 20, 1, 22, 6, 20, 3, -1, - 1, 15, 7, -1, 1, 25, 13, -1, 1, 23), + unpack(1, 31, 1, 16, 1, 19, 1, -1, 1, 20, 1, 14, 1, 13, 1, 27, 1, + 11, 1, 12, 1, 6, 1, 4, 1, 10, 1, 5, 1, 18, 1, 7, 10, 17, + 1, 8, 1, 9, 1, 2, 1, 1, 1, 3, 2, -1, 2, 29, 1, 28, 2, 29, + 1, 21, 2, 29, 1, 25, 10, 23, 1, 22, 6, 23, 3, -1, 1, 15, + 2, -1, 5, 30, 1, 26, 13, 30, 1, 24, 6, 30), unpack(), - unpack(1, 30, 1, 29), - unpack(1, 32), + unpack(1, 33, 1, 32), + unpack(1, 35), unpack(), unpack(), unpack(), unpack(), unpack(), @@ -1309,52 +1420,68 @@ unpack(), unpack(1, 18, 1, -1, 10, 17), unpack(), unpack(), unpack(), - unpack(1, 20, 11, -1, 10, 20, 7, -1, 1, 35, 25, 20, 6, -1, 1, 25), - unpack(1, 20, 11, -1, 10, 20, 24, -1, 1, 23, 31, -1, 1, 23), + unpack(1, 20, 11, -1, 10, 20, 7, -1, 1, 38, 25, 23, 6, -1, 1, 39), + unpack(1, 20, 11, -1, 10, 20, 24, -1, 1, 40, 31, -1, 1, 40), + unpack(1, 20, 11, -1, 10, 20), + unpack(1, 40, 31, -1, 1, 40), + unpack(1, 20, 11, -1, 10, 20, 7, -1, 5, 23, 1, 41, 20, 23), + unpack(1, 39, 31, -1, 1, 39), unpack(), - unpack(1, 20, 11, -1, 10, 20, 7, -1, 5, 20, 1, 36, 20, 20), + unpack(1, 20, 11, -1, 10, 20, 7, -1, 7, 23, 1, 42, 18, 23), + unpack(1, 20, 11, -1, 10, 20, 7, -1, 26, 23), unpack(), unpack(), unpack(), - unpack(1, 20, 11, -1, 10, 20, 7, -1, 7, 20, 1, 37, 18, 20), unpack(), unpack(), unpack(), unpack(), unpack(), + unpack(1, 20, 11, -1, 10, 20, 18, -1, 1, 43, 31, -1, 1, 43), + unpack(1, 43, 31, -1, 1, 43), + unpack(1, 44, 31, -1, 1, 44), + unpack(1, 20, 11, -1, 10, 20, 7, -1, 26, 30, 6, -1, 26, 30), + unpack(1, 20, 11, -1, 10, 20, 21, -1, 1, 46), + unpack(1, 47, 31, -1, 1, 47), + unpack(1, 48, 31, -1, 1, 48), unpack(), - unpack(1, 20, 11, -1, 10, 20, 18, -1, 1, 25, 31, -1, 1, 25), - unpack(1, 20, 11, -1, 10, 20), - unpack(1, 20, 11, -1, 10, 20, 21, -1, 1, 39), + unpack(1, 49), + unpack(1, 50, 31, -1, 1, 50), + unpack(26, 30, 6, -1, 26, 30), + unpack(1, 52), + unpack(26, 30, 6, -1, 26, 30), unpack(), + unpack(1, 54), + unpack(), + unpack(26, 30, 6, -1, 26, 30), unpack() ].freeze ( 0 ... MIN.length ).zip( MIN, MAX ) do | i, a, z | if a > 0 and z < 0 MAX[ i ] %= 0x10000 end end - @decision = 12 + @decision = 14 def description <<-'__dfa_description__'.strip! - 1:1: Tokens : ( EQ | LT | GT | NE | LE | GE | ADD | SUB | MUL | DIV | COLON | SEMICOLON | COMMA | LP | RP | CONCAT | PERCENT | POWER | BANG | INT_CONST | NUM_CONST | STR_CONST | REF2D | TRUE_CONST | FALSE_CONST | NAME | QUOTENAME | FUNC_IF | FUNC_CHOOSE ); + 1:1: Tokens : ( EQ | LT | GT | NE | LE | GE | ADD | SUB | MUL | DIV | COLON | SEMICOLON | COMMA | LP | RP | CONCAT | PERCENT | POWER | BANG | INT_CONST | NUM_CONST | STR_CONST | REF2D | TRUE_CONST | FALSE_CONST | QUOTENAME | FUNC_IF | FUNC_CHOOSE | NAME | WS ); __dfa_description__ end end private def initialize_dfas super rescue nil - @dfa12 = DFA12.new(self, 12) + @dfa14 = DFA14.new(self, 14) end end # class Lexer < ANTLR3::Lexer at_exit { Lexer.main(ARGV) } if __FILE__ == $0