class ANTLR3::Template::Context

Constants

ATTR_FORM
SETTER_FORM
VARIABLE_FORM

Attributes

group[RW]
name[RW]
parameters[RW]

Public Class Methods

define( group, name, parameters ) { |self| ... } click to toggle source
# File lib/antlr3/template.rb, line 243
def define( group, name, parameters )
  Class.new( self ) do
    include( group )
    
    @group = group
    @name  = name
    @parameters = parameters
    
    block_given? and yield( self )
  end
end
define_alias( name ) { |new| ... } click to toggle source
# File lib/antlr3/template.rb, line 235
def define_alias( name )
  new = clone
  new.name = name
  new.group = @group
  block_given? and yield( new )
  return( new )
end
new( variable_map = nil ) { |self| ... } click to toggle source
# File lib/antlr3/template.rb, line 281
def initialize( variable_map = nil )
  variable_map and self << variable_map
  block_given? and yield( self )
end

Public Instance Methods

<<( variable_map ) click to toggle source
# File lib/antlr3/template.rb, line 274
def <<( variable_map )
  variable_map.each_pair do | name, value |
    self[ name ] = value
  end
  return( self )
end
[]( name ) click to toggle source
# File lib/antlr3/template.rb, line 269
def []( name )
  name = make_ivar( name )
  instance_variable_defined?( name ) ? instance_variable_get( name ) : nil
end
[]=( name, value ) click to toggle source
# File lib/antlr3/template.rb, line 265
def []=( name, value )
  instance_variable_set( make_ivar( name ), value )
end
method_missing( method, *args ) click to toggle source
Calls superclass method
# File lib/antlr3/template.rb, line 256
def method_missing( method, *args )
  case name = method.to_s
  when SETTER_FORM then return( self[ $1 ] = args.first )
  when ATTR_FORM
    args.empty? and has_ivar?( name ) and return( self[ name ] )
  end
  super
end

Private Instance Methods

has_ivar?( name ) click to toggle source
# File lib/antlr3/template.rb, line 288
def has_ivar?( name )
  instance_variable_defined?( make_ivar( name ) )
end
make_ivar( name ) click to toggle source
# File lib/antlr3/template.rb, line 292
def make_ivar( name )
  name = name.to_s
  VARIABLE_FORM =~ name or
    raise ArgumentError, "cannot convert %p to an instance variable name" % name
  $1 ? name : "@#{ name }"
end