class BasicToken
Holds logic and information for basic token management.
Constants
- INLINE_CLASS_NAMES
- TOP_LEVEL_CLASS_NAMES
Attributes
source_text[R]
Public Class Methods
new(source_text)
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 15 def initialize(source_text) @source_text = source_text end
Public Instance Methods
accept(visitor)
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 35 def accept(visitor) method_name = "generate_#{type.to_s.downcase}" visitor.send(method_name.to_sym, self) end
inline?()
click to toggle source
TODO: Make references to token type constant everywhere
# File lib/rosetta/tokens/basic_token.rb, line 41 def inline? INLINE_CLASS_NAMES.include?(camel_case_type) || type == :TEXT end
node_representation()
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 23 def node_representation "<#{type} value='#{value}'>" end
to_s()
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 19 def to_s "<Token type='#{type}' value='#{value}'>" end
type()
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 27 def type raise 'Subclass should handle type.' end
value()
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 31 def value raise 'Subclass should handle value.' end
Private Instance Methods
camel_case_type()
click to toggle source
# File lib/rosetta/tokens/basic_token.rb, line 47 def camel_case_type # Example: :INLINE_CODE -> :InlineCode type.to_s.downcase.split('_').map(&:downcase).map(&:capitalize).join.to_sym end