Class: SyntaxTree::CHAR
- Inherits:
-
Object
- Object
- SyntaxTree::CHAR
- Defined in:
- lib/syntax_tree.rb
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.
-
#location ⇒ Object
readonly
- Location
-
the location of this node.
-
#value ⇒ Object
readonly
- String
-
the value of the character literal.
Instance Method Summary collapse
- #child_nodes ⇒ Object
- #format(q) ⇒ Object
-
#initialize(value:, location:, comments: []) ⇒ CHAR
constructor
A new instance of CHAR.
- #pretty_print(q) ⇒ Object
- #to_json(*opts) ⇒ Object
Constructor Details
#initialize(value:, location:, comments: []) ⇒ CHAR
Returns a new instance of CHAR.
513 514 515 516 517 |
# File 'lib/syntax_tree.rb', line 513 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
511 512 513 |
# File 'lib/syntax_tree.rb', line 511 def comments @comments end |
#location ⇒ Object (readonly)
- Location
-
the location of this node
508 509 510 |
# File 'lib/syntax_tree.rb', line 508 def location @location end |
#value ⇒ Object (readonly)
- String
-
the value of the character literal
505 506 507 |
# File 'lib/syntax_tree.rb', line 505 def value @value end |
Instance Method Details
#child_nodes ⇒ Object
519 520 521 |
# File 'lib/syntax_tree.rb', line 519 def child_nodes [] end |
#format(q) ⇒ Object
523 524 525 526 527 528 529 530 531 |
# File 'lib/syntax_tree.rb', line 523 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 |
#pretty_print(q) ⇒ Object
533 534 535 536 537 538 539 540 541 542 |
# File 'lib/syntax_tree.rb', line 533 def pretty_print(q) q.group(2, "(", ")") do q.text("CHAR") q.breakable q.pp(value) q.pp(Comment::List.new(comments)) end end |
#to_json(*opts) ⇒ Object
544 545 546 547 548 |
# File 'lib/syntax_tree.rb', line 544 def to_json(*opts) { type: :CHAR, value: value, loc: location, cmts: comments }.to_json( *opts ) end |