Class: SyntaxTree::JSON::PrettyPrint

Inherits:
Visitor
  • Object
show all
Defined in:
lib/syntax_tree/json/pretty_print.rb

Overview

This class is a visitor responsible for pretty-printing the AST.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Visitor

#visit, #visit_all, #visit_child_nodes

Constructor Details

#initialize(q) ⇒ PrettyPrint

Returns a new instance of PrettyPrint.



9
10
11
# File 'lib/syntax_tree/json/pretty_print.rb', line 9

def initialize(q)
  @q = q
end

Instance Attribute Details

#qObject (readonly)

Returns the value of attribute q.



7
8
9
# File 'lib/syntax_tree/json/pretty_print.rb', line 7

def q
  @q
end

Instance Method Details

#visit_array(node) ⇒ Object

Visit an AST::Array node.



14
15
16
# File 'lib/syntax_tree/json/pretty_print.rb', line 14

def visit_array(node)
  group("array") { field("values", node.values) }
end

#visit_false(node) ⇒ Object

Visit an AST::False node.



19
20
21
# File 'lib/syntax_tree/json/pretty_print.rb', line 19

def visit_false(node)
  q.text("false")
end

#visit_null(node) ⇒ Object

Visit an AST::Null node.



24
25
26
# File 'lib/syntax_tree/json/pretty_print.rb', line 24

def visit_null(node)
  q.text("null")
end

#visit_number(node) ⇒ Object

Visit an AST::Number node.



29
30
31
# File 'lib/syntax_tree/json/pretty_print.rb', line 29

def visit_number(node)
  group("number") { field("value", node.value) }
end

#visit_object(node) ⇒ Object

Visit an AST::Object node.



34
35
36
# File 'lib/syntax_tree/json/pretty_print.rb', line 34

def visit_object(node)
  group("object") { field("values", node.values) }
end

#visit_root(node) ⇒ Object

Visit an AST::Root node.



39
40
41
# File 'lib/syntax_tree/json/pretty_print.rb', line 39

def visit_root(node)
  group("root") { field("value", node.value) }
end

#visit_string(node) ⇒ Object

Visit an AST::String node.



44
45
46
# File 'lib/syntax_tree/json/pretty_print.rb', line 44

def visit_string(node)
  group("string") { field("value", node.value) }
end

#visit_true(node) ⇒ Object

Visit an AST::True node.



49
50
51
# File 'lib/syntax_tree/json/pretty_print.rb', line 49

def visit_true(node)
  q.text("true")
end