class Bpl::AST::Identifier

Attributes

name[RW]

Public Instance Methods

hilite() click to toggle source
# File lib/bpl/ast/expression.rb, line 54
def hilite
  (declaration ? (is_global? ? @name.blue : @name.green) : @name.red) +
  (type ? ":#{type.hilite}" : "")
end
ident() click to toggle source
# File lib/bpl/passes/analysis/modification.rb, line 5
def ident; self end
is_global?() click to toggle source
# File lib/bpl/ast/expression.rb, line 50
def is_global?
  declaration && declaration.parent && declaration.parent.is_a?(Program) || false
end
is_variable?() click to toggle source
# File lib/bpl/ast/expression.rb, line 47
def is_variable?
  declaration && declaration.is_a?(VariableDeclaration) || false
end
show() click to toggle source
# File lib/bpl/ast/expression.rb, line 53
def show; @name end
type() click to toggle source

XXX identifiers should be unique so that we can distinguish between bindings, for example def hash; name.hash end def <=>(id) @name <=> id.name end def eql?(id) id.is_a?(self.class) && id.name == @name end

# File lib/bpl/ast/expression.rb, line 44
def type
  declaration.type if declaration.respond_to? :type
end