Class: Depager::RieExtension::PostRhs1::Parser

Inherits:
LALR::Basis show all
Includes:
Utils::ExtensionSlaveMethods
Defined in:
lib/depager/plugins/rie.rb

Overview

:nodoc:all

Constant Summary collapse

REDUCE_TABLE =

Reduce Table

[
  [ -1, 1 ],
  [ 0, 3 ],
  [ 1, 1 ],
  [ 1, 3 ],
  [ 2, 0 ],
  [ 2, 2 ],
  [ 2, 2 ],
  [ 2, 2 ],
  [ 2, 4 ],
  [ 2, 3 ],
  [ 2, 3 ],
  [ 2, 3 ],
  [ 2, 1 ],
  [ 7, 1 ],
  [ 7, 2 ],
  [ 7, 3 ],
  [ 6, 1 ],
  [ 6, 2 ],
  [ 8, 1 ],
  [ 8, 1 ],
  [ 8, 1 ],
  [ 8, 1 ],
  [ 8, 1 ],
  [ 8, 1 ],
  [ 8, 2 ],
  [ 8, 3 ],
  [ 8, 2 ],
  [ 8, 3 ],
  [ 8, 2 ],
  [ 8, 3 ],
  [ 4, 1 ],
  [ 4, 3 ],
  [ 5, 3 ],
  [ 3, 1 ],
  [ 3, 3 ],
]
TERM_TO_INT =

Term to Int

{
  nil => 0,
  false => 1,
  "{" => 2,
  "}" => 3,
  ";" => 4,
  :THREAD => 5,
  :TRANSFER => 6,
  :EXCEPT => 7,
  "=" => 8,
  :LID => 9,
  :ID => 10,
  :RBTOKEN => 11,
  "." => 12,
  "," => 13,
  "[" => 14,
  "]" => 15,
  "(" => 16,
  ")" => 17,
}
INT_TO_TERM =

Int to Term

[
  nil,
  false,
  "{",
  "}",
  ";",
  :THREAD,
  :TRANSFER,
  :EXCEPT,
  "=",
  :LID,
  :ID,
  :RBTOKEN,
  ".",
  ",",
  "[",
  "]",
  "(",
  ")",
]
ACTION_TABLE =

Action Table

[
  [ nil, nil, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ ACC, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, 5, 6, 7, nil, 9, 10, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, 19, 20, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 26, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, 27, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, 28, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, 29, nil, nil, nil, 30, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, 35, 18, nil, ],
  [ nil, nil, 17, 38, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, 40, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, 5, 6, 7, nil, 9, 10, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 43, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 43, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 44, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, 45, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 30, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 49, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 30, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, 50, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 51, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, 52, 50, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, 50, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 53, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 54, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 26, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
  [ nil, nil, 17, nil, nil, nil, nil, nil, nil, 34, 33, 13, 14, 15, 16, nil, 18, nil, ],
]
DEFRED_TABLE =

Default Reduce Table

[
  nil,
  nil,
  -4,
  nil,
  -2,
  nil,
  nil,
  nil,
  -18,
  -20,
  -19,
  -12,
  -16,
  -21,
  -22,
  -23,
  nil,
  nil,
  nil,
  -1,
  -4,
  -5,
  -33,
  -6,
  -7,
  -30,
  nil,
  nil,
  nil,
  nil,
  nil,
  -17,
  -18,
  -19,
  -20,
  -24,
  nil,
  -13,
  -26,
  nil,
  -28,
  nil,
  -3,
  nil,
  nil,
  nil,
  -9,
  -10,
  -11,
  -32,
  -14,
  -25,
  -27,
  -29,
  -34,
  -31,
  -8,
  -15,
]
DEFRED_AFTER_SHIFT_TABLE =
[
  nil,
  nil,
  nil,
  nil,
  -2,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  -16,
  -21,
  -22,
  -23,
  nil,
  nil,
  nil,
  -1,
  nil,
  nil,
  -33,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  -17,
  -18,
  nil,
  -20,
  -24,
  nil,
  nil,
  -26,
  nil,
  -28,
  nil,
  -3,
  nil,
  nil,
  nil,
  nil,
  nil,
  nil,
  -32,
  nil,
  -25,
  -27,
  -29,
  -34,
  -31,
  nil,
  nil,
]
NONTERM_TO_INT =

Nonterm to Int

{
  :start => 0,
  :stmt_list => 1,
  :stmt => 2,
  :id_list => 3,
  :lhs_list => 4,
  :lhs => 5,
  :rbexpr => 6,
  :rbexpr_list => 7,
  :rbelem => 8,
}
INT_TO_NONTERM =

Int to Nonterm

[
  :start,
  :stmt_list,
  :stmt,
  :id_list,
  :lhs_list,
  :lhs,
  :rbexpr,
  :rbexpr_list,
  :rbelem,
]
GOTO_TABLE =

Goto Table

[
  [ 1, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, 3, 4, nil, nil, 8, 11, nil, 12, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, 21, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, 23, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, 24, 25, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, 37, 36, 12, ],
  [ nil, nil, nil, nil, nil, 32, 37, 39, 12, ],
  [ nil, nil, nil, nil, nil, 32, 37, 41, 12, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, 42, nil, nil, 8, 11, nil, 12, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, 46, nil, 12, ],
  [ nil, nil, nil, nil, nil, 32, 47, nil, 12, ],
  [ nil, nil, nil, nil, nil, 32, 48, nil, 12, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 55, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, 56, nil, 12, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, 57, nil, 12, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
  [ nil, nil, nil, nil, nil, 32, nil, nil, 31, ],
]

Constants inherited from LALR::Parser

LALR::Parser::ACC

Instance Attribute Summary

Attributes included from Utils::ExtensionSlaveMethods

#d_parser, #g_parser, #master

Attributes inherited from LALR::Basis

#action_value, #basis, #file, #line, #lookahead, #parser_size, #stack

Instance Method Summary collapse

Methods included from Utils::ExtensionSlaveMethods

#abort_driver, #do_default, #do_parse

Methods included from Utils::CodeGeneratorMethods

#expand_inline_code, #generate_action_decorator_code, #generate_decorator_code, #parse_block

Methods included from Utils::CommonMethods

#error_exit, #error_message, #expanded_code_delimiter, #file, #full_target_name, #input_path, #inspect, #target_name, #target_namespace, #warning

Methods inherited from LALR::Basis

#abort_driver, #accept, #do_abort_driver, #error, #next_decorator_index, #reduce, #shift

Methods inherited from LALR::Parser

#accept, #error, #parse, #reduce, #shift

Constructor Details

#initialize(g_parser, master) ⇒ Parser

Returns a new instance of Parser.



1166
1167
1168
1169
1170
1171
1172
# File 'lib/depager/plugins/rie.rb', line 1166

def initialize g_parser, master
  super()
  @g_parser  = g_parser
  @d_parser  = g_parser.d_parser
  @master    = master
  @decorated = Action.new(self)
end

Instance Method Details

#action_tableObject



948
# File 'lib/depager/plugins/rie.rb', line 948

def action_table; ACTION_TABLE; end


1185
1186
1187
# File 'lib/depager/plugins/rie.rb', line 1185

def banner
  "{...} / Depager::RieExtension"
end

#defred_after_shift_tableObject



1073
# File 'lib/depager/plugins/rie.rb', line 1073

def defred_after_shift_table; DEFRED_AFTER_SHIFT_TABLE; end

#defred_tableObject



1011
# File 'lib/depager/plugins/rie.rb', line 1011

def defred_table; DEFRED_TABLE; end

#do_parse?Boolean

Returns:

  • (Boolean)


1175
1176
1177
1178
1179
1180
1181
1182
# File 'lib/depager/plugins/rie.rb', line 1175

def do_parse?
  if @line.match(/^\s*\{/)
    
    true
  else
    false
  end
end

#goto_tableObject



1164
# File 'lib/depager/plugins/rie.rb', line 1164

def goto_table; GOTO_TABLE; end

#int_to_nontermObject



1101
# File 'lib/depager/plugins/rie.rb', line 1101

def int_to_nonterm; INT_TO_NONTERM; end

#int_to_termObject



885
# File 'lib/depager/plugins/rie.rb', line 885

def int_to_term; INT_TO_TERM; end

#lex {|nil, nil| ... } ⇒ Object

Yields:

  • (nil, nil)


1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
# File 'lib/depager/plugins/rie.rb', line 1189

def lex
  begin
    until @line.empty?
      case @line
          when /\A#.*/
            @line = $'
                 

          when /\A[ \t]+/
            @line = $'
                 

          when /\A\r?\n/
            @line = $'
                 yield token(';') 

          when /\A\s*\(/
            @line = $'
                 yield token('(', $&) ; skip_space 

          when /\A\s*\[/
            @line = $'
                 yield token('[', $&) ; skip_space 

          when /\A\s*\{/
            @line = $'
                 yield token('{', $&) ; skip_space ; @nest +=1 

          when /\A\}/
            @line = $'
                 yield token('}'); (@nest-=1) == 0 and yield token(nil) 

          when /\A\./
            @line = $'
                 yield token('.') ; @_mode = :AFTER_DOT 

          when /\A,/
            @line = $'
                 yield token(','); @line.match(/[\s\n]*/) and @line = $' 

          when /\A%transfer/
            @line = $'
                 yield token(:TRANSFER) 

          when /\A%thread/
            @line = $'
                 yield token(:THREAD) 

          when /\A%except/
            @line = $'
                 yield token(:EXCEPT) 

          when /\A\$\./
            @line = $'
                 yield token(:ID, '$'); yield token('.') ; @_mode = :AFTER_DOT 

          when /\A'([^'\\]+|\\.)*'/, /\A"([^"\\]+|\\.)*"/, /\A\/([^\/\\]+|\\.)*\//, /\A(@|$|:)[a-zA-Z_]\w*/, /\A[a-zA-Z_]\w*[!?]/, /\A\d+/
            @line = $'
                 yield token(:RBTOKEN, $&) 

          when /\A(<=|>=|=>|==|===|!=|and|or)/, /\A([+!~*\-\/%^<>&|?:]+|\.\.\.?)/
            @line = $'
                 yield token(:RBTOKEN, $&) ; skip_space 

          when /\A=/
            @line = $'
                 yield token('=') ; skip_space 

          when /\A[a-zA-Z_]\w*/
            @line = $'
            
    if @_mode != :AFTER_DOT and @locals[$&]
      yield token(:LID, $&)
    else
      @_mode = nil
      yield token(:ID, $&)
    end

          when /\A./
            @line = $'
                 yield token($&) 


      else
        raise RuntimeError, "must not happen #{@line}"
      end
    end
  end while @original_line = @line = file.gets
  yield nil, nil
end

#nonterm_to_intObject



1087
# File 'lib/depager/plugins/rie.rb', line 1087

def nonterm_to_int; NONTERM_TO_INT; end

#reduce_tableObject



839
# File 'lib/depager/plugins/rie.rb', line 839

def reduce_table; REDUCE_TABLE; end

#term_to_intObject



862
# File 'lib/depager/plugins/rie.rb', line 862

def term_to_int; TERM_TO_INT; end