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