Class: Rley::PTree::TerminalNode
- Inherits:
-
ParseTreeNode
- Object
- ParseTreeNode
- Rley::PTree::TerminalNode
- Defined in:
- lib/rley/ptree/terminal_node.rb
Instance Attribute Summary collapse
-
#token ⇒ Object
readonly
Link to the input token.
Attributes inherited from ParseTreeNode
Instance Method Summary collapse
-
#accept(aVisitor) ⇒ Object
Part of the 'visitee' role in Visitor design pattern.
-
#initialize(aToken, aPos) ⇒ TerminalNode
constructor
aPosition is the position of the token in the input stream.
-
#to_s ⇒ Object
Emit a short string representation of the node.
-
#to_string(indentation) ⇒ Object
Emit a (formatted) string representation of the node.
Constructor Details
#initialize(aToken, aPos) ⇒ TerminalNode
aPosition is the position of the token in the input stream.
10 11 12 13 14 15 16 17 |
# File 'lib/rley/ptree/terminal_node.rb', line 10 def initialize(aToken, aPos) # (major, minor) = # Use '1.class' trick to support both Integer and Fixnum classes range = aPos.kind_of?(1.class) ? { low: aPos, high: aPos + 1 } : aPos super(aToken.terminal, range) @token = aToken end |
Instance Attribute Details
#token ⇒ Object (readonly)
Link to the input token
7 8 9 |
# File 'lib/rley/ptree/terminal_node.rb', line 7 def token @token end |
Instance Method Details
#accept(aVisitor) ⇒ Object
Part of the 'visitee' role in Visitor design pattern.
33 34 35 |
# File 'lib/rley/ptree/terminal_node.rb', line 33 def accept(aVisitor) aVisitor.visit_terminal(self) end |
#to_s ⇒ Object
Emit a short string representation of the node. Mainly used for diagnosis/debugging purposes.
27 28 29 |
# File 'lib/rley/ptree/terminal_node.rb', line 27 def to_s() return super + ": '#{token.lexeme}'" end |
#to_string(indentation) ⇒ Object
Emit a (formatted) string representation of the node. Mainly used for diagnosis/debugging purposes.
21 22 23 |
# File 'lib/rley/ptree/terminal_node.rb', line 21 def to_string(indentation) return super + ": '#{token.lexeme}'" end |