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

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

    # File lib/puppet/pops/model/model_tree_dumper.rb
114 def dump_AttributeOperation o
115   [o.attribute_name, o.operator, do_dump(o.value_expr)]
116 end
dump_AttributesOperation(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
118 def dump_AttributesOperation o
119   ['* =>', do_dump(o.expr)]
120 end
dump_BlockExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
199 def dump_BlockExpression o
200   result = ["block", :indent]
201   o.statements.each {|x| result << :break; result << do_dump(x) }
202   result << :dedent << :break
203   result
204 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
355 def dump_CallMethodExpression o
356   result = [o.rval_required ? "call-method" : "invoke-method", do_dump(o.functor_expr)]
357   o.arguments.collect {|a| result << do_dump(a) }
358   result << do_dump(o.lambda) if o.lambda
359   result
360 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
342 def dump_CallNamedFunctionExpression o
343   result = [o.rval_required ? "call" : "invoke", do_dump(o.functor_expr)]
344   o.arguments.collect {|a| result << do_dump(a) }
345   result << do_dump(o.lambda) if o.lambda
346   result
347 end
dump_CaseExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
362 def dump_CaseExpression o
363   result = ["case", do_dump(o.test), :indent]
364   o.options.each do |s|
365     result << :break << do_dump(s)
366   end
367   result << :dedent
368 end
dump_CaseOption(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
370 def dump_CaseOption o
371   result = ["when"]
372   result << o.values.collect {|x| do_dump(x) }
373   result << ["then", do_dump(o.then_expr) ]
374   result
375 end
dump_CollectExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
57 def dump_CollectExpression o
58   result = ["collect", do_dump(o.type_expr), :indent, :break, do_dump(o.query), :indent]
59   o.operations do |ao|
60     result << :break << do_dump(ao)
61   end
62   result += [:dedent, :dedent ]
63   result
64 end
dump_ComparisonExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
93 def dump_ComparisonExpression o
94   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
95 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
207 def dump_ConcatenatedString o
208   ["cat"] + o.segments.collect {|x| do_dump(x)}
209 end
dump_EppExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
66   def dump_EppExpression o
67     result = ["epp"]
68 #    result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
69     if o.body
70       result << do_dump(o.body)
71     else
72       result << []
73     end
74     result
75   end
dump_ExportedQuery(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
77 def dump_ExportedQuery o
78   result = ["<<| |>>"]
79   result += dump_QueryExpression(o) unless is_nop?(o.expr)
80   result
81 end
dump_Factory(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
35 def dump_Factory o
36   o['locator'] ||= Puppet::Pops::Parser::Locator.locator("<not from source>", nil)
37   do_dump(o.model)
38 end
dump_FunctionDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
262 def dump_FunctionDefinition o
263   result = ['function', o.name]
264   result << ['parameters'] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
265   result << ['return_type', do_dump(o.return_type)] unless o.return_type.nil?
266   if o.body
267     result << do_dump(o.body)
268   else
269     result << []
270   end
271   result
272 end
dump_HeredocExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
211 def dump_HeredocExpression(o)
212   ["@(#{o.syntax})", :indent, :break, do_dump(o.text_expr), :dedent, :break]
213 end
dump_HostClassDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
215 def dump_HostClassDefinition o
216   result = ["class", o.name]
217   result << ["inherits", o.parent_class] if o.parent_class
218   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
219   if o.body
220     result << do_dump(o.body)
221   else
222     result << []
223   end
224   result
225 end
dump_IfExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
319 def dump_IfExpression o
320   result = ["if", do_dump(o.test), :indent, :break,
321     ["then", :indent, do_dump(o.then_expr), :dedent]]
322   result +=
323   [:break,
324     ["else", :indent, do_dump(o.else_expr), :dedent],
325     :dedent] unless is_nop? o.else_expr
326   result
327 end
dump_InExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
105 def dump_InExpression o
106   ["in", do_dump(o.left_expr), do_dump(o.right_expr)]
107 end
dump_KeyedEntry(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
130 def dump_KeyedEntry o
131   [do_dump(o.key), do_dump(o.value)]
132 end
dump_LambdaExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
142 def dump_LambdaExpression o
143   result = ["lambda"]
144   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
145   result << ['return_type', do_dump(o.return_type)] unless o.return_type.nil?
146   if o.body
147     result << do_dump(o.body)
148   else
149     result << []
150   end
151   result
152 end
dump_LiteralDefault(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
154 def dump_LiteralDefault o
155   ":default"
156 end
dump_LiteralFloat(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
10 def dump_LiteralFloat o
11   o.value.to_s
12 end
dump_LiteralHash(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
126 def dump_LiteralHash o
127   ["{}"] + o.entries.collect {|x| do_dump(x)}
128 end
dump_LiteralInteger(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
14 def dump_LiteralInteger o
15   case o.radix
16   when 10
17     o.value.to_s
18   when 8
19     "0%o" % o.value
20   when 16
21     "0x%X" % o.value
22   else
23     "bad radix:" + o.value.to_s
24   end
25 end
dump_LiteralList(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
122 def dump_LiteralList o
123   ["[]"] + o.values.collect {|x| do_dump(x)}
124 end
dump_LiteralRegularExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
162 def dump_LiteralRegularExpression o
163   Puppet::Pops::Types::StringConverter.convert(o.value, '%p')
164 end
dump_LiteralString(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
138 def dump_LiteralString o
139   "'#{o.value}'"
140 end
dump_LiteralUndef(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
158 def dump_LiteralUndef o
159   ":undef"
160 end
dump_LiteralValue(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
27 def dump_LiteralValue o
28   o.value.to_s
29 end
dump_MatchExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
134 def dump_MatchExpression o
135   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
136 end
dump_MatchesExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
53 def dump_MatchesExpression o
54   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
55 end
dump_NamedAccessExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
170 def dump_NamedAccessExpression o
171   [".", do_dump(o.left_expr), do_dump(o.right_expr)]
172 end
dump_NamedDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
250 def dump_NamedDefinition o
251   # the nil must be replaced with a string
252   result = [nil, o.name]
253   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
254   if o.body
255     result << do_dump(o.body)
256   else
257     result << []
258   end
259   result
260 end
dump_NilClass(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
174 def dump_NilClass o
175   "()"
176 end
dump_NodeDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
238 def dump_NodeDefinition o
239   result = ["node"]
240   result << ["matches"] + o.host_matches.collect {|m| do_dump(m) }
241   result << ["parent", do_dump(o.parent)] if o.parent
242   if o.body
243     result << do_dump(o.body)
244   else
245     result << []
246   end
247   result
248 end
dump_Nop(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
166 def dump_Nop o
167   ":nop"
168 end
dump_NotExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
178 def dump_NotExpression o
179   ['!', dump(o.expr)]
180 end
dump_Object(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
438 def dump_Object o
439   [o.class.to_s, o.to_s]
440 end
dump_OrExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
101 def dump_OrExpression o
102   ["||", do_dump(o.left_expr), do_dump(o.right_expr)]
103 end
dump_Parameter(o) click to toggle source

Produces parameters as name, or (= name value)

    # File lib/puppet/pops/model/model_tree_dumper.rb
295 def dump_Parameter o
296   name_prefix = o.captures_rest ? '*' : ''
297   name_part = "#{name_prefix}#{o.name}"
298   if o.value && o.type_expr
299     ["=t", do_dump(o.type_expr), name_part, do_dump(o.value)]
300   elsif o.value
301     ["=", name_part, do_dump(o.value)]
302   elsif o.type_expr
303     ["t", do_dump(o.type_expr), name_part]
304   else
305     name_part
306   end
307 end
dump_ParenthesizedExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
309 def dump_ParenthesizedExpression o
310   do_dump(o.expr)
311 end
dump_PlanDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
227 def dump_PlanDefinition o
228   result = ["plan", o.name]
229   result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
230   if o.body
231     result << do_dump(o.body)
232   else
233     result << []
234   end
235   result
236 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
315 def dump_Program(o)
316   dump(o.body)
317 end
dump_QualifiedReference(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
31 def dump_QualifiedReference o
32   o.cased_value.to_s
33 end
dump_QueryExpression(o) click to toggle source
   # File lib/puppet/pops/model/model_tree_dumper.rb
89 def dump_QueryExpression o
90   [do_dump(o.expr)]
91 end
dump_RelationshipExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
377 def dump_RelationshipExpression o
378   [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
379 end
dump_RenderExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
385 def dump_RenderExpression o
386   ["render", do_dump(o.expr)]
387 end
dump_RenderStringExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
381 def dump_RenderStringExpression o
382   ["render-s", " '#{o.value}'"]
383 end
dump_ReservedWord(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
290 def dump_ReservedWord o
291   [ 'reserved', o.word ]
292 end
dump_ResourceBody(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
389 def dump_ResourceBody o
390   result = [do_dump(o.title), :indent]
391   o.operations.each do |p|
392     result << :break << do_dump(p)
393   end
394   result << :dedent
395   result
396 end
dump_ResourceDefaultsExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
398 def dump_ResourceDefaultsExpression o
399   form = o.form == 'regular' ? '' : o.form + '-'
400   result = [form+'resource-defaults', do_dump(o.type_ref), :indent]
401   o.operations.each do |p|
402     result << :break << do_dump(p)
403   end
404   result << :dedent
405   result
406 end
dump_ResourceExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
408 def dump_ResourceExpression o
409   form = o.form == 'regular' ? '' : o.form + '-'
410   result = [form+'resource', do_dump(o.type_name), :indent]
411   o.bodies.each do |b|
412     result << :break << do_dump(b)
413   end
414   result << :dedent
415   result
416 end
dump_ResourceOverrideExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
280 def dump_ResourceOverrideExpression o
281   form = o.form == 'regular' ? '' : o.form + '-'
282   result = [form+'override', do_dump(o.resources), :indent]
283   o.operations.each do |p|
284     result << :break << do_dump(p)
285   end
286   result << :dedent
287   result
288 end
dump_ResourceTypeDefinition(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
274 def dump_ResourceTypeDefinition o
275   result = dump_NamedDefinition(o)
276   result[0] = 'define'
277   result
278 end
dump_SelectorEntry(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
422 def dump_SelectorEntry o
423   [do_dump(o.matching_expr), "=>", do_dump(o.value_expr)]
424 end
dump_SelectorExpression(o) click to toggle source
    # File lib/puppet/pops/model/model_tree_dumper.rb
418 def dump_SelectorExpression o
419   ["?", do_dump(o.left_expr)] + o.selectors.collect {|x| do_dump(x) }
420 end
dump_TextExpression(o) click to toggle source

Interpolation (to string) shown as (str expr)

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