Class: Depager::LALR::Action
- Inherits:
-
AdvancedParser
- Object
- Parser
- AdvancedParser
- Depager::LALR::Action
- Defined in:
- lib/depager/parser.rb
Direct Known Subclasses
ASTBuilderExtension::PostRhs1::Action, ASTBuilderExtension::PreRuleList0::Action, CSTBuilderExtension::PostLhs1::Action, CSTBuilderExtension::PreRuleList0::Action, Depager::LexerExtension::PreRuleList0::Action, RieExtension::PostLhs0::Action, RieExtension::PostRhs1::Action, StatefulLexerExtension::PreRhsPostSymbol1::Action, StatefulLexerExtension::PreRuleList0::Action
Constant Summary
Constants inherited from Parser
Instance Attribute Summary
Attributes inherited from AdvancedParser
Instance Method Summary collapse
- #after_reduce ⇒ Object
- #before_reduce ⇒ Object
-
#initialize(inside) ⇒ Action
constructor
A new instance of Action.
- #on_reduce ⇒ Object
Methods inherited from AdvancedParser
#accept, #error, #reduce, #shift
Methods inherited from Parser
#accept, #action_table, #defred_after_shift_table, #defred_table, #error, #goto_table, #int_to_nonterm, #int_to_term, #lex, #nonterm_to_int, #parse, #reduce, #reduce_table, #shift, #term_to_int
Constructor Details
#initialize(inside) ⇒ Action
Returns a new instance of Action.
248 249 250 251 |
# File 'lib/depager/parser.rb', line 248 def initialize(inside) super @_arguments = [] end |
Instance Method Details
#after_reduce ⇒ Object
262 263 264 265 266 |
# File 'lib/depager/parser.rb', line 262 def after_reduce method = on_reduce[-action_value] result = method ? send(method, @_arguments) : nil stack[stack.size - 2][decorator_index] = result end |
#before_reduce ⇒ Object
253 254 255 256 257 258 259 260 |
# File 'lib/depager/parser.rb', line 253 def before_reduce @_arguments = [] n = reduce_table[-action_value][1] n.times do |i| v = stack[stack.size - (2 * (i + 1))] @_arguments[n - i - 1] = v[1] == :NT ? v[decorator_index] : v[1] end end |
#on_reduce ⇒ Object
246 |
# File 'lib/depager/parser.rb', line 246 def on_reduce; end |