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