Class: SyntaxTree::CHAR
Overview
CHAR irepresents a single codepoint in the script encoding.
?a
In the example above, the CHAR node represents the string literal “a”. You can use control characters with this as well, as in ?C-a.
Instance Attribute Summary collapse
-
#comments ⇒ Object
readonly
- Array[ Comment | EmbDoc ]
-
the comments attached to this node.
-
#value ⇒ Object
readonly
- String
-
the value of the character literal.
Attributes inherited from Node
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
- #child_nodes ⇒ Object (also: #deconstruct)
- #deconstruct_keys(keys) ⇒ Object
- #format(q) ⇒ Object
-
#initialize(value:, location:, comments: []) ⇒ CHAR
constructor
A new instance of CHAR.
Methods inherited from Node
Constructor Details
#initialize(value:, location:, comments: []) ⇒ CHAR
Returns a new instance of CHAR.
179 180 181 182 183 |
# File 'lib/syntax_tree/node.rb', line 179 def initialize(value:, location:, comments: []) @value = value @location = location @comments = comments end |
Instance Attribute Details
#comments ⇒ Object (readonly)
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
177 178 179 |
# File 'lib/syntax_tree/node.rb', line 177 def comments @comments end |
#value ⇒ Object (readonly)
- String
-
the value of the character literal
174 175 176 |
# File 'lib/syntax_tree/node.rb', line 174 def value @value end |
Instance Method Details
#accept(visitor) ⇒ Object
185 186 187 |
# File 'lib/syntax_tree/node.rb', line 185 def accept(visitor) visitor.visit_CHAR(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
189 190 191 |
# File 'lib/syntax_tree/node.rb', line 189 def child_nodes [] end |
#deconstruct_keys(keys) ⇒ Object
195 196 197 |
# File 'lib/syntax_tree/node.rb', line 195 def deconstruct_keys(keys) { value: value, location: location, comments: comments } end |
#format(q) ⇒ Object
199 200 201 202 203 204 205 206 207 |
# File 'lib/syntax_tree/node.rb', line 199 def format(q) if value.length != 2 q.text(value) else q.text(q.quote) q.text(value[1] == "\"" ? "\\\"" : value[1]) q.text(q.quote) end end |