Class: Puppet::Pops::Model::ModelTreeDumper
Overview
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
Instance Attribute Summary
Attributes inherited from TreeDumper
#indent_count
Instance Method Summary
collapse
Methods inherited from TreeDumper
#do_dump, #dump, #format, #format_r, #indent, #initialize
Instance Method Details
#dump_AccessExpression(o) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 36
def dump_AccessExpression o
if o.keys.size <= 1
["slice", do_dump(o.left_expr), do_dump(o.keys[0])]
else
["slice", do_dump(o.left_expr), do_dump(o.keys)]
end
end
|
#dump_AndExpression(o) ⇒ Object
77
78
79
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 77
def dump_AndExpression o
["&&", do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_ArithmeticExpression(o) ⇒ Object
31
32
33
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 31
def dump_ArithmeticExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_Array(o) ⇒ Object
6
7
8
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 6
def dump_Array o
o.collect {|e| do_dump(e) }
end
|
#dump_AssignmentExpression(o) ⇒ Object
97
98
99
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 97
def dump_AssignmentExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_AttributeOperation(o) ⇒ Object
Produces (name => expr) or (name +> expr)
102
103
104
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 102
def dump_AttributeOperation o
[o.attribute_name, o.operator, do_dump(o.value_expr)]
end
|
#dump_BlockExpression(o) ⇒ Object
182
183
184
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 182
def dump_BlockExpression o
["block"] + o.statements.collect {|x| do_dump(x) }
end
|
#dump_CallMethodExpression(o) ⇒ Object
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
283
284
285
286
287
288
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 283
def dump_CallMethodExpression o
result = [o.rval_required ? "call-method" : "invoke-method", do_dump(o.functor_expr)]
o.arguments.collect {|a| result << do_dump(a) }
result << do_dump(o.lambda) if o.lambda
result
end
|
#dump_CallNamedFunctionExpression(o) ⇒ Object
Produces (invoke name args…) when not required to produce an rvalue, and (call name args … ) otherwise.
271
272
273
274
275
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 271
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
|
#dump_CaseExpression(o) ⇒ Object
290
291
292
293
294
295
296
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 290
def dump_CaseExpression o
result = ["case", do_dump(o.test), :indent]
o.options.each do |s|
result << :break << do_dump(s)
end
result << :dedent
end
|
#dump_CaseOption(o) ⇒ Object
298
299
300
301
302
303
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 298
def dump_CaseOption o
result = ["when"]
result << o.values.collect {|x| do_dump(x) }
result << ["then", do_dump(o.then_expr) ]
result
end
|
#dump_CollectExpression(o) ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 48
def dump_CollectExpression o
result = ["collect", do_dump(o.type_expr), :indent, :break, do_dump(o.query), :indent]
o.operations do |ao|
result << :break << do_dump(ao)
end
result += [:dedent, :dedent ]
result
end
|
#dump_ComparisonExpression(o) ⇒ Object
73
74
75
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 73
def dump_ComparisonExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_ConcatenatedString(o) ⇒ Object
Interpolated strings are shown as (cat seg0 seg1 … segN)
187
188
189
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 187
def dump_ConcatenatedString o
["cat"] + o.segments.collect {|x| do_dump(x)}
end
|
#dump_ExportedQuery(o) ⇒ Object
57
58
59
60
61
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 57
def dump_ExportedQuery o
result = ["<<| |>>"]
result += dump_QueryExpression(o) unless is_nop?(o.expr)
result
end
|
#dump_Factory(o) ⇒ Object
27
28
29
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 27
def dump_Factory o
do_dump(o.current)
end
|
#dump_HostClassDefinition(o) ⇒ Object
191
192
193
194
195
196
197
198
199
200
201
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 191
def dump_HostClassDefinition o
result = ["class", o.name]
result << ["inherits", o.parent_class] if o.parent_class
result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
if o.body
result << do_dump(o.body)
else
result << []
end
result
end
|
#dump_IfExpression(o) ⇒ Object
248
249
250
251
252
253
254
255
256
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 248
def dump_IfExpression o
result = ["if", do_dump(o.test), :indent, :break,
["then", :indent, do_dump(o.then_expr), :dedent]]
result +=
[:break,
["else", :indent, do_dump(o.else_expr), :dedent],
:dedent] unless is_nop? o.else_expr
result
end
|
#dump_ImportExpression(o) ⇒ Object
89
90
91
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 89
def dump_ImportExpression o
["import"] + o.files.collect {|f| do_dump(f) }
end
|
#dump_InExpression(o) ⇒ Object
85
86
87
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 85
def dump_InExpression o
["in", do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_InstanceReferences(o) ⇒ Object
93
94
95
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 93
def dump_InstanceReferences o
["instances", do_dump(o.type_name)] + o.names.collect {|n| do_dump(n) }
end
|
#dump_KeyedEntry(o) ⇒ Object
114
115
116
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 114
def dump_KeyedEntry o
[do_dump(o.key), do_dump(o.value)]
end
|
#dump_LambdaExpression(o) ⇒ Object
130
131
132
133
134
135
136
137
138
139
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 130
def dump_LambdaExpression o
result = ["lambda"]
result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
if o.body
result << do_dump(o.body)
else
result << []
end
result
end
|
#dump_LiteralDefault(o) ⇒ Object
141
142
143
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 141
def dump_LiteralDefault o
":default"
end
|
#dump_LiteralHash(o) ⇒ Object
110
111
112
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 110
def dump_LiteralHash o
["{}"] + o.entries.collect {|x| do_dump(x)}
end
|
#dump_LiteralList(o) ⇒ Object
106
107
108
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 106
def dump_LiteralList o
["[]"] + o.values.collect {|x| do_dump(x)}
end
|
#dump_LiteralNumber(o) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 10
def dump_LiteralNumber o
case o.radix
when 10
o.value.to_s
when 8
"0%o" % o.value
when 16
"0x%X" % o.value
else
"bad radix:" + o.value.to_s
end
end
|
#dump_LiteralRegularExpression(o) ⇒ Object
149
150
151
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 149
def dump_LiteralRegularExpression o
"/#{o.value.source}/"
end
|
#dump_LiteralString(o) ⇒ Object
122
123
124
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 122
def dump_LiteralString o
"'#{o.value}'"
end
|
#dump_LiteralText(o) ⇒ Object
126
127
128
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 126
def dump_LiteralText o
o.value
end
|
#dump_LiteralUndef(o) ⇒ Object
145
146
147
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 145
def dump_LiteralUndef o
":undef"
end
|
#dump_LiteralValue(o) ⇒ Object
23
24
25
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 23
def dump_LiteralValue o
o.value.to_s
end
|
#dump_MatchesExpression(o) ⇒ Object
44
45
46
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 44
def dump_MatchesExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_MatchExpression(o) ⇒ Object
118
119
120
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 118
def dump_MatchExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_NamedAccessExpression(o) ⇒ Object
157
158
159
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 157
def dump_NamedAccessExpression o
[".", do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_NilClass(o) ⇒ Object
161
162
163
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 161
def dump_NilClass o
"()"
end
|
#dump_NodeDefinition(o) ⇒ Object
203
204
205
206
207
208
209
210
211
212
213
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 203
def dump_NodeDefinition o
result = ["node"]
result << ["matches"] + o.host_matches.collect {|m| do_dump(m) }
result << ["parent", do_dump(o.parent)] if o.parent
if o.body
result << do_dump(o.body)
else
result << []
end
result
end
|
#dump_Nop(o) ⇒ Object
153
154
155
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 153
def dump_Nop o
":nop"
end
|
#dump_NotExpression(o) ⇒ Object
165
166
167
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 165
def dump_NotExpression o
['!', dump(o.expr)]
end
|
#dump_Object(o) ⇒ Object
345
346
347
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 345
def dump_Object o
[o.class.to_s, o.to_s]
end
|
#dump_OrExpression(o) ⇒ Object
81
82
83
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 81
def dump_OrExpression o
["||", do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_Parameter(o) ⇒ Object
Produces parameters as name, or (= name value)
236
237
238
239
240
241
242
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 236
def dump_Parameter o
if o.value
["=", o.name, do_dump(o.value)]
else
o.name
end
end
|
#dump_ParenthesizedExpression(o) ⇒ Object
244
245
246
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 244
def dump_ParenthesizedExpression o
do_dump(o.expr)
end
|
#dump_QueryExpression(o) ⇒ Object
69
70
71
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 69
def dump_QueryExpression o
[do_dump(o.expr)]
end
|
#dump_RelationshipExpression(o) ⇒ Object
305
306
307
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 305
def dump_RelationshipExpression o
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
|
#dump_ResourceBody(o) ⇒ Object
309
310
311
312
313
314
315
316
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 309
def dump_ResourceBody o
result = [do_dump(o.title), :indent]
o.operations.each do |p|
result << :break << do_dump(p)
end
result << :dedent
result
end
|
#dump_ResourceDefaultsExpression(o) ⇒ Object
318
319
320
321
322
323
324
325
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 318
def dump_ResourceDefaultsExpression o
result = ["resource-defaults", do_dump(o.type_ref), :indent]
o.operations.each do |p|
result << :break << do_dump(p)
end
result << :dedent
result
end
|
#dump_ResourceExpression(o) ⇒ Object
327
328
329
330
331
332
333
334
335
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 327
def dump_ResourceExpression o
form = o.form == :regular ? '' : o.form.to_s + "-"
result = [form+"resource", do_dump(o.type_name), :indent]
o.bodies.each do |b|
result << :break << do_dump(b)
end
result << :dedent
result
end
|
#dump_ResourceOverrideExpression(o) ⇒ Object
226
227
228
229
230
231
232
233
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 226
def dump_ResourceOverrideExpression o
result = ["override", do_dump(o.resources), :indent]
o.operations.each do |p|
result << :break << do_dump(p)
end
result << :dedent
result
end
|
#dump_ResourceTypeDefinition(o) ⇒ Object
215
216
217
218
219
220
221
222
223
224
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 215
def dump_ResourceTypeDefinition o
result = ["define", o.name]
result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
if o.body
result << do_dump(o.body)
else
result << []
end
result
end
|
#dump_SelectorEntry(o) ⇒ Object
341
342
343
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 341
def dump_SelectorEntry o
[do_dump(o.matching_expr), "=>", do_dump(o.value_expr)]
end
|
#dump_SelectorExpression(o) ⇒ Object
337
338
339
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 337
def dump_SelectorExpression o
["?", do_dump(o.left_expr)] + o.selectors.collect {|x| do_dump(x) }
end
|
#dump_TextExpression(o) ⇒ Object
Interpolation (to string) shown as (str expr)
174
175
176
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 174
def dump_TextExpression o
["str", do_dump(o.expr)]
end
|
#dump_UnaryMinusExpression(o) ⇒ Object
178
179
180
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 178
def dump_UnaryMinusExpression o
['-', do_dump(o.expr)]
end
|
#dump_UnlessExpression(o) ⇒ Object
258
259
260
261
262
263
264
265
266
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 258
def dump_UnlessExpression o
result = ["unless", do_dump(o.test), :indent, :break,
["then", :indent, do_dump(o.then_expr), :dedent]]
result +=
[:break,
["else", :indent, do_dump(o.else_expr), :dedent],
:dedent] unless is_nop? o.else_expr
result
end
|
#dump_VariableExpression(o) ⇒ Object
169
170
171
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 169
def dump_VariableExpression o
"$#{dump(o.expr)}"
end
|
#dump_VirtualQuery(o) ⇒ Object
63
64
65
66
67
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 63
def dump_VirtualQuery o
result = ["<| |>"]
result += dump_QueryExpression(o) unless is_nop?(o.expr)
result
end
|
#is_nop?(o) ⇒ Boolean
349
350
351
|
# File 'lib/puppet/pops/model/model_tree_dumper.rb', line 349
def is_nop? o
o.nil? || o.is_a?(Puppet::Pops::Model::Nop)
end
|