summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/parser/ast.rb1
-rw-r--r--lib/puppet/parser/ast/astarray.rb34
-rw-r--r--lib/puppet/parser/ast/caseopt.rb36
-rw-r--r--lib/puppet/parser/ast/resource.rb93
-rw-r--r--lib/puppet/parser/ast/resource_instance.rb9
-rw-r--r--lib/puppet/parser/ast/resource_override.rb5
-rw-r--r--lib/puppet/parser/grammar.ra131
-rw-r--r--lib/puppet/parser/parser.rb2498
-rw-r--r--lib/puppet/parser/parser_support.rb15
-rw-r--r--lib/puppet/util/zaml.rb23
-rwxr-xr-xspec/unit/parser/ast/astarray_spec.rb49
-rwxr-xr-xspec/unit/parser/ast/resource_spec.rb23
-rwxr-xr-xspec/unit/parser/parser_spec.rb5
-rw-r--r--spec/unit/util/zaml_spec.rb25
-rwxr-xr-xtest/language/parser.rb6
-rw-r--r--test/lib/puppettest/parsertesting.rb13
-rwxr-xr-xtest/ral/providers/cron/crontab.rb5
17 files changed, 1370 insertions, 1601 deletions
diff --git a/lib/puppet/parser/ast.rb b/lib/puppet/parser/ast.rb
index 0369a6d28..03891160b 100644
--- a/lib/puppet/parser/ast.rb
+++ b/lib/puppet/parser/ast.rb
@@ -129,6 +129,7 @@ require 'puppet/parser/ast/not'
require 'puppet/parser/ast/relationship'
require 'puppet/parser/ast/resource'
require 'puppet/parser/ast/resource_defaults'
+require 'puppet/parser/ast/resource_instance'
require 'puppet/parser/ast/resource_override'
require 'puppet/parser/ast/resource_reference'
require 'puppet/parser/ast/resourceparam'
diff --git a/lib/puppet/parser/ast/astarray.rb b/lib/puppet/parser/ast/astarray.rb
index e856570f8..7283a1f6c 100644
--- a/lib/puppet/parser/ast/astarray.rb
+++ b/lib/puppet/parser/ast/astarray.rb
@@ -16,30 +16,20 @@ class Puppet::Parser::AST
# Evaluate our children.
def evaluate(scope)
- # Make a new array, so we don't have to deal with the details of
- # flattening and such
- items = []
-
- # First clean out any AST::ASTArrays
- @children.each { |child|
- if child.instance_of?(AST::ASTArray)
- child.each do |ac|
- items << ac
- end
- else
- items << child
- end
- }
-
- rets = items.flatten.collect { |child|
+ result = []
+ @children.each do |child|
# Skip things that respond to :instantiate (classes, nodes,
# and definitions), because they have already been
# instantiated.
if !child.respond_to?(:instantiate)
- child.safeevaluate(scope)
+ item = child.safeevaluate(scope)
+ if !item.nil?
+ # nil values are implicitly removed.
+ result.push(item)
+ end
end
- }
- rets.reject { |o| o.nil? }
+ end
+ result
end
def push(*ary)
@@ -57,10 +47,4 @@ class Puppet::Parser::AST
"[" + @children.collect { |c| c.to_s }.join(', ') + "]"
end
end
-
- # A simple container class, containing the parameters for an object.
- # Used for abstracting the grammar declarations. Basically unnecessary
- # except that I kept finding bugs because I had too many arrays that
- # meant completely different things.
- class ResourceInstance < ASTArray; end
end
diff --git a/lib/puppet/parser/ast/caseopt.rb b/lib/puppet/parser/ast/caseopt.rb
index 4e296e82f..db4c2b024 100644
--- a/lib/puppet/parser/ast/caseopt.rb
+++ b/lib/puppet/parser/ast/caseopt.rb
@@ -18,16 +18,12 @@ class Puppet::Parser::AST
# Cache the @default value.
return @default if defined?(@default)
- if @value.is_a?(AST::ASTArray)
- @value.each { |subval|
- if subval.is_a?(AST::Default)
- @default = true
- break
- end
- }
- else
- @default = true if @value.is_a?(AST::Default)
- end
+ @value.each { |subval|
+ if subval.is_a?(AST::Default)
+ @default = true
+ break
+ end
+ }
@default ||= false
@@ -36,23 +32,15 @@ class Puppet::Parser::AST
# You can specify a list of values; return each in turn.
def eachvalue(scope)
- if @value.is_a?(AST::ASTArray)
- @value.each { |subval|
- yield subval.safeevaluate(scope)
- }
- else
- yield @value.safeevaluate(scope)
- end
+ @value.each { |subval|
+ yield subval.safeevaluate(scope)
+ }
end
def eachopt
- if @value.is_a?(AST::ASTArray)
- @value.each { |subval|
- yield subval
- }
- else
- yield @value
- end
+ @value.each { |subval|
+ yield subval
+ }
end
# Evaluate the actual statements; this only gets called if
diff --git a/lib/puppet/parser/ast/resource.rb b/lib/puppet/parser/ast/resource.rb
index 0c58538d5..23207149f 100644
--- a/lib/puppet/parser/ast/resource.rb
+++ b/lib/puppet/parser/ast/resource.rb
@@ -3,26 +3,15 @@ require 'puppet/parser/ast/resource_reference'
# Any normal puppet resource declaration. Can point to a definition or a
# builtin type.
class Puppet::Parser::AST
-class Resource < AST::ResourceReference
+class Resource < AST::Branch
associates_doc
- attr_accessor :title, :type, :exported, :virtual
- attr_reader :parameters
+ attr_accessor :type, :instances, :exported, :virtual
# Does not actually return an object; instead sets an object
# in the current scope.
def evaluate(scope)
- # Evaluate all of the specified params.
- paramobjects = parameters.collect { |param|
- param.safeevaluate(scope)
- }
-
- resource_titles = @title.safeevaluate(scope)
-
- # it's easier to always use an array, even for only one name
- resource_titles = [resource_titles] unless resource_titles.is_a?(Array)
-
# We want virtual to be true if exported is true. We can't
# just set :virtual => self.virtual in the initialization,
# because sometimes the :virtual attribute is set *after*
@@ -30,49 +19,49 @@ class Resource < AST::ResourceReference
# is true. Argh, this was a very tough one to track down.
virt = self.virtual || self.exported
- # This is where our implicit iteration takes place; if someone
- # passed an array as the name, then we act just like the called us
- # many times.
- fully_qualified_type, resource_titles = scope.resolve_type_and_titles(type, resource_titles)
+ # First level of implicit iteration: build a resource for each
+ # instance. This handles things like:
+ # file { '/foo': owner => blah; '/bar': owner => blah }
+ @instances.collect { |instance|
- resource_titles.flatten.collect { |resource_title|
- exceptwrap :type => Puppet::ParseError do
- resource = Puppet::Parser::Resource.new(
- fully_qualified_type, resource_title,
- :parameters => paramobjects,
- :file => self.file,
- :line => self.line,
- :exported => self.exported,
- :virtual => virt,
- :source => scope.source,
- :scope => scope,
-
- :strict => true
- )
+ # Evaluate all of the specified params.
+ paramobjects = instance.parameters.collect { |param|
+ param.safeevaluate(scope)
+ }
- # And then store the resource in the compiler.
- # At some point, we need to switch all of this to return
- # resources instead of storing them like this.
- scope.compiler.add_resource(scope, resource)
- resource
- end
- }.reject { |resource| resource.nil? }
- end
+ resource_titles = instance.title.safeevaluate(scope)
+
+ # it's easier to always use an array, even for only one name
+ resource_titles = [resource_titles] unless resource_titles.is_a?(Array)
+
+ fully_qualified_type, resource_titles = scope.resolve_type_and_titles(type, resource_titles)
+
+ # Second level of implicit iteration; build a resource for each
+ # title. This handles things like:
+ # file { ['/foo', '/bar']: owner => blah }
+ resource_titles.flatten.collect { |resource_title|
+ exceptwrap :type => Puppet::ParseError do
+ resource = Puppet::Parser::Resource.new(
+ fully_qualified_type, resource_title,
+ :parameters => paramobjects,
+ :file => self.file,
+ :line => self.line,
+ :exported => self.exported,
+ :virtual => virt,
+ :source => scope.source,
+ :scope => scope,
- # Set the parameters for our object.
- def parameters=(params)
- if params.is_a?(AST::ASTArray)
- @parameters = params
- else
+ :strict => true
+ )
- @parameters = AST::ASTArray.new(
-
- :line => params.line,
- :file => params.file,
-
- :children => [params]
- )
- end
+ # And then store the resource in the compiler.
+ # At some point, we need to switch all of this to return
+ # resources instead of storing them like this.
+ scope.compiler.add_resource(scope, resource)
+ resource
+ end
+ }
+ }.flatten.reject { |resource| resource.nil? }
end
end
end
diff --git a/lib/puppet/parser/ast/resource_instance.rb b/lib/puppet/parser/ast/resource_instance.rb
new file mode 100644
index 000000000..ebfb17bf1
--- /dev/null
+++ b/lib/puppet/parser/ast/resource_instance.rb
@@ -0,0 +1,9 @@
+require 'puppet/parser/ast/branch'
+
+class Puppet::Parser::AST
+ class ResourceInstance < Branch
+ # A simple container for a parameter for an object. Consists of a
+ # title and a set of parameters.
+ attr_accessor :title, :parameters
+ end
+end
diff --git a/lib/puppet/parser/ast/resource_override.rb b/lib/puppet/parser/ast/resource_override.rb
index e0be889ff..d638202ab 100644
--- a/lib/puppet/parser/ast/resource_override.rb
+++ b/lib/puppet/parser/ast/resource_override.rb
@@ -3,12 +3,11 @@ require 'puppet/parser/ast/resource'
class Puppet::Parser::AST
# Set a parameter on a resource specification created somewhere else in the
# configuration. The object is responsible for verifying that this is allowed.
- class ResourceOverride < Resource
+ class ResourceOverride < AST::Branch
associates_doc
- attr_accessor :object
- attr_reader :parameters
+ attr_accessor :object, :parameters
# Iterate across all of our children.
def each
diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra
index 3d77d2db8..ecb27f363 100644
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@ -32,10 +32,12 @@ program: statements_and_declarations
| nil
statements_and_declarations: statement_or_declaration {
- result = ast AST::ASTArray, :children => [val[0]]
+ result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : [])
}
| statements_and_declarations statement_or_declaration {
- val[0].push(val[1])
+ if val[1]
+ val[0].push(val[1])
+ end
result = val[0]
}
@@ -79,19 +81,17 @@ relationship_side: resource | resourceref | collection
edge: IN_EDGE | OUT_EDGE | IN_EDGE_SUB | OUT_EDGE_SUB
fstatement: NAME LPAREN funcvalues RPAREN {
- args = aryfy(val[2])
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :statement
}
| NAME LPAREN funcvalues COMMA RPAREN {
- args = aryfy(val[2])
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :statement
} | NAME LPAREN RPAREN {
result = ast AST::Function,
@@ -101,29 +101,22 @@ fstatement: NAME LPAREN funcvalues RPAREN {
:ftype => :statement
}
| NAME funcvalues {
- args = aryfy(val[1])
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[1],
:ftype => :statement
}
-funcvalues: namestring
- | resourceref
+funcvalues: namestring { result = aryfy(val[0]) }
+ | resourceref { result = aryfy(val[0]) }
| funcvalues COMMA namestring {
- result = aryfy(val[0], val[2])
- result.line = @lexer.line
- result.file = @lexer.file
+ val[0].push(val[2])
+ result = val[0]
}
| funcvalues COMMA resourceref {
- unless val[0].is_a?(AST::ASTArray)
- val[0] = aryfy(val[0])
- end
-
- val[0].push(val[2])
-
- result = val[0]
+ val[0].push(val[2])
+ result = val[0]
}
# This is *almost* an rvalue, but I couldn't get a full
@@ -142,23 +135,7 @@ namestring: name
resource: classname LBRACE resourceinstances endsemi RBRACE {
@lexer.commentpop
- array = val[2]
- array = [array] if array.instance_of?(AST::ResourceInstance)
- result = ast AST::ASTArray
-
- # this iterates across each specified resourceinstance
- array.each { |instance|
- raise Puppet::Dev, "Got something that isn't an instance" unless instance.instance_of?(AST::ResourceInstance)
- # now, i need to somehow differentiate between those things with
- # arrays in their names, and normal things
-
- result.push ast(
- AST::Resource,
- :type => val[0],
- :title => instance[0],
-
- :parameters => instance[1])
- }
+ result = ast(AST::Resource, :type => val[0], :instances => val[2])
} | classname LBRACE params endcomma RBRACE {
# This is a deprecated syntax.
error "All resource specifications require names"
@@ -187,14 +164,8 @@ virtualresource: at resource {
method = type.to_s + "="
- # Just mark our resources as exported and pass them through.
- if val[1].instance_of?(AST::ASTArray)
- val[1].each do |obj|
- obj.send(method, true)
- end
- else
- val[1].send(method, true)
- end
+ # Just mark our resource as exported and pass it through.
+ val[1].send(method, true)
result = val[1]
}
@@ -293,17 +264,13 @@ colllval: variable
| name
resourceinst: resourcename COLON params endcomma {
- result = ast AST::ResourceInstance, :children => [val[0],val[2]]
+ result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2]
}
-resourceinstances: resourceinst
+resourceinstances: resourceinst { result = aryfy(val[0]) }
| resourceinstances SEMIC resourceinst {
- if val[0].instance_of?(AST::ResourceInstance)
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- else
val[0].push val[2]
result = val[0]
- end
}
endsemi: # nothing
@@ -348,14 +315,10 @@ params: # nothing
{
result = ast AST::ASTArray
}
- | param { result = val[0] }
+ | param { result = aryfy(val[0]) }
| params COMMA param {
- if val[0].instance_of?(AST::ASTArray)
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
}
param: NAME FARROW rvalue {
@@ -374,24 +337,14 @@ anyparams: # nothing
{
result = ast AST::ASTArray
}
- | anyparam { result = val[0] }
+ | anyparam { result = aryfy(val[0]) }
| anyparams COMMA anyparam {
- if val[0].instance_of?(AST::ASTArray)
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
}
-rvalues: rvalue
- | rvalues comma rvalue {
- if val[0].instance_of?(AST::ASTArray)
- result = val[0].push(val[2])
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
-}
+rvalues: rvalue { result = aryfy(val[0]) }
+ | rvalues comma rvalue { result = val[0].push(val[2]) }
simplervalue: quotedtext
| name
@@ -415,10 +368,9 @@ rvalue: quotedtext
# We currently require arguments in these functions.
funcrvalue: NAME LPAREN funcvalues RPAREN {
- args = aryfy(val[2])
result = ast AST::Function,
:name => val[0][:value], :line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :rvalue
} | NAME LPAREN RPAREN {
result = ast AST::Function,
@@ -562,19 +514,13 @@ expression: rvalue
casestatement: CASE rvalue LBRACE caseopts RBRACE {
@lexer.commentpop
- options = val[3]
- options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
- result = ast AST::CaseStatement, :test => val[1], :options => options
+ result = ast AST::CaseStatement, :test => val[1], :options => val[3]
}
-caseopts: caseopt
+caseopts: caseopt { result = aryfy(val[0]) }
| caseopts caseopt {
- if val[0].instance_of?(AST::ASTArray)
val[0].push val[1]
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0], val[1]]
- end
}
caseopt: casevalues COLON LBRACE statements RBRACE {
@@ -591,14 +537,10 @@ caseopt: casevalues COLON LBRACE statements RBRACE {
)
}
-casevalues: selectlhand
+casevalues: selectlhand { result = aryfy(val[0]) }
| casevalues COMMA selectlhand {
- if val[0].instance_of?(AST::ASTArray)
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
}
selector: selectlhand QMARK svalues {
@@ -647,7 +589,7 @@ import: IMPORT strings {
import(file)
end
- result = AST::ASTArray.new(:children => [])
+ result = nil
}
# Disable definition inheritance for now. 8/27/06, luke
@@ -772,22 +714,9 @@ variable: VARIABLE {
result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
}
-array: LBRACK rvalues RBRACK {
- if val[1].instance_of?(AST::ASTArray)
- result = val[1]
- else
- result = ast AST::ASTArray, :children => [val[1]]
- end
-}
- | LBRACK rvalues COMMA RBRACK {
- if val[1].instance_of?(AST::ASTArray)
- result = val[1]
- else
- result = ast AST::ASTArray, :children => [val[1]]
- end
-} | LBRACK RBRACK {
- result = ast AST::ASTArray
-}
+array: LBRACK rvalues RBRACK { result = val[1] }
+ | LBRACK rvalues COMMA RBRACK { result = val[1] }
+ | LBRACK RBRACK { result = ast AST::ASTArray }
comma: FARROW
| COMMA
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
index 5b24d8434..60b272e76 100644
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@ -1,10 +1,11 @@
#
# DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.4.6
-# from Racc grammer file "".
+# This file is automatically generated by racc 1.4.5
+# from racc grammer file "grammar.ra".
#
-require 'racc/parser.rb'
+require 'racc/parser'
+
require 'puppet'
require 'puppet/util/loadedfile'
@@ -17,11 +18,14 @@ module Puppet
class AlreadyImportedError < ImportError; end
end
+
module Puppet
+
module Parser
+
class Parser < Racc::Parser
-module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 859)
+module_eval <<'..end grammar.ra modeval..id6362f948d9', 'grammar.ra', 788
# It got too annoying having code in a file that needs to be compiled.
require 'puppet/parser/parser_support'
@@ -32,8 +36,250 @@ require 'puppet/parser/parser_support'
# End:
# $Id$
-...end grammar.ra/module_eval...
-##### State transition tables begin ###
+
+..end grammar.ra modeval..id6362f948d9
+
+##### racc 1.4.5 generates ###
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 1, 70, :_reduce_none,
+ 1, 70, :_reduce_none,
+ 1, 71, :_reduce_3,
+ 2, 71, :_reduce_4,
+ 1, 74, :_reduce_5,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 1, 73, :_reduce_none,
+ 3, 88, :_reduce_20,
+ 3, 88, :_reduce_21,
+ 1, 89, :_reduce_none,
+ 1, 89, :_reduce_none,
+ 1, 89, :_reduce_none,
+ 1, 90, :_reduce_none,
+ 1, 90, :_reduce_none,
+ 1, 90, :_reduce_none,
+ 1, 90, :_reduce_none,
+ 4, 82, :_reduce_29,
+ 5, 82, :_reduce_30,
+ 3, 82, :_reduce_31,
+ 2, 82, :_reduce_32,
+ 1, 92, :_reduce_33,
+ 1, 92, :_reduce_34,
+ 3, 92, :_reduce_35,
+ 3, 92, :_reduce_36,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_none,
+ 1, 93, :_reduce_45,
+ 5, 75, :_reduce_46,
+ 5, 75, :_reduce_47,
+ 5, 75, :_reduce_48,
+ 5, 86, :_reduce_49,
+ 2, 76, :_reduce_50,
+ 1, 109, :_reduce_51,
+ 2, 109, :_reduce_52,
+ 6, 77, :_reduce_53,
+ 2, 77, :_reduce_54,
+ 3, 110, :_reduce_55,
+ 3, 110, :_reduce_56,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 3, 111, :_reduce_59,
+ 1, 112, :_reduce_none,
+ 3, 112, :_reduce_61,
+ 1, 113, :_reduce_62,
+ 1, 113, :_reduce_63,
+ 3, 114, :_reduce_64,
+ 3, 114, :_reduce_65,
+ 1, 115, :_reduce_none,
+ 1, 115, :_reduce_none,
+ 4, 117, :_reduce_68,
+ 1, 103, :_reduce_69,
+ 3, 103, :_reduce_70,
+ 0, 104, :_reduce_none,
+ 1, 104, :_reduce_none,
+ 1, 119, :_reduce_73,
+ 1, 94, :_reduce_74,
+ 1, 96, :_reduce_75,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 1, 118, :_reduce_none,
+ 3, 78, :_reduce_83,
+ 3, 78, :_reduce_84,
+ 3, 87, :_reduce_85,
+ 0, 105, :_reduce_86,
+ 1, 105, :_reduce_87,
+ 3, 105, :_reduce_88,
+ 3, 123, :_reduce_89,
+ 3, 125, :_reduce_90,
+ 1, 126, :_reduce_none,
+ 1, 126, :_reduce_none,
+ 0, 108, :_reduce_93,
+ 1, 108, :_reduce_94,
+ 3, 108, :_reduce_95,
+ 1, 127, :_reduce_96,
+ 3, 127, :_reduce_97,
+ 1, 116, :_reduce_none,
+ 1, 116, :_reduce_none,
+ 1, 116, :_reduce_none,
+ 1, 116, :_reduce_none,
+ 1, 116, :_reduce_none,
+ 1, 116, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 4, 98, :_reduce_116,
+ 3, 98, :_reduce_117,
+ 1, 100, :_reduce_118,
+ 2, 100, :_reduce_119,
+ 2, 130, :_reduce_120,
+ 1, 131, :_reduce_121,
+ 2, 131, :_reduce_122,
+ 1, 97, :_reduce_123,
+ 4, 91, :_reduce_124,
+ 4, 91, :_reduce_125,
+ 2, 80, :_reduce_126,
+ 5, 132, :_reduce_127,
+ 4, 132, :_reduce_128,
+ 0, 133, :_reduce_none,
+ 2, 133, :_reduce_130,
+ 4, 133, :_reduce_131,
+ 3, 133, :_reduce_132,
+ 1, 121, :_reduce_none,
+ 3, 121, :_reduce_134,
+ 3, 121, :_reduce_135,
+ 3, 121, :_reduce_136,
+ 3, 121, :_reduce_137,
+ 3, 121, :_reduce_138,
+ 3, 121, :_reduce_139,
+ 3, 121, :_reduce_140,
+ 3, 121, :_reduce_141,
+ 3, 121, :_reduce_142,
+ 2, 121, :_reduce_143,
+ 3, 121, :_reduce_144,
+ 3, 121, :_reduce_145,
+ 3, 121, :_reduce_146,
+ 3, 121, :_reduce_147,
+ 3, 121, :_reduce_148,
+ 3, 121, :_reduce_149,
+ 2, 121, :_reduce_150,
+ 3, 121, :_reduce_151,
+ 3, 121, :_reduce_152,
+ 3, 121, :_reduce_153,
+ 5, 79, :_reduce_154,
+ 1, 135, :_reduce_155,
+ 2, 135, :_reduce_156,
+ 5, 136, :_reduce_157,
+ 4, 136, :_reduce_158,
+ 1, 137, :_reduce_159,
+ 3, 137, :_reduce_160,
+ 3, 99, :_reduce_161,
+ 1, 139, :_reduce_none,
+ 4, 139, :_reduce_163,
+ 1, 141, :_reduce_none,
+ 3, 141, :_reduce_165,
+ 3, 140, :_reduce_166,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_none,
+ 1, 138, :_reduce_174,
+ 1, 138, :_reduce_none,
+ 1, 142, :_reduce_176,
+ 1, 143, :_reduce_none,
+ 3, 143, :_reduce_178,
+ 2, 81, :_reduce_179,
+ 6, 83, :_reduce_180,
+ 5, 83, :_reduce_181,
+ 7, 84, :_reduce_182,
+ 6, 84, :_reduce_183,
+ 6, 85, :_reduce_184,
+ 5, 85, :_reduce_185,
+ 1, 107, :_reduce_186,
+ 1, 102, :_reduce_187,
+ 1, 102, :_reduce_188,
+ 1, 102, :_reduce_189,
+ 1, 146, :_reduce_190,
+ 3, 146, :_reduce_191,
+ 1, 148, :_reduce_192,
+ 1, 149, :_reduce_193,
+ 1, 149, :_reduce_194,
+ 1, 149, :_reduce_195,
+ 1, 149, :_reduce_none,
+ 0, 72, :_reduce_197,
+ 0, 150, :_reduce_198,
+ 1, 144, :_reduce_none,
+ 3, 144, :_reduce_200,
+ 3, 144, :_reduce_201,
+ 1, 151, :_reduce_none,
+ 3, 151, :_reduce_203,
+ 3, 152, :_reduce_204,
+ 1, 152, :_reduce_205,
+ 3, 152, :_reduce_206,
+ 1, 152, :_reduce_207,
+ 1, 147, :_reduce_none,
+ 2, 147, :_reduce_209,
+ 1, 145, :_reduce_none,
+ 2, 145, :_reduce_211,
+ 1, 153, :_reduce_none,
+ 1, 153, :_reduce_none,
+ 1, 95, :_reduce_214,
+ 3, 120, :_reduce_215,
+ 4, 120, :_reduce_216,
+ 2, 120, :_reduce_217,
+ 1, 128, :_reduce_none,
+ 1, 128, :_reduce_none,
+ 0, 106, :_reduce_none,
+ 1, 106, :_reduce_221,
+ 1, 134, :_reduce_222,
+ 3, 129, :_reduce_223,
+ 4, 129, :_reduce_224,
+ 2, 129, :_reduce_225,
+ 1, 154, :_reduce_none,
+ 3, 154, :_reduce_227,
+ 3, 155, :_reduce_228,
+ 1, 156, :_reduce_229,
+ 1, 156, :_reduce_230,
+ 4, 122, :_reduce_231,
+ 1, 101, :_reduce_none,
+ 4, 101, :_reduce_233 ]
+
+racc_reduce_n = 234
+
+racc_shift_n = 385
racc_action_table = [
242, 243, 55, 231, 356, 112, 157, 113, 78, 298,
@@ -631,754 +877,485 @@ racc_goto_default = [
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
58, nil, nil, nil, nil, nil, nil, 197 ]
-racc_reduce_table = [
- 0, 0, :racc_error,
- 1, 70, :_reduce_none,
- 1, 70, :_reduce_none,
- 1, 71, :_reduce_3,
- 2, 71, :_reduce_4,
- 1, 74, :_reduce_5,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 1, 73, :_reduce_none,
- 3, 88, :_reduce_20,
- 3, 88, :_reduce_21,
- 1, 89, :_reduce_none,
- 1, 89, :_reduce_none,
- 1, 89, :_reduce_none,
- 1, 90, :_reduce_none,
- 1, 90, :_reduce_none,
- 1, 90, :_reduce_none,
- 1, 90, :_reduce_none,
- 4, 82, :_reduce_29,
- 5, 82, :_reduce_30,
- 3, 82, :_reduce_31,
- 2, 82, :_reduce_32,
- 1, 92, :_reduce_none,
- 1, 92, :_reduce_none,
- 3, 92, :_reduce_35,
- 3, 92, :_reduce_36,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_none,
- 1, 93, :_reduce_45,
- 5, 75, :_reduce_46,
- 5, 75, :_reduce_47,
- 5, 75, :_reduce_48,
- 5, 86, :_reduce_49,
- 2, 76, :_reduce_50,
- 1, 109, :_reduce_51,
- 2, 109, :_reduce_52,
- 6, 77, :_reduce_53,
- 2, 77, :_reduce_54,
- 3, 110, :_reduce_55,
- 3, 110, :_reduce_56,
- 1, 111, :_reduce_none,
- 1, 111, :_reduce_none,
- 3, 111, :_reduce_59,
- 1, 112, :_reduce_none,
- 3, 112, :_reduce_61,
- 1, 113, :_reduce_62,
- 1, 113, :_reduce_63,
- 3, 114, :_reduce_64,
- 3, 114, :_reduce_65,
- 1, 115, :_reduce_none,
- 1, 115, :_reduce_none,
- 4, 117, :_reduce_68,
- 1, 103, :_reduce_none,
- 3, 103, :_reduce_70,
- 0, 104, :_reduce_none,
- 1, 104, :_reduce_none,
- 1, 119, :_reduce_73,
- 1, 94, :_reduce_74,
- 1, 96, :_reduce_75,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 1, 118, :_reduce_none,
- 3, 78, :_reduce_83,
- 3, 78, :_reduce_84,
- 3, 87, :_reduce_85,
- 0, 105, :_reduce_86,
- 1, 105, :_reduce_87,
- 3, 105, :_reduce_88,
- 3, 123, :_reduce_89,
- 3, 125, :_reduce_90,
- 1, 126, :_reduce_none,
- 1, 126, :_reduce_none,
- 0, 108, :_reduce_93,
- 1, 108, :_reduce_94,
- 3, 108, :_reduce_95,
- 1, 127, :_reduce_none,
- 3, 127, :_reduce_97,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 116, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 1, 124, :_reduce_none,
- 4, 98, :_reduce_116,
- 3, 98, :_reduce_117,
- 1, 100, :_reduce_118,
- 2, 100, :_reduce_119,
- 2, 130, :_reduce_120,
- 1, 131, :_reduce_121,
- 2, 131, :_reduce_122,
- 1, 97, :_reduce_123,
- 4, 91, :_reduce_124,
- 4, 91, :_reduce_125,
- 2, 80, :_reduce_126,
- 5, 132, :_reduce_127,
- 4, 132, :_reduce_128,
- 0, 133, :_reduce_none,
- 2, 133, :_reduce_130,
- 4, 133, :_reduce_131,
- 3, 133, :_reduce_132,
- 1, 121, :_reduce_none,
- 3, 121, :_reduce_134,
- 3, 121, :_reduce_135,
- 3, 121, :_reduce_136,
- 3, 121, :_reduce_137,
- 3, 121, :_reduce_138,
- 3, 121, :_reduce_139,
- 3, 121, :_reduce_140,
- 3, 121, :_reduce_141,
- 3, 121, :_reduce_142,
- 2, 121, :_reduce_143,
- 3, 121, :_reduce_144,
- 3, 121, :_reduce_145,
- 3, 121, :_reduce_146,
- 3, 121, :_reduce_147,
- 3, 121, :_reduce_148,
- 3, 121, :_reduce_149,
- 2, 121, :_reduce_150,
- 3, 121, :_reduce_151,
- 3, 121, :_reduce_152,
- 3, 121, :_reduce_153,
- 5, 79, :_reduce_154,
- 1, 135, :_reduce_none,
- 2, 135, :_reduce_156,
- 5, 136, :_reduce_157,
- 4, 136, :_reduce_158,
- 1, 137, :_reduce_none,
- 3, 137, :_reduce_160,
- 3, 99, :_reduce_161,
- 1, 139, :_reduce_none,
- 4, 139, :_reduce_163,
- 1, 141, :_reduce_none,
- 3, 141, :_reduce_165,
- 3, 140, :_reduce_166,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_none,
- 1, 138, :_reduce_174,
- 1, 138, :_reduce_none,
- 1, 142, :_reduce_176,
- 1, 143, :_reduce_none,
- 3, 143, :_reduce_178,
- 2, 81, :_reduce_179,
- 6, 83, :_reduce_180,
- 5, 83, :_reduce_181,
- 7, 84, :_reduce_182,
- 6, 84, :_reduce_183,
- 6, 85, :_reduce_184,
- 5, 85, :_reduce_185,
- 1, 107, :_reduce_186,
- 1, 102, :_reduce_187,
- 1, 102, :_reduce_188,
- 1, 102, :_reduce_189,
- 1, 146, :_reduce_190,
- 3, 146, :_reduce_191,
- 1, 148, :_reduce_192,
- 1, 149, :_reduce_193,
- 1, 149, :_reduce_194,
- 1, 149, :_reduce_195,
- 1, 149, :_reduce_none,
- 0, 72, :_reduce_197,
- 0, 150, :_reduce_198,
- 1, 144, :_reduce_none,
- 3, 144, :_reduce_200,
- 3, 144, :_reduce_201,
- 1, 151, :_reduce_none,
- 3, 151, :_reduce_203,
- 3, 152, :_reduce_204,
- 1, 152, :_reduce_205,
- 3, 152, :_reduce_206,
- 1, 152, :_reduce_207,
- 1, 147, :_reduce_none,
- 2, 147, :_reduce_209,
- 1, 145, :_reduce_none,
- 2, 145, :_reduce_211,
- 1, 153, :_reduce_none,
- 1, 153, :_reduce_none,
- 1, 95, :_reduce_214,
- 3, 120, :_reduce_215,
- 4, 120, :_reduce_216,
- 2, 120, :_reduce_217,
- 1, 128, :_reduce_none,
- 1, 128, :_reduce_none,
- 0, 106, :_reduce_none,
- 1, 106, :_reduce_221,
- 1, 134, :_reduce_222,
- 3, 129, :_reduce_223,
- 4, 129, :_reduce_224,
- 2, 129, :_reduce_225,
- 1, 154, :_reduce_none,
- 3, 154, :_reduce_227,
- 3, 155, :_reduce_228,
- 1, 156, :_reduce_229,
- 1, 156, :_reduce_230,
- 4, 122, :_reduce_231,
- 1, 101, :_reduce_none,
- 4, 101, :_reduce_233 ]
-
-racc_reduce_n = 234
-
-racc_shift_n = 385
-
racc_token_table = {
- false => 0,
- :error => 1,
- :STRING => 2,
- :DQPRE => 3,
- :DQMID => 4,
- :DQPOST => 5,
- :LBRACK => 6,
- :RBRACK => 7,
- :LBRACE => 8,
- :RBRACE => 9,
- :SYMBOL => 10,
- :FARROW => 11,
- :COMMA => 12,
- :TRUE => 13,
- :FALSE => 14,
- :EQUALS => 15,
- :APPENDS => 16,
- :LESSEQUAL => 17,
- :NOTEQUAL => 18,
- :DOT => 19,
- :COLON => 20,
- :LLCOLLECT => 21,
- :RRCOLLECT => 22,
- :QMARK => 23,
- :LPAREN => 24,
- :RPAREN => 25,
- :ISEQUAL => 26,
- :GREATEREQUAL => 27,
- :GREATERTHAN => 28,
- :LESSTHAN => 29,
- :IF => 30,
- :ELSE => 31,
- :IMPORT => 32,
- :DEFINE => 33,
- :ELSIF => 34,
- :VARIABLE => 35,
- :CLASS => 36,
- :INHERITS => 37,
- :NODE => 38,
- :BOOLEAN => 39,
- :NAME => 40,
- :SEMIC => 41,
- :CASE => 42,
- :DEFAULT => 43,
- :AT => 44,
- :LCOLLECT => 45,
- :RCOLLECT => 46,
- :CLASSNAME => 47,
- :CLASSREF => 48,
- :NOT => 49,
- :OR => 50,
- :AND => 51,
- :UNDEF => 52,
- :PARROW => 53,
- :PLUS => 54,
- :MINUS => 55,
- :TIMES => 56,
- :DIV => 57,
- :LSHIFT => 58,
- :RSHIFT => 59,
- :UMINUS => 60,
- :MATCH => 61,
- :NOMATCH => 62,
- :REGEX => 63,
- :IN_EDGE => 64,
- :OUT_EDGE => 65,
- :IN_EDGE_SUB => 66,
- :OUT_EDGE_SUB => 67,
- :IN => 68 }
-
-racc_nt_base = 69
+ false => 0,
+ Object.new => 1,
+ :STRING => 2,
+ :DQPRE => 3,
+ :DQMID => 4,
+ :DQPOST => 5,
+ :LBRACK => 6,
+ :RBRACK => 7,
+ :LBRACE => 8,
+ :RBRACE => 9,
+ :SYMBOL => 10,
+ :FARROW => 11,
+ :COMMA => 12,
+ :TRUE => 13,
+ :FALSE => 14,
+ :EQUALS => 15,
+ :APPENDS => 16,
+ :LESSEQUAL => 17,
+ :NOTEQUAL => 18,
+ :DOT => 19,
+ :COLON => 20,
+ :LLCOLLECT => 21,
+ :RRCOLLECT => 22,
+ :QMARK => 23,
+ :LPAREN => 24,
+ :RPAREN => 25,
+ :ISEQUAL => 26,
+ :GREATEREQUAL => 27,
+ :GREATERTHAN => 28,
+ :LESSTHAN => 29,
+ :IF => 30,
+ :ELSE => 31,
+ :IMPORT => 32,
+ :DEFINE => 33,
+ :ELSIF => 34,
+ :VARIABLE => 35,
+ :CLASS => 36,
+ :INHERITS => 37,
+ :NODE => 38,
+ :BOOLEAN => 39,
+ :NAME => 40,
+ :SEMIC => 41,
+ :CASE => 42,
+ :DEFAULT => 43,
+ :AT => 44,
+ :LCOLLECT => 45,
+ :RCOLLECT => 46,
+ :CLASSNAME => 47,
+ :CLASSREF => 48,
+ :NOT => 49,
+ :OR => 50,
+ :AND => 51,
+ :UNDEF => 52,
+ :PARROW => 53,
+ :PLUS => 54,
+ :MINUS => 55,
+ :TIMES => 56,
+ :DIV => 57,
+ :LSHIFT => 58,
+ :RSHIFT => 59,
+ :UMINUS => 60,
+ :MATCH => 61,
+ :NOMATCH => 62,
+ :REGEX => 63,
+ :IN_EDGE => 64,
+ :OUT_EDGE => 65,
+ :IN_EDGE_SUB => 66,
+ :OUT_EDGE_SUB => 67,
+ :IN => 68 }
racc_use_result_var = true
+racc_nt_base = 69
+
Racc_arg = [
- racc_action_table,
- racc_action_check,
- racc_action_default,
- racc_action_pointer,
- racc_goto_table,
- racc_goto_check,
- racc_goto_default,
- racc_goto_pointer,
- racc_nt_base,
- racc_reduce_table,
- racc_token_table,
- racc_shift_n,
- racc_reduce_n,
- racc_use_result_var ]
+ racc_action_table,
+ racc_action_check,
+ racc_action_default,
+ racc_action_pointer,
+ racc_goto_table,
+ racc_goto_check,
+ racc_goto_default,
+ racc_goto_pointer,
+ racc_nt_base,
+ racc_reduce_table,
+ racc_token_table,
+ racc_shift_n,
+ racc_reduce_n,
+ racc_use_result_var ]
Racc_token_to_s_table = [
- "$end",
- "error",
- "STRING",
- "DQPRE",
- "DQMID",
- "DQPOST",
- "LBRACK",
- "RBRACK",
- "LBRACE",
- "RBRACE",
- "SYMBOL",
- "FARROW",
- "COMMA",
- "TRUE",
- "FALSE",
- "EQUALS",
- "APPENDS",
- "LESSEQUAL",
- "NOTEQUAL",
- "DOT",
- "COLON",
- "LLCOLLECT",
- "RRCOLLECT",
- "QMARK",
- "LPAREN",
- "RPAREN",
- "ISEQUAL",
- "GREATEREQUAL",
- "GREATERTHAN",
- "LESSTHAN",
- "IF",
- "ELSE",
- "IMPORT",
- "DEFINE",
- "ELSIF",
- "VARIABLE",
- "CLASS",
- "INHERITS",
- "NODE",
- "BOOLEAN",
- "NAME",
- "SEMIC",
- "CASE",
- "DEFAULT",
- "AT",
- "LCOLLECT",
- "RCOLLECT",
- "CLASSNAME",
- "CLASSREF",
- "NOT",
- "OR",
- "AND",
- "UNDEF",
- "PARROW",
- "PLUS",
- "MINUS",
- "TIMES",
- "DIV",
- "LSHIFT",
- "RSHIFT",
- "UMINUS",
- "MATCH",
- "NOMATCH",
- "REGEX",
- "IN_EDGE",
- "OUT_EDGE",
- "IN_EDGE_SUB",
- "OUT_EDGE_SUB",
- "IN",
- "$start",
- "program",
- "statements_and_declarations",
- "nil",
- "statement_or_declaration",
- "statements",
- "resource",
- "virtualresource",
- "collection",
- "assignment",
- "casestatement",
- "ifstatement_begin",
- "import",
- "fstatement",
- "definition",
- "hostclass",
- "nodedef",
- "resourceoverride",
- "append",
- "relationship",
- "relationship_side",
- "edge",
- "resourceref",
- "funcvalues",
- "namestring",
- "name",
- "variable",
- "type",
- "boolean",
- "funcrvalue",
- "selector",
- "quotedtext",
- "hasharrayaccesses",
- "classname",
- "resourceinstances",
- "endsemi",
- "params",
- "endcomma",
- "classref",
- "anyparams",
- "at",
- "collectrhand",
- "collstatements",
- "collstatement",
- "colljoin",
- "collexpr",
- "colllval",
- "simplervalue",
- "resourceinst",
- "resourcename",
- "undef",
- "array",
- "expression",
- "hasharrayaccess",
- "param",
- "rvalue",
- "addparam",
- "anyparam",
- "rvalues",
- "comma",
- "hash",
- "dqrval",
- "dqtail",
- "ifstatement",
- "else",
- "regex",
- "caseopts",
- "caseopt",
- "casevalues",
- "selectlhand",
- "svalues",
- "selectval",
- "sintvalues",
- "string",
- "strings",
- "argumentlist",
- "classparent",
- "hostnames",
- "nodeparent",
- "nodename",
- "hostname",
- "nothing",
- "arguments",
- "argument",
- "classnameordefault",
- "hashpairs",
- "hashpair",
- "key" ]
+'$end',
+'error',
+'STRING',
+'DQPRE',
+'DQMID',
+'DQPOST',
+'LBRACK',
+'RBRACK',
+'LBRACE',
+'RBRACE',
+'SYMBOL',
+'FARROW',
+'COMMA',
+'TRUE',
+'FALSE',
+'EQUALS',
+'APPENDS',
+'LESSEQUAL',
+'NOTEQUAL',
+'DOT',
+'COLON',
+'LLCOLLECT',
+'RRCOLLECT',
+'QMARK',
+'LPAREN',
+'RPAREN',
+'ISEQUAL',
+'GREATEREQUAL',
+'GREATERTHAN',
+'LESSTHAN',
+'IF',
+'ELSE',
+'IMPORT',
+'DEFINE',
+'ELSIF',
+'VARIABLE',
+'CLASS',
+'INHERITS',
+'NODE',
+'BOOLEAN',
+'NAME',
+'SEMIC',
+'CASE',
+'DEFAULT',
+'AT',
+'LCOLLECT',
+'RCOLLECT',
+'CLASSNAME',
+'CLASSREF',
+'NOT',
+'OR',
+'AND',
+'UNDEF',
+'PARROW',
+'PLUS',
+'MINUS',
+'TIMES',
+'DIV',
+'LSHIFT',
+'RSHIFT',
+'UMINUS',
+'MATCH',
+'NOMATCH',
+'REGEX',
+'IN_EDGE',
+'OUT_EDGE',
+'IN_EDGE_SUB',
+'OUT_EDGE_SUB',
+'IN',
+'$start',
+'program',
+'statements_and_declarations',
+'nil',
+'statement_or_declaration',
+'statements',
+'resource',
+'virtualresource',
+'collection',
+'assignment',
+'casestatement',
+'ifstatement_begin',
+'import',
+'fstatement',
+'definition',
+'hostclass',
+'nodedef',
+'resourceoverride',
+'append',
+'relationship',
+'relationship_side',
+'edge',
+'resourceref',
+'funcvalues',
+'namestring',
+'name',
+'variable',
+'type',
+'boolean',
+'funcrvalue',
+'selector',
+'quotedtext',
+'hasharrayaccesses',
+'classname',
+'resourceinstances',
+'endsemi',
+'params',
+'endcomma',
+'classref',
+'anyparams',
+'at',
+'collectrhand',
+'collstatements',
+'collstatement',
+'colljoin',
+'collexpr',
+'colllval',
+'simplervalue',
+'resourceinst',
+'resourcename',
+'undef',
+'array',
+'expression',
+'hasharrayaccess',
+'param',
+'rvalue',
+'addparam',
+'anyparam',
+'rvalues',
+'comma',
+'hash',
+'dqrval',
+'dqtail',
+'ifstatement',
+'else',
+'regex',
+'caseopts',
+'caseopt',
+'casevalues',
+'selectlhand',
+'svalues',
+'selectval',
+'sintvalues',
+'string',
+'strings',
+'argumentlist',
+'classparent',
+'hostnames',
+'nodeparent',
+'nodename',
+'hostname',
+'nothing',
+'arguments',
+'argument',
+'classnameordefault',
+'hashpairs',
+'hashpair',
+'key']
Racc_debug_parser = false
-##### State transition tables end #####
+##### racc system variables end #####
-# reduce 0 omitted
+ # reduce 0 omitted
-# reduce 1 omitted
+ # reduce 1 omitted
-# reduce 2 omitted
+ # reduce 2 omitted
-module_eval(<<'.,.,', 'grammar.ra', 34)
- def _reduce_3(val, _values, result)
- result = ast AST::ASTArray, :children => [val[0]]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 36
+ def _reduce_3( val, _values, result )
+ result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : [])
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 37)
- def _reduce_4(val, _values, result)
- val[0].push(val[1])
+module_eval <<'.,.,', 'grammar.ra', 42
+ def _reduce_4( val, _values, result )
+ if val[1]
+ val[0].push(val[1])
+ end
result = val[0]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 44)
- def _reduce_5(val, _values, result)
- val[0].each do |stmt|
+module_eval <<'.,.,', 'grammar.ra', 54
+ def _reduce_5( val, _values, result )
+ val[0].each do |stmt|
if stmt.is_a?(AST::TopLevelConstruct)
error "Classes, definitions, and nodes may only appear at toplevel or inside other classes", \
:line => stmt.context[:line], :file => stmt.context[:file]
end
end
result = val[0]
-
- result
+ result
end
.,.,
-# reduce 6 omitted
+ # reduce 6 omitted
-# reduce 7 omitted
+ # reduce 7 omitted
-# reduce 8 omitted
+ # reduce 8 omitted
-# reduce 9 omitted
+ # reduce 9 omitted
-# reduce 10 omitted
+ # reduce 10 omitted
-# reduce 11 omitted
+ # reduce 11 omitted
-# reduce 12 omitted
+ # reduce 12 omitted
-# reduce 13 omitted
+ # reduce 13 omitted
-# reduce 14 omitted
+ # reduce 14 omitted
-# reduce 15 omitted
+ # reduce 15 omitted
-# reduce 16 omitted
+ # reduce 16 omitted
-# reduce 17 omitted
+ # reduce 17 omitted
-# reduce 18 omitted
+ # reduce 18 omitted
-# reduce 19 omitted
+ # reduce 19 omitted
-module_eval(<<'.,.,', 'grammar.ra', 70)
- def _reduce_20(val, _values, result)
- result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
-
- result
+module_eval <<'.,.,', 'grammar.ra', 74
+ def _reduce_20( val, _values, result )
+ result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 73)
- def _reduce_21(val, _values, result)
- result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
-
- result
+module_eval <<'.,.,', 'grammar.ra', 77
+ def _reduce_21( val, _values, result )
+ result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
+ result
end
.,.,
-# reduce 22 omitted
+ # reduce 22 omitted
-# reduce 23 omitted
+ # reduce 23 omitted
-# reduce 24 omitted
+ # reduce 24 omitted
-# reduce 25 omitted
+ # reduce 25 omitted
-# reduce 26 omitted
+ # reduce 26 omitted
-# reduce 27 omitted
+ # reduce 27 omitted
-# reduce 28 omitted
+ # reduce 28 omitted
-module_eval(<<'.,.,', 'grammar.ra', 81)
- def _reduce_29(val, _values, result)
- args = aryfy(val[2])
+module_eval <<'.,.,', 'grammar.ra', 89
+ def _reduce_29( val, _values, result )
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :statement
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 89)
- def _reduce_30(val, _values, result)
- args = aryfy(val[2])
+module_eval <<'.,.,', 'grammar.ra', 96
+ def _reduce_30( val, _values, result )
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :statement
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 96)
- def _reduce_31(val, _values, result)
- result = ast AST::Function,
+module_eval <<'.,.,', 'grammar.ra', 102
+ def _reduce_31( val, _values, result )
+ result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
:arguments => AST::ASTArray.new({}),
:ftype => :statement
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 103)
- def _reduce_32(val, _values, result)
- args = aryfy(val[1])
+module_eval <<'.,.,', 'grammar.ra', 109
+ def _reduce_32( val, _values, result )
result = ast AST::Function,
:name => val[0][:value],
:line => val[0][:line],
- :arguments => args,
+ :arguments => val[1],
:ftype => :statement
-
- result
+ result
end
.,.,
-# reduce 33 omitted
-
-# reduce 34 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 114)
- def _reduce_35(val, _values, result)
- result = aryfy(val[0], val[2])
- result.line = @lexer.line
- result.file = @lexer.file
-
- result
+module_eval <<'.,.,', 'grammar.ra', 110
+ def _reduce_33( val, _values, result )
+ result = aryfy(val[0])
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 119)
- def _reduce_36(val, _values, result)
- unless val[0].is_a?(AST::ASTArray)
- val[0] = aryfy(val[0])
+module_eval <<'.,.,', 'grammar.ra', 111
+ def _reduce_34( val, _values, result )
+ result = aryfy(val[0])
+ result
end
+.,.,
- val[0].push(val[2])
-
- result = val[0]
+module_eval <<'.,.,', 'grammar.ra', 116
+ def _reduce_35( val, _values, result )
+ val[0].push(val[2])
+ result = val[0]
+ result
+ end
+.,.,
- result
+module_eval <<'.,.,', 'grammar.ra', 120
+ def _reduce_36( val, _values, result )
+ val[0].push(val[2])
+ result = val[0]
+ result
end
.,.,
-# reduce 37 omitted
+ # reduce 37 omitted
-# reduce 38 omitted
+ # reduce 38 omitted
-# reduce 39 omitted
+ # reduce 39 omitted
-# reduce 40 omitted
+ # reduce 40 omitted
-# reduce 41 omitted
+ # reduce 41 omitted
-# reduce 42 omitted
+ # reduce 42 omitted
-# reduce 43 omitted
+ # reduce 43 omitted
-# reduce 44 omitted
+ # reduce 44 omitted
-module_eval(<<'.,.,', 'grammar.ra', 139)
- def _reduce_45(val, _values, result)
- result = ast AST::Name, :value => val[0][:value]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 134
+ def _reduce_45( val, _values, result )
+ result = ast AST::Name, :value => val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 143)
- def _reduce_46(val, _values, result)
- @lexer.commentpop
- array = val[2]
- array = [array] if array.instance_of?(AST::ResourceInstance)
- result = ast AST::ASTArray
-
- # this iterates across each specified resourceinstance
- array.each { |instance|
- raise Puppet::Dev, "Got something that isn't an instance" unless instance.instance_of?(AST::ResourceInstance)
- # now, i need to somehow differentiate between those things with
- # arrays in their names, and normal things
-
- result.push ast(
- AST::Resource,
- :type => val[0],
- :title => instance[0],
-
- :parameters => instance[1])
- }
-
- result
+module_eval <<'.,.,', 'grammar.ra', 139
+ def _reduce_46( val, _values, result )
+ @lexer.commentpop
+ result = ast(AST::Resource, :type => val[0], :instances => val[2])
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 162)
- def _reduce_47(val, _values, result)
- # This is a deprecated syntax.
+module_eval <<'.,.,', 'grammar.ra', 142
+ def _reduce_47( val, _values, result )
+ # This is a deprecated syntax.
error "All resource specifications require names"
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 165)
- def _reduce_48(val, _values, result)
- # a defaults setting for a type
+module_eval <<'.,.,', 'grammar.ra', 146
+ def _reduce_48( val, _values, result )
+ # a defaults setting for a type
@lexer.commentpop
result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2])
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 172)
- def _reduce_49(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 152
+ def _reduce_49( val, _values, result )
+ @lexer.commentpop
result = ast AST::ResourceOverride, :object => val[0], :parameters => val[2]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 179)
- def _reduce_50(val, _values, result)
- type = val[0]
+module_eval <<'.,.,', 'grammar.ra', 171
+ def _reduce_50( val, _values, result )
+ type = val[0]
if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
Puppet.warning addcontext("You cannot collect without storeconfigs being set")
@@ -1388,38 +1365,31 @@ module_eval(<<'.,.,', 'grammar.ra', 179)
method = type.to_s + "="
- # Just mark our resources as exported and pass them through.
- if val[1].instance_of?(AST::ASTArray)
- val[1].each do |obj|
- obj.send(method, true)
- end
- else
- val[1].send(method, true)
- end
+ # Just mark our resource as exported and pass it through.
+ val[1].send(method, true)
result = val[1]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 201)
- def _reduce_51(val, _values, result)
- result = :virtual
- result
+module_eval <<'.,.,', 'grammar.ra', 172
+ def _reduce_51( val, _values, result )
+ result = :virtual
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 202)
- def _reduce_52(val, _values, result)
- result = :exported
- result
+module_eval <<'.,.,', 'grammar.ra', 173
+ def _reduce_52( val, _values, result )
+ result = :exported
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 207)
- def _reduce_53(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 196
+ def _reduce_53( val, _values, result )
+ @lexer.commentpop
Puppet.warning addcontext("Collection names must now be capitalized") if val[0] =~ /^[a-z]/
type = val[0].downcase
args = {:type => type}
@@ -1436,14 +1406,13 @@ module_eval(<<'.,.,', 'grammar.ra', 207)
end
args[:override] = val[3]
result = ast AST::Collection, args
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 226)
- def _reduce_54(val, _values, result)
- if val[0] =~ /^[a-z]/
+module_eval <<'.,.,', 'grammar.ra', 215
+ def _reduce_54( val, _values, result )
+ if val[0] =~ /^[a-z]/
Puppet.warning addcontext("Collection names must now be capitalized")
end
type = val[0].downcase
@@ -1460,412 +1429,377 @@ module_eval(<<'.,.,', 'grammar.ra', 226)
Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
end
result = ast AST::Collection, args
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 247)
- def _reduce_55(val, _values, result)
- if val[1]
+module_eval <<'.,.,', 'grammar.ra', 225
+ def _reduce_55( val, _values, result )
+ if val[1]
result = val[1]
result.form = :virtual
else
result = :virtual
end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 255)
- def _reduce_56(val, _values, result)
- if val[1]
+module_eval <<'.,.,', 'grammar.ra', 233
+ def _reduce_56( val, _values, result )
+ if val[1]
result = val[1]
result.form = :exported
else
result = :exported
end
-
- result
+ result
end
.,.,
-# reduce 57 omitted
-
-# reduce 58 omitted
+ # reduce 57 omitted
-module_eval(<<'.,.,', 'grammar.ra', 268)
- def _reduce_59(val, _values, result)
- result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
+ # reduce 58 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 241
+ def _reduce_59( val, _values, result )
+ result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
+ result
end
.,.,
-# reduce 60 omitted
+ # reduce 60 omitted
-module_eval(<<'.,.,', 'grammar.ra', 273)
- def _reduce_61(val, _values, result)
- result = val[1]
+module_eval <<'.,.,', 'grammar.ra', 247
+ def _reduce_61( val, _values, result )
+ result = val[1]
result.parens = true
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 277)
- def _reduce_62(val, _values, result)
- result=val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 248
+ def _reduce_62( val, _values, result )
+ result=val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 278)
- def _reduce_63(val, _values, result)
- result=val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 249
+ def _reduce_63( val, _values, result )
+ result=val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 281)
- def _reduce_64(val, _values, result)
- result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
+module_eval <<'.,.,', 'grammar.ra', 256
+ def _reduce_64( val, _values, result )
+ result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
#result = ast AST::CollExpr
#result.push *val
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 286)
- def _reduce_65(val, _values, result)
- result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
+module_eval <<'.,.,', 'grammar.ra', 261
+ def _reduce_65( val, _values, result )
+ result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
#result = ast AST::CollExpr
#result.push *val
-
- result
+ result
end
.,.,
-# reduce 66 omitted
-
-# reduce 67 omitted
+ # reduce 66 omitted
-module_eval(<<'.,.,', 'grammar.ra', 295)
- def _reduce_68(val, _values, result)
- result = ast AST::ResourceInstance, :children => [val[0],val[2]]
+ # reduce 67 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 268
+ def _reduce_68( val, _values, result )
+ result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2]
+ result
end
.,.,
-# reduce 69 omitted
+module_eval <<'.,.,', 'grammar.ra', 269
+ def _reduce_69( val, _values, result )
+ result = aryfy(val[0])
+ result
+ end
+.,.,
-module_eval(<<'.,.,', 'grammar.ra', 300)
- def _reduce_70(val, _values, result)
- if val[0].instance_of?(AST::ResourceInstance)
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- else
+module_eval <<'.,.,', 'grammar.ra', 274
+ def _reduce_70( val, _values, result )
val[0].push val[2]
result = val[0]
- end
-
- result
+ result
end
.,.,
-# reduce 71 omitted
-
-# reduce 72 omitted
+ # reduce 71 omitted
-module_eval(<<'.,.,', 'grammar.ra', 312)
- def _reduce_73(val, _values, result)
- result = ast AST::Undef, :value => :undef
+ # reduce 72 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 281
+ def _reduce_73( val, _values, result )
+ result = ast AST::Undef, :value => :undef
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 316)
- def _reduce_74(val, _values, result)
- result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 285
+ def _reduce_74( val, _values, result )
+ result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 320)
- def _reduce_75(val, _values, result)
- result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 289
+ def _reduce_75( val, _values, result )
+ result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-# reduce 76 omitted
+ # reduce 76 omitted
-# reduce 77 omitted
+ # reduce 77 omitted
-# reduce 78 omitted
+ # reduce 78 omitted
-# reduce 79 omitted
+ # reduce 79 omitted
-# reduce 80 omitted
+ # reduce 80 omitted
-# reduce 81 omitted
+ # reduce 81 omitted
-# reduce 82 omitted
+ # reduce 82 omitted
-module_eval(<<'.,.,', 'grammar.ra', 332)
- def _reduce_83(val, _values, result)
- raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
+module_eval <<'.,.,', 'grammar.ra', 304
+ def _reduce_83( val, _values, result )
+ raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
# this is distinct from referencing a variable
variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
result = ast AST::VarDef, :name => variable, :value => val[2], :line => val[0][:line]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 338)
- def _reduce_84(val, _values, result)
- result = ast AST::VarDef, :name => val[0], :value => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 307
+ def _reduce_84( val, _values, result )
+ result = ast AST::VarDef, :name => val[0], :value => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 342)
- def _reduce_85(val, _values, result)
- variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
+module_eval <<'.,.,', 'grammar.ra', 312
+ def _reduce_85( val, _values, result )
+ variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
result = ast AST::VarDef, :name => variable, :value => val[2], :append => true, :line => val[0][:line]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 348)
- def _reduce_86(val, _values, result)
- result = ast AST::ASTArray
-
- result
+module_eval <<'.,.,', 'grammar.ra', 317
+ def _reduce_86( val, _values, result )
+ result = ast AST::ASTArray
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 350)
- def _reduce_87(val, _values, result)
- result = val[0]
- result
+module_eval <<'.,.,', 'grammar.ra', 317
+ def _reduce_87( val, _values, result )
+ result = aryfy(val[0])
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 352)
- def _reduce_88(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
+module_eval <<'.,.,', 'grammar.ra', 322
+ def _reduce_88( val, _values, result )
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 361)
- def _reduce_89(val, _values, result)
- result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 326
+ def _reduce_89( val, _values, result )
+ result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 365)
- def _reduce_90(val, _values, result)
- result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
+module_eval <<'.,.,', 'grammar.ra', 331
+ def _reduce_90( val, _values, result )
+ result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
:add => true
-
- result
+ result
end
.,.,
-# reduce 91 omitted
+ # reduce 91 omitted
-# reduce 92 omitted
+ # reduce 92 omitted
-module_eval(<<'.,.,', 'grammar.ra', 374)
- def _reduce_93(val, _values, result)
- result = ast AST::ASTArray
-
- result
+module_eval <<'.,.,', 'grammar.ra', 339
+ def _reduce_93( val, _values, result )
+ result = ast AST::ASTArray
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 376)
- def _reduce_94(val, _values, result)
- result = val[0]
- result
+module_eval <<'.,.,', 'grammar.ra', 339
+ def _reduce_94( val, _values, result )
+ result = aryfy(val[0])
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 378)
- def _reduce_95(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
+module_eval <<'.,.,', 'grammar.ra', 344
+ def _reduce_95( val, _values, result )
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
-
- result
+ result
end
.,.,
-# reduce 96 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 388)
- def _reduce_97(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
- result = val[0].push(val[2])
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
+module_eval <<'.,.,', 'grammar.ra', 345
+ def _reduce_96( val, _values, result )
+ result = aryfy(val[0])
+ result
end
+.,.,
- result
+module_eval <<'.,.,', 'grammar.ra', 346
+ def _reduce_97( val, _values, result )
+ result = val[0].push(val[2])
+ result
end
.,.,
-# reduce 98 omitted
+ # reduce 98 omitted
-# reduce 99 omitted
+ # reduce 99 omitted
-# reduce 100 omitted
+ # reduce 100 omitted
-# reduce 101 omitted
+ # reduce 101 omitted
-# reduce 102 omitted
+ # reduce 102 omitted
-# reduce 103 omitted
+ # reduce 103 omitted
-# reduce 104 omitted
+ # reduce 104 omitted
-# reduce 105 omitted
+ # reduce 105 omitted
-# reduce 106 omitted
+ # reduce 106 omitted
-# reduce 107 omitted
+ # reduce 107 omitted
-# reduce 108 omitted
+ # reduce 108 omitted
-# reduce 109 omitted
+ # reduce 109 omitted
-# reduce 110 omitted
+ # reduce 110 omitted
-# reduce 111 omitted
+ # reduce 111 omitted
-# reduce 112 omitted
+ # reduce 112 omitted
-# reduce 113 omitted
+ # reduce 113 omitted
-# reduce 114 omitted
+ # reduce 114 omitted
-# reduce 115 omitted
+ # reduce 115 omitted
-module_eval(<<'.,.,', 'grammar.ra', 417)
- def _reduce_116(val, _values, result)
- args = aryfy(val[2])
+module_eval <<'.,.,', 'grammar.ra', 375
+ def _reduce_116( val, _values, result )
result = ast AST::Function,
:name => val[0][:value], :line => val[0][:line],
- :arguments => args,
+ :arguments => val[2],
:ftype => :rvalue
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 423)
- def _reduce_117(val, _values, result)
- result = ast AST::Function,
+module_eval <<'.,.,', 'grammar.ra', 380
+ def _reduce_117( val, _values, result )
+ result = ast AST::Function,
:name => val[0][:value], :line => val[0][:line],
:arguments => AST::ASTArray.new({}),
:ftype => :rvalue
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 429)
- def _reduce_118(val, _values, result)
- result = ast AST::String, :value => val[0][:value], :line => val[0][:line]
- result
+module_eval <<'.,.,', 'grammar.ra', 381
+ def _reduce_118( val, _values, result )
+ result = ast AST::String, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 430)
- def _reduce_119(val, _values, result)
- result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line]
- result
+module_eval <<'.,.,', 'grammar.ra', 382
+ def _reduce_119( val, _values, result )
+ result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 432)
- def _reduce_120(val, _values, result)
- result = [val[0]] + val[1]
- result
+module_eval <<'.,.,', 'grammar.ra', 384
+ def _reduce_120( val, _values, result )
+ result = [val[0]] + val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 434)
- def _reduce_121(val, _values, result)
- result = [ast(AST::String,val[0])]
- result
+module_eval <<'.,.,', 'grammar.ra', 386
+ def _reduce_121( val, _values, result )
+ result = [ast(AST::String,val[0])]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 435)
- def _reduce_122(val, _values, result)
- result = [ast(AST::String,val[0])] + val[1]
- result
+module_eval <<'.,.,', 'grammar.ra', 387
+ def _reduce_122( val, _values, result )
+ result = [ast(AST::String,val[0])] + val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 438)
- def _reduce_123(val, _values, result)
- result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 392
+ def _reduce_123( val, _values, result )
+ result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 442)
- def _reduce_124(val, _values, result)
- Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized")
+module_eval <<'.,.,', 'grammar.ra', 397
+ def _reduce_124( val, _values, result )
+ Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized")
result = ast AST::ResourceReference, :type => val[0][:value], :line => val[0][:line], :title => val[2]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 445)
- def _reduce_125(val, _values, result)
- result = ast AST::ResourceReference, :type => val[0], :title => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 399
+ def _reduce_125( val, _values, result )
+ result = ast AST::ResourceReference, :type => val[0], :title => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 449)
- def _reduce_126(val, _values, result)
- result = val[1]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 403
+ def _reduce_126( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 453)
- def _reduce_127(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 415
+ def _reduce_127( val, _values, result )
+ @lexer.commentpop
args = {
:test => val[0],
:statements => val[2]
@@ -1874,14 +1808,13 @@ module_eval(<<'.,.,', 'grammar.ra', 453)
args[:else] = val[4] if val[4]
result = ast AST::IfStatement, args
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 464)
- def _reduce_128(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 426
+ def _reduce_128( val, _values, result )
+ @lexer.commentpop
args = {
:test => val[0],
:statements => ast(AST::Nop)
@@ -1890,239 +1823,211 @@ module_eval(<<'.,.,', 'grammar.ra', 464)
args[:else] = val[3] if val[3]
result = ast AST::IfStatement, args
-
- result
+ result
end
.,.,
-# reduce 129 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 477)
- def _reduce_130(val, _values, result)
- result = ast AST::Else, :statements => val[1]
+ # reduce 129 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 431
+ def _reduce_130( val, _values, result )
+ result = ast AST::Else, :statements => val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 480)
- def _reduce_131(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 435
+ def _reduce_131( val, _values, result )
+ @lexer.commentpop
result = ast AST::Else, :statements => val[2]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 484)
- def _reduce_132(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 439
+ def _reduce_132( val, _values, result )
+ @lexer.commentpop
result = ast AST::Else, :statements => ast(AST::Nop)
-
- result
+ result
end
.,.,
-# reduce 133 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 502)
- def _reduce_134(val, _values, result)
- result = ast AST::InOperator, :lval => val[0], :rval => val[2]
+ # reduce 133 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 456
+ def _reduce_134( val, _values, result )
+ result = ast AST::InOperator, :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 505)
- def _reduce_135(val, _values, result)
- result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 459
+ def _reduce_135( val, _values, result )
+ result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 508)
- def _reduce_136(val, _values, result)
- result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 462
+ def _reduce_136( val, _values, result )
+ result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 511)
- def _reduce_137(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 465
+ def _reduce_137( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 514)
- def _reduce_138(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 468
+ def _reduce_138( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 517)
- def _reduce_139(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 471
+ def _reduce_139( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 520)
- def _reduce_140(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 474
+ def _reduce_140( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 523)
- def _reduce_141(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 477
+ def _reduce_141( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 526)
- def _reduce_142(val, _values, result)
- result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 480
+ def _reduce_142( val, _values, result )
+ result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 529)
- def _reduce_143(val, _values, result)
- result = ast AST::Minus, :value => val[1]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 483
+ def _reduce_143( val, _values, result )
+ result = ast AST::Minus, :value => val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 532)
- def _reduce_144(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 486
+ def _reduce_144( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 535)
- def _reduce_145(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 489
+ def _reduce_145( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 538)
- def _reduce_146(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 492
+ def _reduce_146( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 541)
- def _reduce_147(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 495
+ def _reduce_147( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 544)
- def _reduce_148(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 498
+ def _reduce_148( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 547)
- def _reduce_149(val, _values, result)
- result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 501
+ def _reduce_149( val, _values, result )
+ result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 550)
- def _reduce_150(val, _values, result)
- result = ast AST::Not, :value => val[1]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 504
+ def _reduce_150( val, _values, result )
+ result = ast AST::Not, :value => val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 553)
- def _reduce_151(val, _values, result)
- result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 507
+ def _reduce_151( val, _values, result )
+ result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 556)
- def _reduce_152(val, _values, result)
- result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 510
+ def _reduce_152( val, _values, result )
+ result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 559)
- def _reduce_153(val, _values, result)
- result = val[1]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 513
+ def _reduce_153( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 563)
- def _reduce_154(val, _values, result)
- @lexer.commentpop
- options = val[3]
- options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
- result = ast AST::CaseStatement, :test => val[1], :options => options
-
- result
+module_eval <<'.,.,', 'grammar.ra', 518
+ def _reduce_154( val, _values, result )
+ @lexer.commentpop
+ result = ast AST::CaseStatement, :test => val[1], :options => val[3]
+ result
end
.,.,
-# reduce 155 omitted
+module_eval <<'.,.,', 'grammar.ra', 519
+ def _reduce_155( val, _values, result )
+ result = aryfy(val[0])
+ result
+ end
+.,.,
-module_eval(<<'.,.,', 'grammar.ra', 571)
- def _reduce_156(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
+module_eval <<'.,.,', 'grammar.ra', 524
+ def _reduce_156( val, _values, result )
val[0].push val[1]
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0], val[1]]
- end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 580)
- def _reduce_157(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 529
+ def _reduce_157( val, _values, result )
+ @lexer.commentpop
result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 583)
- def _reduce_158(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 538
+ def _reduce_158( val, _values, result )
+ @lexer.commentpop
result = ast(
AST::CaseOpt,
@@ -2130,524 +2035,479 @@ module_eval(<<'.,.,', 'grammar.ra', 583)
:statements => ast(AST::ASTArray)
)
-
- result
+ result
end
.,.,
-# reduce 159 omitted
+module_eval <<'.,.,', 'grammar.ra', 539
+ def _reduce_159( val, _values, result )
+ result = aryfy(val[0])
+ result
+ end
+.,.,
-module_eval(<<'.,.,', 'grammar.ra', 595)
- def _reduce_160(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
+module_eval <<'.,.,', 'grammar.ra', 544
+ def _reduce_160( val, _values, result )
val[0].push(val[2])
result = val[0]
- else
- result = ast AST::ASTArray, :children => [val[0],val[2]]
- end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 604)
- def _reduce_161(val, _values, result)
- result = ast AST::Selector, :param => val[0], :values => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 548
+ def _reduce_161( val, _values, result )
+ result = ast AST::Selector, :param => val[0], :values => val[2]
+ result
end
.,.,
-# reduce 162 omitted
+ # reduce 162 omitted
-module_eval(<<'.,.,', 'grammar.ra', 609)
- def _reduce_163(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 554
+ def _reduce_163( val, _values, result )
+ @lexer.commentpop
result = val[1]
-
- result
+ result
end
.,.,
-# reduce 164 omitted
+ # reduce 164 omitted
-module_eval(<<'.,.,', 'grammar.ra', 615)
- def _reduce_165(val, _values, result)
- if val[0].instance_of?(AST::ASTArray)
+module_eval <<'.,.,', 'grammar.ra', 564
+ def _reduce_165( val, _values, result )
+ if val[0].instance_of?(AST::ASTArray)
val[0].push(val[2])
result = val[0]
else
result = ast AST::ASTArray, :children => [val[0],val[2]]
end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 624)
- def _reduce_166(val, _values, result)
- result = ast AST::ResourceParam, :param => val[0], :value => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 568
+ def _reduce_166( val, _values, result )
+ result = ast AST::ResourceParam, :param => val[0], :value => val[2]
+ result
end
.,.,
-# reduce 167 omitted
+ # reduce 167 omitted
-# reduce 168 omitted
+ # reduce 168 omitted
-# reduce 169 omitted
+ # reduce 169 omitted
-# reduce 170 omitted
+ # reduce 170 omitted
-# reduce 171 omitted
+ # reduce 171 omitted
-# reduce 172 omitted
+ # reduce 172 omitted
-# reduce 173 omitted
+ # reduce 173 omitted
-module_eval(<<'.,.,', 'grammar.ra', 635)
- def _reduce_174(val, _values, result)
- result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 579
+ def _reduce_174( val, _values, result )
+ result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-# reduce 175 omitted
+ # reduce 175 omitted
-module_eval(<<'.,.,', 'grammar.ra', 640)
- def _reduce_176(val, _values, result)
- result = [val[0][:value]]
- result
+module_eval <<'.,.,', 'grammar.ra', 582
+ def _reduce_176( val, _values, result )
+ result = [val[0][:value]]
+ result
end
.,.,
-# reduce 177 omitted
+ # reduce 177 omitted
-module_eval(<<'.,.,', 'grammar.ra', 642)
- def _reduce_178(val, _values, result)
- result = val[0] += val[2]
- result
+module_eval <<'.,.,', 'grammar.ra', 584
+ def _reduce_178( val, _values, result )
+ result = val[0] += val[2]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 645)
- def _reduce_179(val, _values, result)
- val[1].each do |file|
+module_eval <<'.,.,', 'grammar.ra', 593
+ def _reduce_179( val, _values, result )
+ val[1].each do |file|
import(file)
end
- result = AST::ASTArray.new(:children => [])
-
- result
+ result = nil
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 655)
- def _reduce_180(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 605
+ def _reduce_180( val, _values, result )
+ @lexer.commentpop
result = Puppet::Parser::AST::Definition.new(classname(val[1]),
ast_context(true).merge(:arguments => val[2], :code => val[4],
:line => val[0][:line]))
@lexer.indefine = false
#} | DEFINE NAME argumentlist parent LBRACE RBRACE {
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 663)
- def _reduce_181(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 610
+ def _reduce_181( val, _values, result )
+ @lexer.commentpop
result = Puppet::Parser::AST::Definition.new(classname(val[1]),
ast_context(true).merge(:arguments => val[2], :line => val[0][:line]))
@lexer.indefine = false
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 671)
- def _reduce_182(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 620
+ def _reduce_182( val, _values, result )
+ @lexer.commentpop
# Our class gets defined in the parent namespace, not our own.
@lexer.namepop
result = Puppet::Parser::AST::Hostclass.new(classname(val[1]),
ast_context(true).merge(:arguments => val[2], :parent => val[3],
:code => val[5], :line => val[0][:line]))
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 678)
- def _reduce_183(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 627
+ def _reduce_183( val, _values, result )
+ @lexer.commentpop
# Our class gets defined in the parent namespace, not our own.
@lexer.namepop
result = Puppet::Parser::AST::Hostclass.new(classname(val[1]),
ast_context(true).merge(:arguments => val[2], :parent => val[3],
:line => val[0][:line]))
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 687)
- def _reduce_184(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 634
+ def _reduce_184( val, _values, result )
+ @lexer.commentpop
result = Puppet::Parser::AST::Node.new(val[1],
ast_context(true).merge(:parent => val[2], :code => val[4],
:line => val[0][:line]))
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 692)
- def _reduce_185(val, _values, result)
- @lexer.commentpop
+module_eval <<'.,.,', 'grammar.ra', 637
+ def _reduce_185( val, _values, result )
+ @lexer.commentpop
result = Puppet::Parser::AST::Node.new(val[1], ast_context(true).merge(:parent => val[2], :line => val[0][:line]))
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 696)
- def _reduce_186(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 638
+ def _reduce_186( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 698)
- def _reduce_187(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 640
+ def _reduce_187( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 699)
- def _reduce_188(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 641
+ def _reduce_188( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 700)
- def _reduce_189(val, _values, result)
- result = "class"
- result
+module_eval <<'.,.,', 'grammar.ra', 642
+ def _reduce_189( val, _values, result )
+ result = "class"
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 705)
- def _reduce_190(val, _values, result)
- result = [result]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 649
+ def _reduce_190( val, _values, result )
+ result = [result]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 708)
- def _reduce_191(val, _values, result)
- result = val[0]
+module_eval <<'.,.,', 'grammar.ra', 653
+ def _reduce_191( val, _values, result )
+ result = val[0]
result << val[2]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 713)
- def _reduce_192(val, _values, result)
- result = ast AST::HostName, :value => val[0]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 657
+ def _reduce_192( val, _values, result )
+ result = ast AST::HostName, :value => val[0]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 716)
- def _reduce_193(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 658
+ def _reduce_193( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 717)
- def _reduce_194(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 659
+ def _reduce_194( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 718)
- def _reduce_195(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 660
+ def _reduce_195( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-# reduce 196 omitted
+ # reduce 196 omitted
-module_eval(<<'.,.,', 'grammar.ra', 722)
- def _reduce_197(val, _values, result)
- result = nil
-
- result
+module_eval <<'.,.,', 'grammar.ra', 666
+ def _reduce_197( val, _values, result )
+ result = nil
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 726)
- def _reduce_198(val, _values, result)
- result = ast AST::ASTArray, :children => []
-
- result
+module_eval <<'.,.,', 'grammar.ra', 670
+ def _reduce_198( val, _values, result )
+ result = ast AST::ASTArray, :children => []
+ result
end
.,.,
-# reduce 199 omitted
+ # reduce 199 omitted
-module_eval(<<'.,.,', 'grammar.ra', 731)
- def _reduce_200(val, _values, result)
- result = nil
-
- result
+module_eval <<'.,.,', 'grammar.ra', 675
+ def _reduce_200( val, _values, result )
+ result = nil
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 734)
- def _reduce_201(val, _values, result)
- result = val[1]
+module_eval <<'.,.,', 'grammar.ra', 679
+ def _reduce_201( val, _values, result )
+ result = val[1]
result = [result] unless result[0].is_a?(Array)
-
- result
+ result
end
.,.,
-# reduce 202 omitted
+ # reduce 202 omitted
-module_eval(<<'.,.,', 'grammar.ra', 740)
- def _reduce_203(val, _values, result)
- result = val[0]
+module_eval <<'.,.,', 'grammar.ra', 686
+ def _reduce_203( val, _values, result )
+ result = val[0]
result = [result] unless result[0].is_a?(Array)
result << val[2]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 746)
- def _reduce_204(val, _values, result)
- Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
+module_eval <<'.,.,', 'grammar.ra', 691
+ def _reduce_204( val, _values, result )
+ Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
result = [val[0][:value], val[2]]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 750)
- def _reduce_205(val, _values, result)
- Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
+module_eval <<'.,.,', 'grammar.ra', 695
+ def _reduce_205( val, _values, result )
+ Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
result = [val[0][:value]]
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 753)
- def _reduce_206(val, _values, result)
- result = [val[0][:value], val[2]]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 697
+ def _reduce_206( val, _values, result )
+ result = [val[0][:value], val[2]]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 755)
- def _reduce_207(val, _values, result)
- result = [val[0][:value]]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 699
+ def _reduce_207( val, _values, result )
+ result = [val[0][:value]]
+ result
end
.,.,
-# reduce 208 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 760)
- def _reduce_209(val, _values, result)
- result = val[1]
+ # reduce 208 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 704
+ def _reduce_209( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-# reduce 210 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 765)
- def _reduce_211(val, _values, result)
- result = val[1]
+ # reduce 210 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 709
+ def _reduce_211( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-# reduce 212 omitted
-
-# reduce 213 omitted
+ # reduce 212 omitted
-module_eval(<<'.,.,', 'grammar.ra', 771)
- def _reduce_214(val, _values, result)
- result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
+ # reduce 213 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 715
+ def _reduce_214( val, _values, result )
+ result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 775)
- def _reduce_215(val, _values, result)
- if val[1].instance_of?(AST::ASTArray)
- result = val[1]
- else
- result = ast AST::ASTArray, :children => [val[1]]
- end
-
- result
+module_eval <<'.,.,', 'grammar.ra', 716
+ def _reduce_215( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 782)
- def _reduce_216(val, _values, result)
- if val[1].instance_of?(AST::ASTArray)
- result = val[1]
- else
- result = ast AST::ASTArray, :children => [val[1]]
- end
-
- result
+module_eval <<'.,.,', 'grammar.ra', 717
+ def _reduce_216( val, _values, result )
+ result = val[1]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 788)
- def _reduce_217(val, _values, result)
- result = ast AST::ASTArray
-
- result
+module_eval <<'.,.,', 'grammar.ra', 718
+ def _reduce_217( val, _values, result )
+ result = ast AST::ASTArray
+ result
end
.,.,
-# reduce 218 omitted
+ # reduce 218 omitted
-# reduce 219 omitted
+ # reduce 219 omitted
-# reduce 220 omitted
+ # reduce 220 omitted
-module_eval(<<'.,.,', 'grammar.ra', 795)
- def _reduce_221(val, _values, result)
- result = nil
- result
+module_eval <<'.,.,', 'grammar.ra', 724
+ def _reduce_221( val, _values, result )
+ result = nil
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 798)
- def _reduce_222(val, _values, result)
- result = ast AST::Regex, :value => val[0][:value]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 729
+ def _reduce_222( val, _values, result )
+ result = ast AST::Regex, :value => val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 802)
- def _reduce_223(val, _values, result)
- if val[1].instance_of?(AST::ASTHash)
+module_eval <<'.,.,', 'grammar.ra', 737
+ def _reduce_223( val, _values, result )
+ if val[1].instance_of?(AST::ASTHash)
result = val[1]
else
result = ast AST::ASTHash, { :value => val[1] }
end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 809)
- def _reduce_224(val, _values, result)
- if val[1].instance_of?(AST::ASTHash)
+module_eval <<'.,.,', 'grammar.ra', 744
+ def _reduce_224( val, _values, result )
+ if val[1].instance_of?(AST::ASTHash)
result = val[1]
else
result = ast AST::ASTHash, { :value => val[1] }
end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 815)
- def _reduce_225(val, _values, result)
- result = ast AST::ASTHash
-
- result
+module_eval <<'.,.,', 'grammar.ra', 746
+ def _reduce_225( val, _values, result )
+ result = ast AST::ASTHash
+ result
end
.,.,
-# reduce 226 omitted
+ # reduce 226 omitted
-module_eval(<<'.,.,', 'grammar.ra', 820)
- def _reduce_227(val, _values, result)
- if val[0].instance_of?(AST::ASTHash)
+module_eval <<'.,.,', 'grammar.ra', 756
+ def _reduce_227( val, _values, result )
+ if val[0].instance_of?(AST::ASTHash)
result = val[0].merge(val[2])
else
result = ast AST::ASTHash, :value => val[0]
result.merge(val[2])
end
-
- result
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 829)
- def _reduce_228(val, _values, result)
- result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
-
- result
+module_eval <<'.,.,', 'grammar.ra', 760
+ def _reduce_228( val, _values, result )
+ result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 832)
- def _reduce_229(val, _values, result)
- result = val[0][:value]
- result
+module_eval <<'.,.,', 'grammar.ra', 761
+ def _reduce_229( val, _values, result )
+ result = val[0][:value]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 833)
- def _reduce_230(val, _values, result)
- result = val[0]
- result
+module_eval <<'.,.,', 'grammar.ra', 762
+ def _reduce_230( val, _values, result )
+ result = val[0]
+ result
end
.,.,
-module_eval(<<'.,.,', 'grammar.ra', 836)
- def _reduce_231(val, _values, result)
- result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
-
- result
+module_eval <<'.,.,', 'grammar.ra', 767
+ def _reduce_231( val, _values, result )
+ result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
+ result
end
.,.,
-# reduce 232 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 841)
- def _reduce_233(val, _values, result)
- result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
+ # reduce 232 omitted
- result
+module_eval <<'.,.,', 'grammar.ra', 772
+ def _reduce_233( val, _values, result )
+ result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
+ result
end
.,.,
-def _reduce_none(val, _values, result)
- val[0]
-end
+ def _reduce_none( val, _values, result )
+ result
+ end
end # class Parser
- end # module Parser
- end # module Puppet
+
+ end # module Parser
+
+end # module Puppet
diff --git a/lib/puppet/parser/parser_support.rb b/lib/puppet/parser/parser_support.rb
index 2b2571d87..b1688cd22 100644
--- a/lib/puppet/parser/parser_support.rb
+++ b/lib/puppet/parser/parser_support.rb
@@ -29,18 +29,9 @@ class Puppet::Parser::Parser
message
end
- # Create an AST array out of all of the args
- def aryfy(*args)
- if args[0].instance_of?(AST::ASTArray)
- result = args.shift
- args.each { |arg|
- result.push arg
- }
- else
- result = ast AST::ASTArray, :children => args
- end
-
- result
+ # Create an AST array containing a single element
+ def aryfy(arg)
+ ast AST::ASTArray, :children => [arg]
end
# Create an AST object, and automatically add the file and line information if
diff --git a/lib/puppet/util/zaml.rb b/lib/puppet/util/zaml.rb
index 8ecc2c8bd..b60e639ff 100644
--- a/lib/puppet/util/zaml.rb
+++ b/lib/puppet/util/zaml.rb
@@ -29,7 +29,8 @@ class ZAML
@result = []
@indent = nil
@structured_key_prefix = nil
- Label.counter_reset
+ @previously_emitted_object = {}
+ @next_free_label_number = 0
emit('--- ')
end
def nested(tail=' ')
@@ -55,31 +56,29 @@ class ZAML
# which we will encounter a reference to the object as we serialize
# it can be handled).
#
- def self.counter_reset
- @@previously_emitted_object = {}
- @@next_free_label_number = 0
- end
+ attr_accessor :this_label_number
def initialize(obj,indent)
@indent = indent
@this_label_number = nil
- @@previously_emitted_object[obj.object_id] = self
end
def to_s
@this_label_number ? ('&id%03d%s' % [@this_label_number, @indent]) : ''
end
def reference
- @this_label_number ||= (@@next_free_label_number += 1)
@reference ||= '*id%03d' % @this_label_number
end
- def self.for(obj)
- @@previously_emitted_object[obj.object_id]
- end
+ end
+ def label_for(obj)
+ @previously_emitted_object[obj.object_id]
end
def new_label_for(obj)
- Label.new(obj,(Hash === obj || Array === obj) ? "#{@indent || "\n"} " : ' ')
+ label = Label.new(obj,(Hash === obj || Array === obj) ? "#{@indent || "\n"} " : ' ')
+ @previously_emitted_object[obj.object_id] = label
+ label
end
def first_time_only(obj)
- if label = Label.for(obj)
+ if label = label_for(obj)
+ label.this_label_number ||= (@next_free_label_number += 1)
emit(label.reference)
else
if @structured_key_prefix and not obj.is_a? String
diff --git a/spec/unit/parser/ast/astarray_spec.rb b/spec/unit/parser/ast/astarray_spec.rb
index f79d6c533..8794848b6 100755
--- a/spec/unit/parser/ast/astarray_spec.rb
+++ b/spec/unit/parser/ast/astarray_spec.rb
@@ -23,43 +23,26 @@ describe Puppet::Parser::AST::ASTArray do
operator.evaluate(@scope)
end
- it "should evaluate childrens of type ASTArray" do
- item1 = stub "item1", :is_a? => true
- item2 = stub "item2"
- item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
- item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
- item2.stubs(:each).yields(item1)
-
- item1.expects(:safeevaluate).with(@scope).returns(123)
-
- operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
- operator.evaluate(@scope).should == [123]
- end
-
- it "should flatten children coming from children ASTArray" do
- item1 = stub "item1", :is_a? => true
- item2 = stub "item2"
- item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
- item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
- item2.stubs(:each).yields([item1])
-
- item1.expects(:safeevaluate).with(@scope).returns(123)
-
- operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
- operator.evaluate(@scope).should == [123]
+ it "should not flatten children coming from children ASTArray" do
+ item = Puppet::Parser::AST::String.new :value => 'foo'
+ inner_array = Puppet::Parser::AST::ASTArray.new :children => [item, item]
+ operator = Puppet::Parser::AST::ASTArray.new :children => [inner_array, inner_array]
+ operator.evaluate(@scope).should == [['foo', 'foo'], ['foo', 'foo']]
end
it "should not flatten the results of children evaluation" do
- item1 = stub "item1", :is_a? => true
- item2 = stub "item2"
- item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
- item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
- item2.stubs(:each).yields([item1])
-
- item1.expects(:safeevaluate).with(@scope).returns([123])
+ item = Puppet::Parser::AST::String.new :value => 'foo'
+ item.stubs(:evaluate).returns(['foo'])
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item, item]
+ operator.evaluate(@scope).should == [['foo'], ['foo']]
+ end
- operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
- operator.evaluate(@scope).should == [[123]]
+ it "should discard nil results from children evaluation" do
+ item1 = Puppet::Parser::AST::String.new :value => 'foo'
+ item2 = Puppet::Parser::AST::String.new :value => 'foo'
+ item2.stubs(:evaluate).returns(nil)
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item1, item2]
+ operator.evaluate(@scope).should == ['foo']
end
it "should return a valid string with to_s" do
diff --git a/spec/unit/parser/ast/resource_spec.rb b/spec/unit/parser/ast/resource_spec.rb
index 6dbfc1f04..a8e783256 100755
--- a/spec/unit/parser/ast/resource_spec.rb
+++ b/spec/unit/parser/ast/resource_spec.rb
@@ -10,14 +10,15 @@ describe Puppet::Parser::AST::Resource do
@compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("mynode"))
@scope = Puppet::Parser::Scope.new(:compiler => @compiler)
@scope.stubs(:resource).returns(stub_everything)
- @resource = ast::Resource.new(:title => @title, :type => "file", :parameters => ast::ASTArray.new(:children => []) )
+ @instance = ast::ResourceInstance.new(:title => @title, :parameters => ast::ASTArray.new(:children => []))
+ @resource = ast::Resource.new(:type => "file", :instances => ast::ASTArray.new(:children => [@instance]))
@resource.stubs(:qualified_type).returns("Resource")
end
it "should evaluate all its parameters" do
param = stub 'param'
param.expects(:safeevaluate).with(@scope).returns Puppet::Parser::Resource::Param.new(:name => "myparam", :value => "myvalue", :source => stub("source"))
- @resource.stubs(:parameters).returns [param]
+ @instance.stubs(:parameters).returns [param]
@resource.evaluate(@scope)
end
@@ -34,7 +35,7 @@ describe Puppet::Parser::AST::Resource do
array = Puppet::Parser::AST::ASTArray.new(:children => titles)
- @resource.title = array
+ @instance.title = array
result = @resource.evaluate(@scope).collect { |r| r.title }
result.should be_include("one")
result.should be_include("two")
@@ -48,12 +49,19 @@ describe Puppet::Parser::AST::Resource do
array = Puppet::Parser::AST::ASTArray.new(:children => titles)
- @resource.title = array
+ @instance.title = array
result = @resource.evaluate(@scope).collect { |r| r.title }
result.should be_include("one")
result.should be_include("two")
end
+ it "should implicitly iterate over instances" do
+ new_title = Puppet::Parser::AST::String.new(:value => "other_title")
+ new_instance = ast::ResourceInstance.new(:title => new_title, :parameters => ast::ASTArray.new(:children => []))
+ @resource.instances.push(new_instance)
+ @resource.evaluate(@scope).collect { |r| r.title }.should == ["mytitle", "other_title"]
+ end
+
it "should handover resources to the compiler" do
titles = []
%w{one two}.each do |title|
@@ -62,7 +70,7 @@ describe Puppet::Parser::AST::Resource do
array = Puppet::Parser::AST::ASTArray.new(:children => titles)
- @resource.title = array
+ @instance.title = array
result = @resource.evaluate(@scope)
result.each do |res|
@@ -98,7 +106,10 @@ describe Puppet::Parser::AST::Resource do
def resource(type, params = nil)
params ||= Puppet::Parser::AST::ASTArray.new(:children => [])
- Puppet::Parser::AST::Resource.new(:type => type, :title => Puppet::Parser::AST::String.new(:value => "myresource"), :parameters => params)
+ instance = Puppet::Parser::AST::ResourceInstance.new(
+ :title => Puppet::Parser::AST::String.new(:value => "myresource"), :parameters => params)
+ Puppet::Parser::AST::Resource.new(:type => type,
+ :instances => Puppet::Parser::AST::ASTArray.new(:children => [instance]))
end
it "should be able to generate resources with fully qualified type information" do
diff --git a/spec/unit/parser/parser_spec.rb b/spec/unit/parser/parser_spec.rb
index 0a61e73de..bf4ef0cf1 100755
--- a/spec/unit/parser/parser_spec.rb
+++ b/spec/unit/parser/parser_spec.rb
@@ -143,7 +143,6 @@ describe Puppet::Parser do
end
it "should create an ast::ResourceReference" do
- ast::Resource.stubs(:new)
ast::ResourceReference.expects(:new).with { |arg|
arg[:line]==1 and arg[:type]=="File" and arg[:title].is_a?(ast::ASTArray)
}
@@ -386,11 +385,11 @@ describe Puppet::Parser do
end
it "should correctly mark exported resources as exported" do
- @parser.parse("@@file { '/file': }").code[0][0].exported.should be_true
+ @parser.parse("@@file { '/file': }").code[0].exported.should be_true
end
it "should correctly mark virtual resources as virtual" do
- @parser.parse("@file { '/file': }").code[0][0].virtual.should be_true
+ @parser.parse("@file { '/file': }").code[0].virtual.should be_true
end
end
diff --git a/spec/unit/util/zaml_spec.rb b/spec/unit/util/zaml_spec.rb
index 4de57e6d3..14cf94f36 100644
--- a/spec/unit/util/zaml_spec.rb
+++ b/spec/unit/util/zaml_spec.rb
@@ -34,5 +34,30 @@ describe "Pure ruby yaml implementation" do
lambda { YAML.load(o.to_yaml) }.should_not raise_error
end
}
+
+ it "should emit proper labels and backreferences for common objects" do
+ # Note: this test makes assumptions about the names ZAML chooses
+ # for labels.
+ x = [1, 2]
+ y = [3, 4]
+ z = [x, y, x, y]
+ z.to_yaml.should == "--- \n - &id001\n - 1\n - 2\n - &id002\n - 3\n - 4\n - *id001\n - *id002"
+ z2 = YAML.load(z.to_yaml)
+ z2.should == z
+ z2[0].should equal(z2[2])
+ z2[1].should equal(z2[3])
+ end
+
+ it "should emit proper labels and backreferences for recursive objects" do
+ x = [1, 2]
+ x << x
+ x.to_yaml.should == "--- &id001\n \n - 1\n - 2\n - *id001"
+ x2 = YAML.load(x.to_yaml)
+ x2.should be_a(Array)
+ x2.length.should == 3
+ x2[0].should == 1
+ x2[1].should == 2
+ x2[2].should equal(x2)
+ end
end
diff --git a/test/language/parser.rb b/test/language/parser.rb
index 6599757f0..6f3d751c2 100755
--- a/test/language/parser.rb
+++ b/test/language/parser.rb
@@ -477,9 +477,11 @@ file { "/tmp/yayness":
end
assert_instance_of(AST::ASTArray, ret.hostclass("").code)
- resdef = ret.hostclass("").code[0][0]
+ resdef = ret.hostclass("").code[0]
assert_instance_of(AST::Resource, resdef)
- assert_equal("/tmp/testing", resdef.title.value)
+ assert_instance_of(AST::ASTArray, resdef.instances)
+ assert_equal(1, resdef.instances.children.length)
+ assert_equal("/tmp/testing", resdef.instances[0].title.value)
# We always get an astarray back, so...
check.call(resdef, "simple resource")
diff --git a/test/lib/puppettest/parsertesting.rb b/test/lib/puppettest/parsertesting.rb
index bd04c1ec5..411bad37a 100644
--- a/test/lib/puppettest/parsertesting.rb
+++ b/test/lib/puppettest/parsertesting.rb
@@ -94,16 +94,15 @@ module PuppetTest::ParserTesting
def resourcedef(type, title, params)
title = stringobj(title) unless title.is_a?(AST)
+ instance = AST::ResourceInstance.new(:title => title, :parameters => resourceparams(params))
assert_nothing_raised("Could not create #{type} #{title}") {
return AST::Resource.new(
:file => __FILE__,
:line => __LINE__,
- :title => title,
:type => type,
-
- :parameters => resourceinst(params)
+ :instances => AST::ASTArray.new(:children => [instance])
)
}
end
@@ -122,9 +121,7 @@ module PuppetTest::ParserTesting
:file => __FILE__,
:line => __LINE__,
:object => resourceref(type, title),
-
- :type => type,
- :parameters => resourceinst(params)
+ :parameters => resourceparams(params)
)
}
end
@@ -197,13 +194,13 @@ module PuppetTest::ParserTesting
}
end
- def resourceinst(hash)
+ def resourceparams(hash)
assert_nothing_raised("Could not create resource instance") {
params = hash.collect { |param, value|
resourceparam(param, value)
}
- return AST::ResourceInstance.new(
+ return AST::ASTArray.new(
:file => tempfile,
diff --git a/test/ral/providers/cron/crontab.rb b/test/ral/providers/cron/crontab.rb
index 0c87a5bba..be2af1e16 100755
--- a/test/ral/providers/cron/crontab.rb
+++ b/test/ral/providers/cron/crontab.rb
@@ -97,7 +97,10 @@ class TestCronParsedProvider < Test::Unit::TestCase
# Then do them all at once.
records = []
text = ""
- sample_records.each do |name, options|
+ # Sort sample_records so that the :empty entry does not come last
+ # (if it does, the test will fail because the empty last line will
+ # be ignored)
+ sample_records.sort { |a, b| a.first.to_s <=> b.first.to_s }.each do |name, options|
records << options[:record]
text += options[:text] + "\n"
end