Class: Depager::LALR::Parser
- Inherits:
-
Object
- Object
- Depager::LALR::Parser
- Defined in:
- lib/depager/parser.rb
Overview
Parser runtime
Stack
- s
-
state
- la
-
look ahead
- v
-
value
stack top->
[0, [la0, v0], s0, [la1, v1], s1, .....]
Direct Known Subclasses
Constant Summary collapse
- ACC =
0x03ffffff
Instance Method Summary collapse
- #accept ⇒ Object
- #action_table ⇒ Object
- #defred_after_shift_table ⇒ Object
- #defred_table ⇒ Object
- #error ⇒ Object
- #goto_table ⇒ Object
- #int_to_nonterm ⇒ Object
- #int_to_term ⇒ Object
- #lex ⇒ Object
- #nonterm_to_int ⇒ Object
- #parse(f, line = "") ⇒ Object
- #reduce ⇒ Object
- #reduce_table ⇒ Object
- #shift ⇒ Object
- #term_to_int ⇒ Object
Instance Method Details
#accept ⇒ Object
55 |
# File 'lib/depager/parser.rb', line 55 def accept; end |
#action_table ⇒ Object
61 |
# File 'lib/depager/parser.rb', line 61 def action_table; end |
#defred_after_shift_table ⇒ Object
63 |
# File 'lib/depager/parser.rb', line 63 def defred_after_shift_table; end |
#defred_table ⇒ Object
62 |
# File 'lib/depager/parser.rb', line 62 def defred_table; end |
#error ⇒ Object
56 |
# File 'lib/depager/parser.rb', line 56 def error; end |
#goto_table ⇒ Object
64 |
# File 'lib/depager/parser.rb', line 64 def goto_table; end |
#int_to_nonterm ⇒ Object
68 |
# File 'lib/depager/parser.rb', line 68 def int_to_nonterm; end |
#int_to_term ⇒ Object
66 |
# File 'lib/depager/parser.rb', line 66 def int_to_term; end |
#lex ⇒ Object
54 |
# File 'lib/depager/parser.rb', line 54 def lex; end |
#nonterm_to_int ⇒ Object
67 |
# File 'lib/depager/parser.rb', line 67 def nonterm_to_int; end |
#parse(f, line = "") ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/depager/parser.rb', line 41 def parse(f, line = "") basis.__send__ :internal_initialize, f, line, [0, nil] do_hook :before_parse lex do |sym, val| basis.lookahead = [term_to_int[sym] || term_to_int[false], val] break if driver end do_hook :after_parse stack[1][2..basis.parser_size] end |
#reduce ⇒ Object
58 |
# File 'lib/depager/parser.rb', line 58 def reduce; end |
#reduce_table ⇒ Object
60 |
# File 'lib/depager/parser.rb', line 60 def reduce_table; end |
#shift ⇒ Object
57 |
# File 'lib/depager/parser.rb', line 57 def shift; end |
#term_to_int ⇒ Object
65 |
# File 'lib/depager/parser.rb', line 65 def term_to_int; end |