Class: Heist::Runtime::Identifier
- Inherits:
-
Object
- Object
- Heist::Runtime::Identifier
- Extended by:
- Forwardable
- Includes:
- Expression
- Defined in:
- lib/runtime/data/identifier.rb
Overview
An Identifier is used to represent any name that appears in Scheme code. We might throw it away and use symbols at some point. I had this idea for storing metadata on Identifier objects to speed things up but it pretty much came to nothing. Its one saving grace is that it needs to be treated as an Expression class, and also that we need to store some extra metadata on Identifier objects, and I don’t want to modify core Ruby classes
Instance Attribute Summary
Attributes included from Expression
Instance Method Summary collapse
-
#==(other) ⇒ Object
Returns
trueif the receiver has the same name as the argument. -
#initialize(name, orginal_name = nil) ⇒ Identifier
constructor
An
Identifieris initialized using a string that becomes the name of the identifier. - #name ⇒ Object
-
#to_ruby ⇒ Object
Returns a raw Ruby representation of the identifier, for which we use symbols.
Methods included from Expression
Constructor Details
#initialize(name, orginal_name = nil) ⇒ Identifier
An Identifier is initialized using a string that becomes the name of the identifier. The optional second parameter is used to specify the original name of an identifier if it has been renamed during a macro expansion.
22 23 24 25 |
# File 'lib/runtime/data/identifier.rb', line 22 def initialize(name, orginal_name = nil) @name = name.to_s @orginal_name = (orginal_name || name).to_s end |
Instance Method Details
#==(other) ⇒ Object
Returns true if the receiver has the same name as the argument.
32 33 34 35 |
# File 'lib/runtime/data/identifier.rb', line 32 def ==(other) return true if Binding === other and other == self Identifier === other and @orginal_name.downcase == other.name.downcase end |
#name ⇒ Object
27 28 29 |
# File 'lib/runtime/data/identifier.rb', line 27 def name @orginal_name end |
#to_ruby ⇒ Object
Returns a raw Ruby representation of the identifier, for which we use symbols.
39 40 41 |
# File 'lib/runtime/data/identifier.rb', line 39 def to_ruby @name.to_s.to_sym end |