android13/external/antlr/runtime/Ruby/lib/antlr3/modes/ast-builder.rb

41 lines
849 B
Ruby
Executable File

#!/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