class Puppet::Pops::Model::ModelTreeDumper

Dumps a Pops::Model in reverse polish notation; i.e. LISP style The intention is to use this for debugging output TODO: BAD NAME - A DUMP is a Ruby Serialization

Public Instance Methods

dump_AccessExpression(o) click to toggle source

x prints as (slice x y)

   # File lib/puppet/pops/model/model_tree_dumper.rb
46 def dump_AccessExpression o
47   if o.keys.size <= 1
48     ["slice", do_dump(o.left_expr), do_dump(o.keys[0])]
49   else
50     ["slice", do_dump(o.left_expr), do_dump(o.keys)]
51   end
52 end
dump_AndExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
 98 def dump_AndExpression o
 99   ["&&", do_dump(o.left_expr), do_dump(o.right_expr)]
100 end
dump_ArithmeticExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
41 def dump_ArithmeticExpression o
42   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
43 end
dump_Array(o) click to toggle source
  # File lib/puppet/pops/model/model_tree_dumper.rb
7 def dump_Array o
8   o.collect {|e| do_dump(e) }
9 end
dump_AssignmentExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
110 def dump_AssignmentExpression o
111   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
112 end
dump_AttributeOperation(o) click to toggle source

Produces (name => expr) or (name +> expr)

    # File lib/puppet/pops/model/model_tree_dumper.rb
115 def dump_AttributeOperation o
116   [o.attribute_name, o.operator, do_dump(o.value_expr)]
117 end
dump_AttributesOperation(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
119 def dump_AttributesOperation o
120   ['* =>', do_dump(o.expr)]
121 end
dump_BlockExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
200 def dump_BlockExpression o
201   result = ["block", :indent]
202   o.statements.each {|x| result << :break; result << do_dump(x) }
203   result << :dedent << :break
204   result
205 end
dump_CallMethodExpression(o) click to toggle source

def dump_CallNamedFunctionExpression o

result = [o.rval_required ? "call" : "invoke", do_dump(o.functor_expr)]
o.arguments.collect {|a| result << do_dump(a) }
result

end

    # File lib/puppet/pops/model/model_tree_dumper.rb
356 def dump_CallMethodExpression o
357   result = [o.rval_required ? "call-method" : "invoke-method", do_dump(o.functor_expr)]
358   o.arguments.collect {|a| result << do_dump(a) }
359   result << do_dump(o.lambda) if o.lambda
360   result
361 end
dump_CallNamedFunctionExpression(o) click to toggle source

Produces (invoke name args…) when not required to produce an rvalue, and (call name args … ) otherwise.

    # File lib/puppet/pops/model/model_tree_dumper.rb
343 def dump_CallNamedFunctionExpression o
344   result = [o.rval_required ? "call" : "invoke", do_dump(o.functor_expr)]
345   o.arguments.collect {|a| result << do_dump(a) }
346   result << do_dump(o.lambda) if o.lambda
347   result
348 end
dump_CaseExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
363 def dump_CaseExpression o
364   result = ["case", do_dump(o.test), :indent]
365   o.options.each do |s|
366     result << :break << do_dump(s)
367   end
368   result << :dedent
369 end
dump_CaseOption(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
371 def dump_CaseOption o
372   result = ["when"]
373   result << o.values.collect {|x| do_dump(x) }
374   result << ["then", do_dump(o.then_expr) ]
375   result
376 end
dump_CollectExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
58 def dump_CollectExpression o
59   result = ["collect", do_dump(o.type_expr), :indent, :break, do_dump(o.query), :indent]
60   o.operations do |ao|
61     result << :break << do_dump(ao)
62   end
63   result += [:dedent, :dedent ]
64   result
65 end
dump_ComparisonExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
94 def dump_ComparisonExpression o
95   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
96 end
dump_ConcatenatedString(o) click to toggle source

Interpolated strings are shown as (cat seg0 seg1 … segN)

    # File lib/puppet/pops/model/model_tree_dumper.rb
208 def dump_ConcatenatedString o
209   ["cat"] + o.segments.collect {|x| do_dump(x)}
210 end
dump_EppExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
67   def dump_EppExpression o
68     result = ["epp"]
69 #    result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
70     if o.body
71       result << do_dump(o.body)
72     else
73       result << []
74     end
75     result
76   end
dump_ExportedQuery(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
78 def dump_ExportedQuery o
79   result = ["<<| |>>"]
80   result += dump_QueryExpression(o) unless is_nop?(o.expr)
81   result
82 end
dump_Factory(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
36 def dump_Factory o
37   o['locator'] ||= Puppet::Pops::Parser::Locator.locator("<not from source>", nil)
38   do_dump(o.model)
39 end
dump_FunctionDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
263 def dump_FunctionDefinition o
264   result = ['function', o.name]
265   result << ['parameters'] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
266   result << ['return_type', do_dump(o.return_type)] unless o.return_type.nil?
267   if o.body
268     result << do_dump(o.body)
269   else
270     result << []
271   end
272   result
273 end
dump_HeredocExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
212 def dump_HeredocExpression(o)
213   ["@(#{o.syntax})", :indent, :break, do_dump(o.text_expr), :dedent, :break]
214 end
dump_HostClassDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
216 def dump_HostClassDefinition o
217   result = ["class", o.name]
218   result << ["inherits", o.parent_class] if o.parent_class
219   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
220   if o.body
221     result << do_dump(o.body)
222   else
223     result << []
224   end
225   result
226 end
dump_IfExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
320 def dump_IfExpression o
321   result = ["if", do_dump(o.test), :indent, :break,
322     ["then", :indent, do_dump(o.then_expr), :dedent]]
323   result +=
324   [:break,
325     ["else", :indent, do_dump(o.else_expr), :dedent],
326     :dedent] unless is_nop? o.else_expr
327   result
328 end
dump_InExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
106 def dump_InExpression o
107   ["in", do_dump(o.left_expr), do_dump(o.right_expr)]
108 end
dump_KeyedEntry(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
131 def dump_KeyedEntry o
132   [do_dump(o.key), do_dump(o.value)]
133 end
dump_LambdaExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
143 def dump_LambdaExpression o
144   result = ["lambda"]
145   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
146   result << ['return_type', do_dump(o.return_type)] unless o.return_type.nil?
147   if o.body
148     result << do_dump(o.body)
149   else
150     result << []
151   end
152   result
153 end
dump_LiteralDefault(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
155 def dump_LiteralDefault o
156   ":default"
157 end
dump_LiteralFloat(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
11 def dump_LiteralFloat o
12   o.value.to_s
13 end
dump_LiteralHash(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
127 def dump_LiteralHash o
128   ["{}"] + o.entries.collect {|x| do_dump(x)}
129 end
dump_LiteralInteger(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
15 def dump_LiteralInteger o
16   case o.radix
17   when 10
18     o.value.to_s
19   when 8
20     "0%o" % o.value
21   when 16
22     "0x%X" % o.value
23   else
24     "bad radix:" + o.value.to_s
25   end
26 end
dump_LiteralList(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
123 def dump_LiteralList o
124   ["[]"] + o.values.collect {|x| do_dump(x)}
125 end
dump_LiteralRegularExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
163 def dump_LiteralRegularExpression o
164   Puppet::Pops::Types::StringConverter.convert(o.value, '%p')
165 end
dump_LiteralString(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
139 def dump_LiteralString o
140   "'#{o.value}'"
141 end
dump_LiteralUndef(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
159 def dump_LiteralUndef o
160   ":undef"
161 end
dump_LiteralValue(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
28 def dump_LiteralValue o
29   o.value.to_s
30 end
dump_MatchExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
135 def dump_MatchExpression o
136   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
137 end
dump_MatchesExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
54 def dump_MatchesExpression o
55   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
56 end
dump_NamedAccessExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
171 def dump_NamedAccessExpression o
172   [".", do_dump(o.left_expr), do_dump(o.right_expr)]
173 end
dump_NamedDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
251 def dump_NamedDefinition o
252   # the nil must be replaced with a string
253   result = [nil, o.name]
254   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
255   if o.body
256     result << do_dump(o.body)
257   else
258     result << []
259   end
260   result
261 end
dump_NilClass(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
175 def dump_NilClass o
176   "()"
177 end
dump_NodeDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
239 def dump_NodeDefinition o
240   result = ["node"]
241   result << ["matches"] + o.host_matches.collect {|m| do_dump(m) }
242   result << ["parent", do_dump(o.parent)] if o.parent
243   if o.body
244     result << do_dump(o.body)
245   else
246     result << []
247   end
248   result
249 end
dump_Nop(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
167 def dump_Nop o
168   ":nop"
169 end
dump_NotExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
179 def dump_NotExpression o
180   ['!', dump(o.expr)]
181 end
dump_Object(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
439 def dump_Object o
440   [o.class.to_s, o.to_s]
441 end
dump_OrExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
102 def dump_OrExpression o
103   ["||", do_dump(o.left_expr), do_dump(o.right_expr)]
104 end
dump_Parameter(o) click to toggle source

Produces parameters as name, or (= name value)

    # File lib/puppet/pops/model/model_tree_dumper.rb
296 def dump_Parameter o
297   name_prefix = o.captures_rest ? '*' : ''
298   name_part = "#{name_prefix}#{o.name}"
299   if o.value && o.type_expr
300     ["=t", do_dump(o.type_expr), name_part, do_dump(o.value)]
301   elsif o.value
302     ["=", name_part, do_dump(o.value)]
303   elsif o.type_expr
304     ["t", do_dump(o.type_expr), name_part]
305   else
306     name_part
307   end
308 end
dump_ParenthesizedExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
310 def dump_ParenthesizedExpression o
311   do_dump(o.expr)
312 end
dump_PlanDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
228 def dump_PlanDefinition o
229   result = ["plan", o.name]
230   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
231   if o.body
232     result << do_dump(o.body)
233   else
234     result << []
235   end
236   result
237 end
dump_Program(o) click to toggle source

Hides that Program exists in the output (only its body is shown), the definitions are just references to contained classes, resource types, and nodes

    # File lib/puppet/pops/model/model_tree_dumper.rb
316 def dump_Program(o)
317   dump(o.body)
318 end
dump_QualifiedReference(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
32 def dump_QualifiedReference o
33   o.cased_value.to_s
34 end
dump_QueryExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
90 def dump_QueryExpression o
91   [do_dump(o.expr)]
92 end
dump_RelationshipExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
378 def dump_RelationshipExpression o
379   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
380 end
dump_RenderExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
386 def dump_RenderExpression o
387   ["render", do_dump(o.expr)]
388 end
dump_RenderStringExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
382 def dump_RenderStringExpression o
383   ["render-s", " '#{o.value}'"]
384 end
dump_ReservedWord(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
291 def dump_ReservedWord o
292   [ 'reserved', o.word ]
293 end
dump_ResourceBody(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
390 def dump_ResourceBody o
391   result = [do_dump(o.title), :indent]
392   o.operations.each do |p|
393     result << :break << do_dump(p)
394   end
395   result << :dedent
396   result
397 end
dump_ResourceDefaultsExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
399 def dump_ResourceDefaultsExpression o
400   form = o.form == 'regular' ? '' : o.form + '-'
401   result = [form+'resource-defaults', do_dump(o.type_ref), :indent]
402   o.operations.each do |p|
403     result << :break << do_dump(p)
404   end
405   result << :dedent
406   result
407 end
dump_ResourceExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
409 def dump_ResourceExpression o
410   form = o.form == 'regular' ? '' : o.form + '-'
411   result = [form+'resource', do_dump(o.type_name), :indent]
412   o.bodies.each do |b|
413     result << :break << do_dump(b)
414   end
415   result << :dedent
416   result
417 end
dump_ResourceOverrideExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
281 def dump_ResourceOverrideExpression o
282   form = o.form == 'regular' ? '' : o.form + '-'
283   result = [form+'override', do_dump(o.resources), :indent]
284   o.operations.each do |p|
285     result << :break << do_dump(p)
286   end
287   result << :dedent
288   result
289 end
dump_ResourceTypeDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
275 def dump_ResourceTypeDefinition o
276   result = dump_NamedDefinition(o)
277   result[0] = 'define'
278   result
279 end
dump_SelectorEntry(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
423 def dump_SelectorEntry o
424   [do_dump(o.matching_expr), "=>", do_dump(o.value_expr)]
425 end
dump_SelectorExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
419 def dump_SelectorExpression o
420   ["?", do_dump(o.left_expr)] + o.selectors.collect {|x| do_dump(x) }
421 end
dump_TextExpression(o) click to toggle source

Interpolation (to string) shown as (str expr)

    # File lib/puppet/pops/model/model_tree_dumper.rb
188 def dump_TextExpression o
189   ["str", do_dump(o.expr)]
190 end
dump_TypeAlias(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
427 def dump_TypeAlias(o)
428   ['type-alias', o.name, do_dump(o.type_expr)]
429 end
dump_TypeDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
435 def dump_TypeDefinition(o)
436   ['type-definition', o.name, o.parent, do_dump(o.body)]
437 end
dump_TypeMapping(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
431 def dump_TypeMapping(o)
432   ['type-mapping', do_dump(o.type_expr), do_dump(o.mapping_expr)]
433 end
dump_UnaryMinusExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
192 def dump_UnaryMinusExpression o
193   ['-', do_dump(o.expr)]
194 end
dump_UnfoldExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
196 def dump_UnfoldExpression o
197   ['unfold', do_dump(o.expr)]
198 end
dump_UnlessExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
330 def dump_UnlessExpression o
331   result = ["unless", do_dump(o.test), :indent, :break,
332     ["then", :indent, do_dump(o.then_expr), :dedent]]
333   result +=
334   [:break,
335     ["else", :indent, do_dump(o.else_expr), :dedent],
336     :dedent] unless is_nop? o.else_expr
337   result
338 end
dump_VariableExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
183 def dump_VariableExpression o
184   "$#{dump(o.expr)}"
185 end
dump_VirtualQuery(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
84 def dump_VirtualQuery o
85   result = ["<| |>"]
86   result += dump_QueryExpression(o) unless is_nop?(o.expr)
87   result
88 end
is_nop?(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
443 def is_nop? o
444   o.nil? || o.is_a?(Puppet::Pops::Model::Nop)
445 end