Class: Depager::CSTBuilderExtension

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

Defined Under Namespace

Modules: PostLhs1, 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

#initializeCSTBuilderExtension

Returns a new instance of CSTBuilderExtension.



11
12
13
14
15
# File 'lib/depager/plugins/cst.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
# File 'lib/depager/plugins/cst.rb', line 17

def extension_registered g_parser
  super g_parser

  @slaves << Depager::CSTBuilderExtension::PreRuleList0::Parser.new(g_parser, self)
  g_parser.hooks[:pre_rule_list].push [@slaves.last, :do_parse]
  @slaves << Depager::CSTBuilderExtension::PostLhs1::Parser.new(g_parser, self)
  g_parser.hooks[:post_lhs].push [@slaves.last, :do_parse]
end