blob: 8ce768aee85d4eed5c29e0b319ea73aedf402524 [file] [log] [blame]
#!/usr/bin/ruby
# encoding: utf-8
require 'antlr3'
require 'antlr3/tree'
module ANTLR3
module ASTBuilder
extend ClassMacros
def self.included( klass )
def klass.return_scope_members
super.push( :tree )
end
end
def initialize( input, options = {} )
@adaptor = options[ :adaptor ] ||= begin
( input.adaptor rescue nil ) or
AST::CommonTreeAdaptor.new( token_class )
end
super( input, options )
end
shared_attribute( :adaptor )
private
def subtree_stream( desc, element = nil )
AST::RewriteRuleSubtreeStream.new( @adaptor, desc, element )
end
def token_stream( desc, element = nil )
AST::RewriteRuleTokenStream.new( @adaptor, desc, element )
end
def node_stream( desc, element = nil )
AST::RewriteRuleNodeStream.new( @adaptor, desc, element )
end
end
end