Class: SyntaxTree::RBS::PrettyPrint
- Defined in:
- lib/syntax_tree/rbs/pretty_print.rb
Instance Attribute Summary collapse
-
#q ⇒ Object
readonly
Returns the value of attribute q.
Instance Method Summary collapse
-
#initialize(q) ⇒ PrettyPrint
constructor
A new instance of PrettyPrint.
-
#visit_alias(node) ⇒ Object
Visit a RBS::AST::Members::Alias node.
-
#visit_alias_type(node) ⇒ Object
Visit a RBS::Types::Alias node.
-
#visit_attr_accessor_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrAccessor node.
-
#visit_attr_reader_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrReader node.
-
#visit_attr_writer_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrWriter node.
- #visit_base_type(node) ⇒ Object (also: #visit_any_type, #visit_bool_type, #visit_bottom_type, #visit_class_type, #visit_instance_type, #visit_nil_type, #visit_self_type, #visit_top_type, #visit_void_type)
-
#visit_class_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Class node.
-
#visit_class_instance_type(node) ⇒ Object
Visit a RBS::Types::ClassInstance node.
-
#visit_class_instance_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::ClassInstanceVariable node.
-
#visit_class_singleton_type(node) ⇒ Object
Visit a RBS::Types::ClassSingleton node.
-
#visit_class_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::ClassVariable node.
-
#visit_constant_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Constant node.
-
#visit_extend_member(node) ⇒ Object
Visit a RBS::AST::Members::Extend node.
-
#visit_function_param_type(node) ⇒ Object
Visit a RBS::Types::Function::Param node.
-
#visit_global_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Global node.
-
#visit_include_member(node) ⇒ Object
Visit a RBS::AST::Members::Include node.
-
#visit_instance_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::InstanceVariable node.
-
#visit_interface_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Interface node.
-
#visit_interface_type(node) ⇒ Object
Visit a RBS::Types::Interface node.
-
#visit_intersection_type(node) ⇒ Object
Visit a RBS::Types::Intersection node.
-
#visit_literal_type(node) ⇒ Object
Visit a RBS::Types::Literal node.
-
#visit_method_definition_member(node) ⇒ Object
Visit a RBS::AST::Members::MethodDefinition node.
-
#visit_module_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Module node.
-
#visit_optional_type(node) ⇒ Object
Visit a RBS::Types::Optional node.
-
#visit_prepend_member(node) ⇒ Object
Visit a RBS::AST::Members::Prepend node.
-
#visit_private_member(node) ⇒ Object
Visit a RBS::AST::Members::Private node.
-
#visit_proc_type(node) ⇒ Object
Visit a RBS::Types::Proc node.
-
#visit_public_member(node) ⇒ Object
Visit a RBS::AST::Members::Public node.
-
#visit_record_type(node) ⇒ Object
Visit a RBS::Types::Record node.
-
#visit_root(node) ⇒ Object
Visit a SyntaxTree::RBS::Root node.
-
#visit_tuple_type(node) ⇒ Object
Visit a RBS::Types::Tuple node.
-
#visit_type_alias(node) ⇒ Object
Visit a RBS::AST::Declarations::TypeAlias node.
-
#visit_type_name(node) ⇒ Object
Visit a RBS::TypeName node.
-
#visit_union_type(node) ⇒ Object
Visit a RBS::Types::Union node.
-
#visit_variable_type(node) ⇒ Object
Visit a RBS::Types::Variable node.
Methods inherited from Visitor
Constructor Details
#initialize(q) ⇒ PrettyPrint
Returns a new instance of PrettyPrint.
8 9 10 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 8 def initialize(q) @q = q end |
Instance Attribute Details
#q ⇒ Object (readonly)
Returns the value of attribute q.
6 7 8 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 6 def q @q end |
Instance Method Details
#visit_alias(node) ⇒ Object
Visit a RBS::AST::Members::Alias node.
17 18 19 20 21 22 23 24 25 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 17 def visit_alias(node) group("alias") do print_comment(node) print_annotations(node) bool_field("singleton") if node.kind == :singleton pp_field("new_name", node.new_name) pp_field("old_name", node.old_name) end end |
#visit_alias_type(node) ⇒ Object
Visit a RBS::Types::Alias node.
28 29 30 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 28 def visit_alias_type(node) group("alias") { visit_field("name", node.name) } end |
#visit_attr_accessor_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrAccessor node.
36 37 38 39 40 41 42 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 36 def visit_attr_accessor_member(node) group("attr-accessor") do print_comment(node) print_annotations(node) print_attribute(node) end end |
#visit_attr_reader_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrReader node.
45 46 47 48 49 50 51 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 45 def visit_attr_reader_member(node) group("attr-reader") do print_comment(node) print_annotations(node) print_attribute(node) end end |
#visit_attr_writer_member(node) ⇒ Object
Visit a RBS::AST::Members::AttrWriter node.
54 55 56 57 58 59 60 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 54 def visit_attr_writer_member(node) group("attr-writer") do print_comment(node) print_annotations(node) print_attribute(node) end end |
#visit_base_type(node) ⇒ Object Also known as: visit_any_type, visit_bool_type, visit_bottom_type, visit_class_type, visit_instance_type, visit_nil_type, visit_self_type, visit_top_type, visit_void_type
12 13 14 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 12 def visit_base_type(node) q.text("(#{node.class.name.downcase})") end |
#visit_class_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Class node.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 69 def visit_class_declaration(node) group("class") do print_comment(node) print_annotations(node) print_name_and_type_params(node) if node.super_class q.breakable q.text("super_class=") print_name_and_args(node.super_class) end pp_field("members", node.members) end end |
#visit_class_instance_type(node) ⇒ Object
Visit a RBS::Types::ClassInstance node.
86 87 88 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 86 def visit_class_instance_type(node) group("class-instance") { print_name_and_args(node) } end |
#visit_class_instance_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::ClassInstanceVariable node.
91 92 93 94 95 96 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 91 def visit_class_instance_variable_member(node) group("class-instance-variable") do print_comment(node) pp_field("name", node.name) end end |
#visit_class_singleton_type(node) ⇒ Object
Visit a RBS::Types::ClassSingleton node.
99 100 101 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 99 def visit_class_singleton_type(node) group("class-singleton") { pp_field("name", node.name) } end |
#visit_class_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::ClassVariable node.
107 108 109 110 111 112 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 107 def visit_class_variable_member(node) group("class-variable") do print_comment(node) pp_field("name", node.name) end end |
#visit_constant_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Constant node.
115 116 117 118 119 120 121 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 115 def visit_constant_declaration(node) group("constant") do print_comment(node) visit_field("name", node.name) visit_field("type", node.type) end end |
#visit_extend_member(node) ⇒ Object
Visit a RBS::AST::Members::Extend node.
124 125 126 127 128 129 130 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 124 def visit_extend_member(node) group("extend") do print_comment(node) print_annotations(node) print_name_and_args(node) end end |
#visit_function_param_type(node) ⇒ Object
Visit a RBS::Types::Function::Param node.
133 134 135 136 137 138 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 133 def visit_function_param_type(node) group("param") do visit_field("type", node.type) pp_field("name", node.name) if node.name end end |
#visit_global_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Global node.
141 142 143 144 145 146 147 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 141 def visit_global_declaration(node) group("global") do print_comment(node) pp_field("name", node.name) visit_field("type", node.type) end end |
#visit_include_member(node) ⇒ Object
Visit a RBS::AST::Members::Include node.
150 151 152 153 154 155 156 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 150 def visit_include_member(node) group("include") do print_comment(node) print_annotations(node) print_name_and_args(node) end end |
#visit_instance_variable_member(node) ⇒ Object
Visit a RBS::AST::Members::InstanceVariable node.
162 163 164 165 166 167 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 162 def visit_instance_variable_member(node) group("instance-variable") do print_comment(node) pp_field("name", node.name) end end |
#visit_interface_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Interface node.
170 171 172 173 174 175 176 177 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 170 def visit_interface_declaration(node) group("interface") do print_comment(node) print_annotations(node) print_name_and_type_params(node) pp_field("members", node.members) end end |
#visit_interface_type(node) ⇒ Object
Visit a RBS::Types::Interface node.
180 181 182 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 180 def visit_interface_type(node) group("interface") { print_name_and_args(node) } end |
#visit_intersection_type(node) ⇒ Object
Visit a RBS::Types::Intersection node.
185 186 187 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 185 def visit_intersection_type(node) group("intersection") { pp_field("types", node.types) } end |
#visit_literal_type(node) ⇒ Object
Visit a RBS::Types::Literal node.
190 191 192 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 190 def visit_literal_type(node) group("literal") { pp_field("literal", node.literal) } end |
#visit_method_definition_member(node) ⇒ Object
Visit a RBS::AST::Members::MethodDefinition node.
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 195 def visit_method_definition_member(node) group("(method-definition") do print_comment(node) print_annotations(node) pp_field("kind", node.kind) pp_field("name", node.name) pp_field("visibility", node.visibility) if node.visibility bool_field("overload") if node.overloading? q.breakable q.text("overloads=") q.group(2, "[", "]") do q.seplist(node.overloads) do |overload| print_method_overload(overload) end end end end |
#visit_module_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Module node.
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 215 def visit_module_declaration(node) group("module") do print_comment(node) print_annotations(node) print_name_and_type_params(node) if node.self_types.any? q.breakable q.text("self_types=") q.group(2, "[", "]") do q.seplist(node.self_types) do |self_type| print_name_and_args(self_type) end end end pp_field("members", node.members) end end |
#visit_optional_type(node) ⇒ Object
Visit a RBS::Types::Optional node.
239 240 241 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 239 def visit_optional_type(node) group("optional") { visit_field("type", node.type) } end |
#visit_prepend_member(node) ⇒ Object
Visit a RBS::AST::Members::Prepend node.
244 245 246 247 248 249 250 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 244 def visit_prepend_member(node) group("prepend") do print_comment(node) print_annotations(node) print_name_and_args(node) end end |
#visit_private_member(node) ⇒ Object
Visit a RBS::AST::Members::Private node.
253 254 255 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 253 def visit_private_member(node) q.text("(private)") end |
#visit_proc_type(node) ⇒ Object
Visit a RBS::Types::Proc node.
258 259 260 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 258 def visit_proc_type(node) group("proc") { print_method_signature(node) } end |
#visit_public_member(node) ⇒ Object
Visit a RBS::AST::Members::Public node.
263 264 265 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 263 def visit_public_member(node) q.text("(public)") end |
#visit_record_type(node) ⇒ Object
Visit a RBS::Types::Record node.
268 269 270 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 268 def visit_record_type(node) group("record") { pp_field("fields", node.fields) } end |
#visit_root(node) ⇒ Object
Visit a SyntaxTree::RBS::Root node.
273 274 275 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 273 def visit_root(node) group("root") { pp_field("declarations", node.declarations) } end |
#visit_tuple_type(node) ⇒ Object
Visit a RBS::Types::Tuple node.
284 285 286 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 284 def visit_tuple_type(node) group("tuple") { pp_field("types", node.types) } end |
#visit_type_alias(node) ⇒ Object
Visit a RBS::AST::Declarations::TypeAlias node.
289 290 291 292 293 294 295 296 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 289 def visit_type_alias(node) group("constant") do print_comment(node) print_annotations(node) visit_field("name", node.name) visit_field("type", node.type) end end |
#visit_type_name(node) ⇒ Object
Visit a RBS::TypeName node.
299 300 301 302 303 304 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 299 def visit_type_name(node) group("type-name") do q.breakable q.pp(node.to_s) end end |
#visit_union_type(node) ⇒ Object
Visit a RBS::Types::Union node.
307 308 309 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 307 def visit_union_type(node) group("union") { pp_field("types", node.types) } end |
#visit_variable_type(node) ⇒ Object
Visit a RBS::Types::Variable node.
312 313 314 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 312 def visit_variable_type(node) group("variable") { pp_field("name", node.name) } end |