Class: Depager::StatefulLexerExtension

Inherits:
Extension
  • Object
show all
Defined in:
lib/depager/plugins/slex.rb

Defined Under Namespace

Modules: PreRhsPostSymbol1, PreRuleList0

Instance Attribute Summary

Attributes inherited from Extension

#d_parser, #g_parser

Instance Method Summary collapse

Methods inherited from Extension

#decorator_name, #init_extension, #term_extension

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

Constructor Details

#initializeStatefulLexerExtension

Returns a new instance of StatefulLexerExtension.



11
12
13
14
15
# File 'lib/depager/plugins/slex.rb', line 11

def initialize
  super
  @master = self
  @slaves = []
end

Instance Method Details

#extension_registered(g_parser) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/depager/plugins/slex.rb', line 17

def extension_registered g_parser
  super g_parser

  @slaves << Depager::StatefulLexerExtension::PreRuleList0::Parser.new(g_parser, self)
  g_parser.hooks[:pre_rule_list].push [@slaves.last, :do_parse]
  @slaves << Depager::StatefulLexerExtension::PreRhsPostSymbol1::Parser.new(g_parser, self)
  g_parser.hooks[:pre_rhs].push [@slaves.last, :do_parse]
  g_parser.hooks[:post_symbol].push [@slaves.last, :do_parse]
end