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_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Alias node.
-
#visit_alias_member(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_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_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Alias node.
17 18 19 20 21 22 23 24 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 17 def visit_alias_declaration(node) group("constant") do print_comment(node) print_annotations(node) visit_field("name", node.name) visit_field("type", node.type) end end |
#visit_alias_member(node) ⇒ Object
Visit a RBS::AST::Members::Alias node.
27 28 29 30 31 32 33 34 35 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 27 def visit_alias_member(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.
38 39 40 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 38 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.
46 47 48 49 50 51 52 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 46 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.
55 56 57 58 59 60 61 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 55 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.
64 65 66 67 68 69 70 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 64 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.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 79 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.
96 97 98 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 96 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.
101 102 103 104 105 106 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 101 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.
109 110 111 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 109 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.
117 118 119 120 121 122 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 117 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.
125 126 127 128 129 130 131 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 125 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.
134 135 136 137 138 139 140 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 134 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.
143 144 145 146 147 148 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 143 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.
151 152 153 154 155 156 157 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 151 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.
160 161 162 163 164 165 166 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 160 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.
172 173 174 175 176 177 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 172 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.
180 181 182 183 184 185 186 187 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 180 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.
190 191 192 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 190 def visit_interface_type(node) group("interface") { print_name_and_args(node) } end |
#visit_intersection_type(node) ⇒ Object
Visit a RBS::Types::Intersection node.
195 196 197 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 195 def visit_intersection_type(node) group("intersection") { pp_field("types", node.types) } end |
#visit_literal_type(node) ⇒ Object
Visit a RBS::Types::Literal node.
200 201 202 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 200 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.
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 205 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.overload? q.breakable q.text("types=") q.group(2, "[", "]") do q.seplist(node.types) { |type| print_method_signature(type) } end end end |
#visit_module_declaration(node) ⇒ Object
Visit a RBS::AST::Declarations::Module node.
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 223 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.
247 248 249 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 247 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.
252 253 254 255 256 257 258 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 252 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.
261 262 263 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 261 def visit_private_member(node) q.text("(private)") end |
#visit_proc_type(node) ⇒ Object
Visit a RBS::Types::Proc node.
266 267 268 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 266 def visit_proc_type(node) group("proc") { print_method_signature(node) } end |
#visit_public_member(node) ⇒ Object
Visit a RBS::AST::Members::Public node.
271 272 273 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 271 def visit_public_member(node) q.text("(public)") end |
#visit_record_type(node) ⇒ Object
Visit a RBS::Types::Record node.
276 277 278 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 276 def visit_record_type(node) group("record") { pp_field("fields", node.fields) } end |
#visit_root(node) ⇒ Object
Visit a SyntaxTree::RBS::Root node.
281 282 283 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 281 def visit_root(node) group("root") { pp_field("declarations", node.declarations) } end |
#visit_tuple_type(node) ⇒ Object
Visit a RBS::Types::Tuple node.
292 293 294 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 292 def visit_tuple_type(node) group("tuple") { pp_field("types", node.types) } end |
#visit_type_name(node) ⇒ Object
Visit a RBS::TypeName node.
297 298 299 300 301 302 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 297 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.
305 306 307 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 305 def visit_union_type(node) group("union") { pp_field("types", node.types) } end |
#visit_variable_type(node) ⇒ Object
Visit a RBS::Types::Variable node.
310 311 312 |
# File 'lib/syntax_tree/rbs/pretty_print.rb', line 310 def visit_variable_type(node) group("variable") { pp_field("name", node.name) } end |