Sha256: b1ffe7c1693db48b2915d625b4dbfa07740c4b29cd2116ed428d757e1d553af1
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
class Puppet::Parser::AST # The parent class of all AST objects that contain other AST objects. # Everything but the really simple objects descend from this. It is # important to note that Branch objects contain other AST objects only -- # if you want to contain values, use a descendent of the AST::Leaf class. class Branch < AST include Enumerable attr_accessor :pin, :children # Yield each contained AST node in turn. Used mostly by 'evaluate'. # This definition means that I don't have to override 'evaluate' # every time, but each child of Branch will likely need to override # this method. def each @children.each { |child| yield child } end # Initialize our object. Largely relies on the method from the base # class, but also does some verification. def initialize(arghash) super(arghash) # Create the hash, if it was not set at initialization time. unless defined? @children @children = [] end # Verify that we only got valid AST nodes. @children.each { |child| unless child.is_a?(AST) raise Puppet::DevError, "child %s is a %s instead of ast" % [child, child.class] end } end # Pretty-print the parse tree. def tree(indent = 0) return ((@@indline * indent) + self.typewrap(self.pin)) + "\n" + self.collect { |child| child.tree(indent + 1) }.join("\n") end end end # $Id: branch.rb 1484 2006-08-22 23:34:40Z luke $
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
puppet-0.23.0 | lib/puppet/parser/ast/branch.rb |
puppet-0.22.4 | lib/puppet/parser/ast/branch.rb |
puppet-0.23.2 | lib/puppet/parser/ast/branch.rb |
puppet-0.23.1 | lib/puppet/parser/ast/branch.rb |