@@ -2,8 +2,15 @@ module Herb
22 module AST
33 <%- nodes.each do |node| -%>
44 class <%= node.name -%> < Node
5+ #: type serialized_ <%= node . human %> = {
56 <%- node . fields . each do |field | -%>
6- attr_reader : <%= field . name %> #: <%= field . ruby_type %>
7+ #| <%= field . name %> : <%= field . ruby_type %> ,
8+ <%- end -%>
9+ #| }
10+
11+ <%- node . fields . each do |field | -%>
12+ #: <%= field . ruby_type %>
13+ attr_reader : <%= field . name %>
714 <%- end -%>
815
916 #: (<%= [ "String" , "Location" , "Array[Herb::Errors::Error]" , *node . fields . map ( &:ruby_type ) ] . join ( ", " ) %> ) - > void
@@ -24,7 +31,7 @@ module Herb
2431 <%- node . fields . each do |field | -%>
2532 <%= field . name %> : <%= field . name %> ,
2633 <%- end -%>
27- }) #: Herb::serialized_ <%= node . human %>
34+ })
2835 end
2936
3037 #: (Visitor) -> void
@@ -73,7 +80,7 @@ module Herb
7380 output += %(<%= name %> #{<%= field . name %> .inspect}\n)
7481 <%- when Herb ::Template ::TokenField -%>
7582 output += "<%= name %> "
76- output += <%= field . name %> ? <%= field . name %> . tree_inspect : "∅"
83+ output += <%= field . name %> . tree_inspect
7784 output += "\n"
7885 <%- when Herb ::Template ::BooleanField -%>
7986 output += "<%= name %> "
@@ -87,18 +94,14 @@ module Herb
8794 # no-op for <%= field . name %>
8895 <%- when Herb ::Template ::NodeField -%>
8996 output += "<%= name %> "
90- if <%= field . name %>
91- <%- prefix = ( node . fields . last == field ) ? " " : "│ " -%>
92- output += "\n"
93- <%- if ( node . fields . last == field ) -%>
94- output += " └── "
95- <%- else -%>
96- output += "│ └── "
97- <%- end -%>
98- output += <%= field . name %> .tree_inspect(indent).gsub(/^/, " " * (indent + 1)).lstrip.gsub(/^/, "<%= prefix %> ").delete_prefix("<%= prefix %> ")
99- else
100- output += "∅\n"
101- end
97+ <%- prefix = ( node . fields . last == field ) ? " " : "│ " -%>
98+ output += "\n"
99+ <%- if ( node . fields . last == field ) -%>
100+ output += " └── "
101+ <%- else -%>
102+ output += "│ └── "
103+ <%- end -%>
104+ output += <%= field . name %> .tree_inspect(indent).gsub(/^/, " " * (indent + 1)).lstrip.gsub(/^/, "<%= prefix %> ").delete_prefix("<%= prefix %> ")
102105 <%- when Herb ::Template ::ArrayField -%>
103106 output += "<%= name %> "
104107 output += inspect_array(<%= field . name %> , prefix: "<%= ( node . fields . last == field ) ? " " : "│ " %> ")
0 commit comments