diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-07-10 15:31:19 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-07-10 15:31:19 +0000 |
commit | 7a71db875d8833065dbefdaf721f74a65414478c (patch) | |
tree | 12afcec70d8e6d88cde02f20186a39b05842c663 | |
parent | e662c869bf8b2924c12d4ff6f999f0744779257d (diff) | |
download | puppet-7a71db875d8833065dbefdaf721f74a65414478c.tar.gz puppet-7a71db875d8833065dbefdaf721f74a65414478c.tar.xz puppet-7a71db875d8833065dbefdaf721f74a65414478c.zip |
Adding patch by Valentin Vidic to add the "+>" syntax for adding values to parameters
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2670 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | lib/puppet/parser/ast/resourceparam.rb | 5 | ||||
-rw-r--r-- | lib/puppet/parser/grammar.ra | 26 | ||||
-rw-r--r-- | lib/puppet/parser/lexer.rb | 1 | ||||
-rw-r--r-- | lib/puppet/parser/parser.rb | 1215 | ||||
-rw-r--r-- | lib/puppet/parser/resource.rb | 5 | ||||
-rw-r--r-- | lib/puppet/parser/resource/param.rb | 2 | ||||
-rwxr-xr-x | test/language/resource.rb | 25 |
8 files changed, 699 insertions, 583 deletions
@@ -1,3 +1,6 @@ + Added patch by Valentin Vidic that adds the '+>' syntax to + resources, so parameter values can be added to. + The configuration client now pulls libraries down to $libdir, and all autoloading is done from there with full support for any reloadable file, such as types and providers. (#621) diff --git a/lib/puppet/parser/ast/resourceparam.rb b/lib/puppet/parser/ast/resourceparam.rb index 317820a3c..d87720160 100644 --- a/lib/puppet/parser/ast/resourceparam.rb +++ b/lib/puppet/parser/ast/resourceparam.rb @@ -3,7 +3,7 @@ require 'puppet/parser/ast/branch' class Puppet::Parser::AST # The AST object for the parameters inside ResourceDefs and Selectors. class ResourceParam < AST::Branch - attr_accessor :value, :param + attr_accessor :value, :param, :add def each [@param,@value].each { |child| yield child } @@ -16,7 +16,8 @@ class Puppet::Parser::AST return Puppet::Parser::Resource::Param.new( :name => @param, :value => @value.safeevaluate(:scope => scope), - :source => scope.source, :line => self.line, :file => self.file + :source => scope.source, :line => self.line, :file => self.file, + :add => self.add ) end diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra index 0d7908e13..c990a9199 100644 --- a/lib/puppet/parser/grammar.ra +++ b/lib/puppet/parser/grammar.ra @@ -9,7 +9,7 @@ token FALSE EQUALS LESSEQUAL NOTEQUAL DOT COLON TYPE LLCOLLECT RRCOLLECT token QMARK LPAREN RPAREN ISEQUAL GREATEREQUAL GREATERTHAN LESSTHAN token IF ELSE IMPORT DEFINE ELSIF VARIABLE CLASS INHERITS NODE BOOLEAN token NAME SEMIC CASE DEFAULT AT LCOLLECT RCOLLECT CLASSNAME CLASSREF -token NOT OR AND UNDEF +token NOT OR AND UNDEF PARROW rule program: statements { @@ -142,7 +142,7 @@ resource: classname LBRACE resourceinstances endsemi RBRACE { } # Override a value set elsewhere in the configuration. -resourceoverride: resourceref LBRACE params endcomma RBRACE { +resourceoverride: resourceref LBRACE anyparams endcomma RBRACE { result = ast AST::ResourceOverride, :object => val[0], :params => val[2] } @@ -310,6 +310,28 @@ param: NAME FARROW rvalue { result = ast AST::ResourceParam, :param => val[0], :value => val[2] } +addparam: NAME PARROW rvalue { + result = ast AST::ResourceParam, :param => val[0], :value => val[2], + :add => true +} + +anyparam: param + | addparam + +anyparams: # nothing +{ + result = ast AST::ASTArray +} + | anyparam { result = 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) diff --git a/lib/puppet/parser/lexer.rb b/lib/puppet/parser/lexer.rb index daa75f236..a2de01779 100644 --- a/lib/puppet/parser/lexer.rb +++ b/lib/puppet/parser/lexer.rb @@ -46,6 +46,7 @@ module Puppet %r{\?} => :QMARK, %r{\\} => :BACKSLASH, %r{=>} => :FARROW, + %r{\+>} => :PARROW, %r{[a-z][-\w]*} => :NAME, %r{([a-z][-\w]*::)+[a-z][-\w]*} => :CLASSNAME, %r{([A-Z][-\w]*::)+[A-Z][-\w]*} => :CLASSREF, diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb index e4752ddf4..7a97e2bac 100644 --- a/lib/puppet/parser/parser.rb +++ b/lib/puppet/parser/parser.rb @@ -29,7 +29,7 @@ module Puppet class Parser < Racc::Parser -module_eval <<'..end grammar.ra modeval..id3cb29d1771', 'grammar.ra', 615 +module_eval <<'..end grammar.ra modeval..ida8beb1d339', 'grammar.ra', 637 require 'puppet/parser/functions' attr_reader :file, :interp @@ -261,504 +261,520 @@ end # $Id$ -..end grammar.ra modeval..id3cb29d1771 +..end grammar.ra modeval..ida8beb1d339 ##### racc 1.4.5 generates ### racc_reduce_table = [ 0, 0, :racc_error, - 1, 52, :_reduce_1, - 1, 52, :_reduce_none, + 1, 53, :_reduce_1, 1, 53, :_reduce_none, - 2, 53, :_reduce_4, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 4, 63, :_reduce_17, - 3, 63, :_reduce_18, - 2, 63, :_reduce_19, - 1, 68, :_reduce_none, - 1, 68, :_reduce_none, + 1, 54, :_reduce_none, + 2, 54, :_reduce_4, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 1, 56, :_reduce_none, + 4, 64, :_reduce_17, + 3, 64, :_reduce_18, + 2, 64, :_reduce_19, + 1, 69, :_reduce_none, 1, 69, :_reduce_none, - 3, 69, :_reduce_23, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_none, - 1, 71, :_reduce_31, 1, 70, :_reduce_none, - 3, 70, :_reduce_33, - 5, 56, :_reduce_34, - 5, 56, :_reduce_35, - 5, 56, :_reduce_36, - 5, 67, :_reduce_37, - 2, 57, :_reduce_38, - 1, 85, :_reduce_39, - 2, 85, :_reduce_40, - 2, 58, :_reduce_41, - 1, 86, :_reduce_none, - 1, 86, :_reduce_none, - 3, 87, :_reduce_44, - 3, 87, :_reduce_45, + 3, 70, :_reduce_23, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_none, + 1, 72, :_reduce_31, + 1, 71, :_reduce_none, + 3, 71, :_reduce_33, + 5, 57, :_reduce_34, + 5, 57, :_reduce_35, + 5, 57, :_reduce_36, + 5, 68, :_reduce_37, + 2, 58, :_reduce_38, + 1, 87, :_reduce_39, + 2, 87, :_reduce_40, + 2, 59, :_reduce_41, 1, 88, :_reduce_none, 1, 88, :_reduce_none, - 3, 88, :_reduce_48, - 1, 89, :_reduce_none, - 3, 89, :_reduce_50, + 3, 89, :_reduce_44, + 3, 89, :_reduce_45, 1, 90, :_reduce_none, 1, 90, :_reduce_none, - 3, 91, :_reduce_53, - 3, 91, :_reduce_54, + 3, 90, :_reduce_48, + 1, 91, :_reduce_none, + 3, 91, :_reduce_50, 1, 92, :_reduce_none, 1, 92, :_reduce_none, - 4, 94, :_reduce_57, - 1, 81, :_reduce_none, - 3, 81, :_reduce_59, - 0, 82, :_reduce_none, + 3, 93, :_reduce_53, + 3, 93, :_reduce_54, + 1, 94, :_reduce_none, + 1, 94, :_reduce_none, + 4, 96, :_reduce_57, 1, 82, :_reduce_none, - 1, 96, :_reduce_62, - 1, 72, :_reduce_63, - 1, 74, :_reduce_64, + 3, 82, :_reduce_59, + 0, 83, :_reduce_none, + 1, 83, :_reduce_none, + 1, 98, :_reduce_62, + 1, 73, :_reduce_63, + 1, 75, :_reduce_64, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 1, 97, :_reduce_none, + 3, 60, :_reduce_71, + 0, 84, :_reduce_72, + 1, 84, :_reduce_73, + 3, 84, :_reduce_74, + 3, 101, :_reduce_75, + 3, 102, :_reduce_76, + 1, 103, :_reduce_none, + 1, 103, :_reduce_none, + 0, 86, :_reduce_79, + 1, 86, :_reduce_80, + 3, 86, :_reduce_81, + 1, 104, :_reduce_none, + 3, 104, :_reduce_83, 1, 95, :_reduce_none, 1, 95, :_reduce_none, 1, 95, :_reduce_none, 1, 95, :_reduce_none, 1, 95, :_reduce_none, 1, 95, :_reduce_none, - 3, 59, :_reduce_71, - 0, 83, :_reduce_72, - 1, 83, :_reduce_73, - 3, 83, :_reduce_74, - 3, 99, :_reduce_75, 1, 100, :_reduce_none, - 3, 100, :_reduce_77, - 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, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 1, 98, :_reduce_none, - 4, 76, :_reduce_94, - 3, 76, :_reduce_95, - 1, 78, :_reduce_96, - 1, 78, :_reduce_97, - 1, 75, :_reduce_98, - 4, 79, :_reduce_99, - 4, 79, :_reduce_100, - 6, 61, :_reduce_101, - 0, 103, :_reduce_none, - 4, 103, :_reduce_103, - 1, 102, :_reduce_none, - 5, 60, :_reduce_105, - 1, 104, :_reduce_none, - 2, 104, :_reduce_107, - 5, 105, :_reduce_108, - 4, 105, :_reduce_109, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 1, 100, :_reduce_none, + 4, 77, :_reduce_100, + 3, 77, :_reduce_101, + 1, 79, :_reduce_102, + 1, 79, :_reduce_103, + 1, 76, :_reduce_104, + 4, 80, :_reduce_105, + 4, 80, :_reduce_106, + 6, 62, :_reduce_107, + 0, 107, :_reduce_none, + 4, 107, :_reduce_109, 1, 106, :_reduce_none, - 3, 106, :_reduce_111, - 3, 77, :_reduce_112, + 5, 61, :_reduce_111, 1, 108, :_reduce_none, - 4, 108, :_reduce_114, + 2, 108, :_reduce_113, + 5, 109, :_reduce_114, + 4, 109, :_reduce_115, 1, 110, :_reduce_none, - 3, 110, :_reduce_116, - 3, 109, :_reduce_117, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_none, - 1, 107, :_reduce_125, - 1, 111, :_reduce_126, - 3, 111, :_reduce_127, - 2, 62, :_reduce_128, - 6, 64, :_reduce_129, - 5, 64, :_reduce_130, - 6, 65, :_reduce_131, - 5, 65, :_reduce_132, - 6, 66, :_reduce_133, - 5, 66, :_reduce_134, - 1, 80, :_reduce_none, - 1, 80, :_reduce_none, - 1, 114, :_reduce_none, - 3, 114, :_reduce_138, - 1, 116, :_reduce_none, - 1, 116, :_reduce_none, - 1, 116, :_reduce_none, - 1, 116, :_reduce_none, - 0, 54, :_reduce_143, - 0, 117, :_reduce_144, + 3, 110, :_reduce_117, + 3, 78, :_reduce_118, 1, 112, :_reduce_none, - 3, 112, :_reduce_146, - 3, 112, :_reduce_147, + 4, 112, :_reduce_120, + 1, 114, :_reduce_none, + 3, 114, :_reduce_122, + 3, 113, :_reduce_123, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_131, + 1, 115, :_reduce_132, + 3, 115, :_reduce_133, + 2, 63, :_reduce_134, + 6, 65, :_reduce_135, + 5, 65, :_reduce_136, + 6, 66, :_reduce_137, + 5, 66, :_reduce_138, + 6, 67, :_reduce_139, + 5, 67, :_reduce_140, + 1, 81, :_reduce_none, + 1, 81, :_reduce_none, 1, 118, :_reduce_none, - 3, 118, :_reduce_149, - 3, 119, :_reduce_150, - 1, 119, :_reduce_151, - 3, 119, :_reduce_152, - 1, 119, :_reduce_153, - 1, 115, :_reduce_none, - 2, 115, :_reduce_155, - 1, 113, :_reduce_none, - 2, 113, :_reduce_157, + 3, 118, :_reduce_144, 1, 120, :_reduce_none, 1, 120, :_reduce_none, - 1, 73, :_reduce_160, - 3, 97, :_reduce_161, - 2, 97, :_reduce_162, - 1, 101, :_reduce_none, - 1, 101, :_reduce_none, - 0, 84, :_reduce_none, - 1, 84, :_reduce_166 ] - -racc_reduce_n = 167 - -racc_shift_n = 268 + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 0, 55, :_reduce_149, + 0, 121, :_reduce_150, + 1, 116, :_reduce_none, + 3, 116, :_reduce_152, + 3, 116, :_reduce_153, + 1, 122, :_reduce_none, + 3, 122, :_reduce_155, + 3, 123, :_reduce_156, + 1, 123, :_reduce_157, + 3, 123, :_reduce_158, + 1, 123, :_reduce_159, + 1, 119, :_reduce_none, + 2, 119, :_reduce_161, + 1, 117, :_reduce_none, + 2, 117, :_reduce_163, + 1, 124, :_reduce_none, + 1, 124, :_reduce_none, + 1, 74, :_reduce_166, + 3, 99, :_reduce_167, + 2, 99, :_reduce_168, + 1, 105, :_reduce_none, + 1, 105, :_reduce_none, + 0, 85, :_reduce_none, + 1, 85, :_reduce_172 ] + +racc_reduce_n = 173 + +racc_shift_n = 276 racc_action_table = [ - 70, 51, 54, 87, 202, 90, 70, 51, 54, 36, - 37, 204, 192, 105, 48, 153, 114, 193, 36, 37, - 203, 93, 60, 34, 70, 51, 54, 164, 125, 91, - 4, 43, 200, 201, 125, 53, 109, 43, 102, 62, - 60, 53, 56, -124, 39, 62, 169, 41, 58, 70, - 51, 54, 235, 39, 58, 43, 41, 226, -119, 53, - 56, 36, 37, 62, 225, 60, 168, 70, 51, 54, - 128, 139, 58, 70, 51, 54, 192, 200, 201, 34, - 43, 193, 43, 60, 53, 56, 4, 144, 62, 60, - -121, 48, 51, 54, 139, -135, 39, 58, 43, 41, - -118, 232, 53, 56, 43, 43, 62, 60, 53, 56, - 144, 45, 62, 139, 231, 58, 70, 51, 54, 82, - 139, 58, 43, 83, 43, 162, 53, 56, 34, 144, - 62, 43, 60, 205, 46, 4, 144, 200, 201, 58, - 70, 51, 54, 34, 181, 130, 150, 43, 182, 183, - 4, 53, 56, 51, 54, 62, 60, -120, 70, 51, - 54, 51, 54, 189, 58, 70, 51, 54, 182, 250, - 155, 43, -121, 155, 114, 53, 56, 197, -118, 62, - -122, 60, 160, 70, 51, 54, -120, -123, 58, 43, - -119, 209, 100, 53, 165, 126, 43, 62, 213, 60, - 53, 56, 51, 54, 62, -121, 58, 70, 51, 54, - 215, 100, 125, 58, 43, 48, 82, 114, 53, 56, - 217, 82, 62, 60, 220, 70, 51, 54, -118, -119, - 124, 58, 43, 51, 54, 157, 53, 165, 43, 123, - 62, 60, 53, 56, 51, 54, 62, 228, 114, 58, - 229, 51, 54, 230, -123, 58, 43, -120, 155, 114, - 53, 56, 153, 43, 62, 152, 114, 53, 165, 51, - 54, 62, 174, 58, 43, 51, 54, 100, 53, 165, - 58, 43, 62, 96, 114, 53, 165, 163, 155, 62, - 114, 58, 131, 51, 54, 136, 253, 254, 58, 43, - 135, 88, 83, 53, 165, 43, 134, 62, 114, 53, - 165, 51, 54, 62, 100, 224, 58, 51, 54, -120, - -118, -121, 58, 43, -119, -123, 114, 53, 165, 42, - 261, 62, 60, 51, 54, 51, 54, 120, -166, 262, - 58, 43, 35, -122, 32, 53, 165, 43, 60, 62, - 114, 53, 56, 170, 227, 62, nil, nil, 58, 46, - nil, nil, nil, 43, 58, 43, nil, 53, 56, 53, - 165, 62, 267, 62, nil, 46, nil, 46, nil, nil, - 58, nil, 58, 19, nil, nil, nil, nil, nil, nil, - nil, 233, nil, 16, nil, 21, 25, nil, 1, 5, - nil, 10, 19, 14, nil, 18, nil, 27, nil, nil, - 4, nil, 16, nil, 21, 25, 222, 1, 5, nil, - 10, nil, 14, nil, 18, nil, 27, 19, nil, 4, - nil, nil, nil, nil, nil, 245, nil, 16, nil, 21, - 25, nil, 1, 5, nil, 10, 19, 14, nil, 18, - nil, 27, nil, nil, 4, nil, 16, nil, 21, 25, - 246, 1, 5, nil, 10, nil, 14, nil, 18, nil, - 27, 19, nil, 4, nil, nil, nil, nil, nil, 211, - nil, 16, nil, 21, 25, nil, 1, 5, nil, 10, - 19, 14, nil, 18, nil, 27, nil, nil, 4, nil, - 16, nil, 21, 25, 266, 1, 5, nil, 10, nil, - 14, nil, 18, nil, 27, 19, nil, 4, nil, nil, - nil, nil, nil, 206, nil, 16, nil, 21, 25, nil, - 1, 5, nil, 10, 19, 14, nil, 18, nil, 27, - nil, nil, 4, nil, 16, nil, 21, 25, 263, 1, - 5, nil, 10, nil, 14, nil, 18, nil, 27, 19, - nil, 4, nil, nil, nil, nil, nil, 259, nil, 16, - nil, 21, 25, nil, 1, 5, nil, 10, 19, 14, - nil, 18, nil, 27, nil, nil, 4, nil, 16, nil, - 21, 25, nil, 1, 5, nil, 10, 19, 14, nil, - 18, nil, 27, nil, nil, 4, nil, 16, nil, 21, - 25, nil, 1, 5, nil, 10, 19, 14, nil, 18, - nil, 27, nil, nil, 4, nil, 16, nil, 21, 25, - nil, 1, 5, nil, 10, 19, 14, nil, 18, nil, - 27, nil, nil, 4, nil, 16, nil, 21, 25, nil, - 1, 5, nil, 10, 19, 14, nil, 18, nil, 27, - nil, nil, 4, nil, 16, nil, 21, 25, nil, 1, - 5, nil, 10, nil, 14, nil, 18, nil, 27, nil, - nil, 4 ] + 75, 54, 58, 93, 169, 157, 75, 54, 58, 38, + 39, 159, 206, 112, 169, -126, 64, 210, 38, 39, + 158, 176, 64, 37, 75, 54, 58, 138, 34, 177, + 5, 46, 212, 154, 156, 57, 60, 46, 110, 66, + 126, 57, 60, 143, 40, 66, 168, 41, 62, 75, + 54, 58, 35, 40, 62, 46, 41, 154, 156, 57, + 123, 52, 193, 66, 249, 64, 187, 75, 54, 58, + 141, 37, 62, 75, 54, 58, -126, 248, 5, 96, + 46, 138, 192, 64, 57, 60, -128, 242, 66, 126, + 46, 75, 54, 58, 241, 100, 206, 62, 46, 54, + 58, 210, 57, 60, 46, -127, 66, 64, 57, 182, + 38, 39, 66, 175, 126, 62, 52, 54, 58, 194, + -141, 62, 46, 196, 197, -129, 57, 60, 37, 46, + 66, 163, 64, 57, 182, 5, 48, 66, 96, 62, + 75, 54, 58, 37, -125, 40, 62, 46, 41, 46, + 5, 57, 60, 160, 100, 66, 64, 154, 156, 50, + 203, 75, 54, 58, 62, 169, 85, 75, 54, 58, + 86, 46, 175, 96, -124, 57, 60, 64, 172, 66, + 54, 58, 211, 64, 46, 75, 54, 58, 62, 100, + 54, 58, 46, 196, 259, -126, 57, 60, 46, 171, + 66, 64, 57, 60, -127, -124, 66, 96, 85, 62, + 75, 54, 58, 139, -124, 62, 46, 137, 46, 228, + 57, 60, 116, 100, 66, -126, 64, 231, 75, 54, + 58, 232, 146, 62, 75, 54, 58, 146, 235, 138, + 135, 46, 238, -128, 64, 57, 60, 85, 116, 66, + 64, 54, 58, 54, 58, -127, 166, 107, 62, 46, + 245, 246, 247, 57, 60, 46, 126, 66, 126, 57, + 60, -125, 250, 66, 164, -125, 62, 54, 58, 54, + 58, 46, 62, 46, -124, 57, 182, 57, 182, 66, + -127, 66, 126, -125, 64, -129, -130, 91, 62, 189, + 62, 54, 58, 54, 58, 243, 175, 46, 90, 46, + 144, 57, 182, 57, 60, 66, 126, 66, 64, 54, + 58, 50, 260, 133, 62, 262, 62, 86, 152, 54, + 58, 46, 183, 46, 126, 57, 182, 57, 60, 66, + 149, 66, 148, 45, 126, 50, 44, 269, 62, 46, + 62, -172, 270, 57, 182, 54, 58, 66, 146, 46, + -129, 50, 32, 57, 182, 52, 62, 66, nil, nil, + 126, 54, 58, nil, nil, nil, 62, nil, nil, nil, + nil, nil, nil, nil, nil, 46, 126, nil, nil, 57, + 182, nil, nil, 66, nil, nil, 275, nil, nil, nil, + nil, 46, 62, nil, nil, 57, 182, 21, nil, 66, + nil, nil, nil, nil, nil, 240, nil, 18, 62, 23, + 25, nil, 1, 6, nil, 11, 21, 16, nil, 20, + nil, 26, nil, nil, 5, nil, 18, nil, 23, 25, + 251, 1, 6, nil, 11, nil, 16, nil, 20, nil, + 26, 21, nil, 5, nil, nil, nil, nil, nil, 253, + nil, 18, nil, 23, 25, nil, 1, 6, nil, 11, + 21, 16, nil, 20, nil, 26, nil, nil, 5, nil, + 18, nil, 23, 25, 224, 1, 6, nil, 11, nil, + 16, nil, 20, nil, 26, 21, nil, 5, nil, nil, + nil, nil, nil, 222, nil, 18, nil, 23, 25, nil, + 1, 6, nil, 11, 21, 16, nil, 20, nil, 26, + nil, nil, 5, nil, 18, nil, 23, 25, 254, 1, + 6, nil, 11, nil, 16, nil, 20, nil, 26, 21, + nil, 5, nil, nil, nil, nil, nil, 274, nil, 18, + nil, 23, 25, nil, 1, 6, nil, 11, 21, 16, + nil, 20, nil, 26, nil, nil, 5, nil, 18, nil, + 23, 25, 267, 1, 6, nil, 11, nil, 16, nil, + 20, nil, 26, 21, nil, 5, nil, nil, nil, nil, + nil, 271, nil, 18, nil, 23, 25, nil, 1, 6, + nil, 11, 21, 16, nil, 20, nil, 26, nil, nil, + 5, nil, 18, nil, 23, 25, nil, 1, 6, nil, + 11, 21, 16, nil, 20, nil, 26, nil, nil, 5, + nil, 18, nil, 23, 25, nil, 1, 6, nil, 11, + 21, 16, nil, 20, nil, 26, nil, nil, 5, nil, + 18, nil, 23, 25, nil, 1, 6, nil, 11, 21, + 16, nil, 20, nil, 26, nil, nil, 5, nil, 18, + nil, 23, 25, nil, 1, 6, nil, 11, 21, 16, + nil, 20, nil, 26, nil, nil, 5, nil, 18, nil, + 23, 25, nil, 1, 6, nil, 11, nil, 16, nil, + 20, nil, 26, nil, nil, 5 ] racc_action_check = [ - 42, 42, 42, 22, 140, 26, 48, 48, 48, 105, - 105, 143, 136, 38, 56, 109, 42, 136, 10, 10, - 143, 27, 48, 22, 82, 82, 82, 122, 109, 26, - 22, 42, 140, 140, 56, 42, 42, 48, 38, 42, - 82, 48, 48, 75, 105, 48, 124, 105, 42, 180, - 180, 180, 198, 10, 48, 82, 10, 187, 116, 82, - 82, 102, 102, 82, 187, 180, 124, 70, 70, 70, - 70, 90, 82, 32, 32, 32, 232, 198, 198, 25, - 180, 232, 90, 70, 180, 180, 25, 90, 180, 32, - 74, 14, 14, 14, 139, 14, 102, 180, 70, 102, - 73, 195, 70, 70, 32, 139, 70, 14, 32, 32, - 139, 14, 32, 199, 195, 70, 16, 16, 16, 19, - 91, 32, 14, 19, 199, 115, 14, 14, 5, 199, - 14, 91, 16, 148, 14, 5, 91, 148, 148, 14, - 18, 18, 18, 96, 127, 72, 96, 16, 127, 127, - 96, 16, 16, 21, 21, 16, 18, 69, 160, 160, - 160, 134, 134, 132, 16, 229, 229, 229, 218, 218, - 133, 18, 113, 112, 160, 18, 18, 137, 110, 18, - 67, 229, 108, 153, 153, 153, 107, 66, 18, 160, - 65, 154, 155, 160, 160, 64, 229, 160, 159, 153, - 229, 229, 226, 226, 229, 61, 160, 220, 220, 220, - 161, 162, 165, 229, 153, 168, 169, 226, 153, 153, - 171, 60, 153, 220, 177, 228, 228, 228, 59, 76, - 55, 153, 226, 131, 131, 103, 226, 226, 220, 52, - 226, 228, 220, 220, 174, 174, 220, 192, 131, 226, - 193, 248, 248, 194, 78, 220, 228, 47, 101, 174, - 228, 228, 100, 131, 228, 97, 248, 131, 131, 126, - 126, 131, 126, 228, 174, 204, 204, 35, 174, 174, - 131, 248, 174, 33, 126, 248, 248, 121, 216, 248, - 204, 174, 81, 203, 203, 89, 222, 225, 248, 126, - 88, 24, 87, 126, 126, 204, 84, 126, 203, 204, - 204, 185, 185, 204, 83, 185, 126, 45, 45, 238, - 240, 241, 204, 203, 242, 243, 185, 203, 203, 11, - 249, 203, 45, 125, 125, 123, 123, 45, 250, 253, - 203, 185, 8, 80, 1, 185, 185, 45, 125, 185, - 123, 45, 45, 125, 190, 45, nil, nil, 185, 45, - nil, nil, nil, 125, 45, 123, nil, 125, 125, 123, - 123, 125, 265, 123, nil, 125, nil, 123, nil, nil, - 125, nil, 123, 265, nil, nil, nil, nil, nil, nil, - nil, 197, nil, 265, nil, 265, 265, nil, 265, 265, - nil, 265, 197, 265, nil, 265, nil, 265, nil, nil, - 265, nil, 197, nil, 197, 197, 184, 197, 197, nil, - 197, nil, 197, nil, 197, nil, 197, 184, nil, 197, - nil, nil, nil, nil, nil, 207, nil, 184, nil, 184, - 184, nil, 184, 184, nil, 184, 207, 184, nil, 184, - nil, 184, nil, nil, 184, nil, 207, nil, 207, 207, - 212, 207, 207, nil, 207, nil, 207, nil, 207, nil, - 207, 212, nil, 207, nil, nil, nil, nil, nil, 157, - nil, 212, nil, 212, 212, nil, 212, 212, nil, 212, - 157, 212, nil, 212, nil, 212, nil, nil, 212, nil, - 157, nil, 157, 157, 264, 157, 157, nil, 157, nil, - 157, nil, 157, nil, 157, 264, nil, 157, nil, nil, - nil, nil, nil, 152, nil, 264, nil, 264, 264, nil, - 264, 264, nil, 264, 152, 264, nil, 264, nil, 264, - nil, nil, 264, nil, 152, nil, 152, 152, 254, 152, - 152, nil, 152, nil, 152, nil, 152, nil, 152, 254, - nil, 152, nil, nil, nil, nil, nil, 234, nil, 254, - nil, 254, 254, nil, 254, 254, nil, 254, 234, 254, - nil, 254, nil, 254, nil, nil, 254, nil, 234, nil, - 234, 234, nil, 234, 234, nil, 234, 262, 234, nil, - 234, nil, 234, nil, nil, 234, nil, 262, nil, 262, - 262, nil, 262, 262, nil, 262, 29, 262, nil, 262, - nil, 262, nil, nil, 262, nil, 29, nil, 29, 29, - nil, 29, 29, nil, 29, 130, 29, nil, 29, nil, - 29, nil, nil, 29, nil, 130, nil, 130, 130, nil, - 130, 130, nil, 130, 0, 130, nil, 130, nil, 130, - nil, nil, 130, nil, 0, nil, 0, 0, nil, 0, - 0, nil, 0, nil, 0, nil, 0, nil, 0, nil, - nil, 0 ] + 195, 195, 195, 29, 116, 98, 85, 85, 85, 110, + 110, 102, 249, 42, 123, 215, 195, 249, 112, 112, + 102, 131, 85, 29, 45, 45, 45, 123, 2, 134, + 29, 195, 153, 98, 98, 195, 195, 85, 42, 195, + 45, 85, 85, 78, 110, 85, 116, 110, 195, 52, + 52, 52, 2, 112, 85, 45, 112, 153, 153, 45, + 45, 60, 139, 45, 208, 52, 136, 75, 75, 75, + 75, 6, 45, 172, 172, 172, 76, 208, 6, 35, + 52, 60, 139, 75, 52, 52, 71, 199, 52, 172, + 35, 169, 169, 169, 199, 35, 149, 52, 75, 158, + 158, 149, 75, 75, 172, 128, 75, 169, 172, 172, + 11, 11, 172, 127, 158, 75, 16, 16, 16, 142, + 16, 172, 169, 142, 142, 70, 169, 169, 107, 158, + 169, 107, 16, 158, 158, 107, 16, 158, 96, 169, + 18, 18, 18, 25, 68, 11, 158, 16, 11, 96, + 25, 16, 16, 105, 96, 16, 18, 105, 105, 16, + 145, 20, 20, 20, 16, 146, 21, 250, 250, 250, + 21, 18, 147, 34, 125, 18, 18, 20, 124, 18, + 23, 23, 151, 250, 34, 246, 246, 246, 18, 34, + 148, 148, 20, 237, 237, 122, 20, 20, 250, 117, + 20, 246, 250, 250, 67, 65, 250, 155, 64, 20, + 168, 168, 168, 61, 79, 250, 246, 59, 155, 170, + 246, 246, 171, 155, 246, 53, 168, 173, 32, 32, + 32, 174, 175, 246, 235, 235, 235, 176, 178, 182, + 49, 168, 190, 47, 32, 168, 168, 193, 44, 168, + 235, 159, 159, 144, 144, 80, 111, 36, 168, 32, + 204, 206, 207, 32, 32, 235, 159, 32, 144, 235, + 235, 81, 210, 235, 108, 130, 32, 242, 242, 138, + 138, 159, 235, 144, 216, 159, 159, 144, 144, 159, + 218, 144, 242, 219, 138, 220, 82, 28, 159, 138, + 144, 201, 201, 48, 48, 201, 234, 242, 26, 138, + 84, 242, 242, 138, 138, 242, 201, 138, 48, 137, + 137, 138, 240, 48, 242, 241, 138, 93, 91, 135, + 135, 201, 135, 48, 137, 201, 201, 48, 48, 201, + 89, 48, 88, 14, 135, 48, 12, 258, 201, 137, + 48, 259, 260, 137, 137, 183, 183, 137, 86, 135, + 83, 137, 1, 135, 135, 192, 137, 135, nil, nil, + 183, 257, 257, nil, nil, nil, 135, nil, nil, nil, + nil, nil, nil, nil, nil, 183, 257, nil, nil, 183, + 183, nil, nil, 183, nil, nil, 273, nil, nil, nil, + nil, 257, 183, nil, nil, 257, 257, 273, nil, 257, + nil, nil, nil, nil, nil, 198, nil, 273, 257, 273, + 273, nil, 273, 273, nil, 273, 198, 273, nil, 273, + nil, 273, nil, nil, 273, nil, 198, nil, 198, 198, + 211, 198, 198, nil, 198, nil, 198, nil, 198, nil, + 198, 211, nil, 198, nil, nil, nil, nil, nil, 223, + nil, 211, nil, 211, 211, nil, 211, 211, nil, 211, + 223, 211, nil, 211, nil, 211, nil, nil, 211, nil, + 223, nil, 223, 223, 166, 223, 223, nil, 223, nil, + 223, nil, 223, nil, 223, 166, nil, 223, nil, nil, + nil, nil, nil, 164, nil, 166, nil, 166, 166, nil, + 166, 166, nil, 166, 164, 166, nil, 166, nil, 166, + nil, nil, 166, nil, 164, nil, 164, 164, 225, 164, + 164, nil, 164, nil, 164, nil, 164, nil, 164, 225, + nil, 164, nil, nil, nil, nil, nil, 272, nil, 225, + nil, 225, 225, nil, 225, 225, nil, 225, 272, 225, + nil, 225, nil, 225, nil, nil, 225, nil, 272, nil, + 272, 272, 252, 272, 272, nil, 272, nil, 272, nil, + 272, nil, 272, 252, nil, 272, nil, nil, nil, nil, + nil, 262, nil, 252, nil, 252, 252, nil, 252, 252, + nil, 252, 262, 252, nil, 252, nil, 252, nil, nil, + 252, nil, 262, nil, 262, 262, nil, 262, 262, nil, + 262, 270, 262, nil, 262, nil, 262, nil, nil, 262, + nil, 270, nil, 270, 270, nil, 270, 270, nil, 270, + 31, 270, nil, 270, nil, 270, nil, nil, 270, nil, + 31, nil, 31, 31, nil, 31, 31, nil, 31, 143, + 31, nil, 31, nil, 31, nil, nil, 31, nil, 143, + nil, 143, 143, nil, 143, 143, nil, 143, 0, 143, + nil, 143, nil, 143, nil, nil, 143, nil, 0, nil, + 0, 0, nil, 0, 0, nil, 0, nil, 0, nil, + 0, nil, 0, nil, nil, 0 ] racc_action_pointer = [ - 636, 331, nil, nil, nil, 90, nil, nil, 336, nil, - 15, 323, nil, nil, 89, nil, 114, nil, 138, 117, - nil, 150, -15, nil, 301, 41, -14, -21, nil, 598, - nil, nil, 71, 248, nil, 239, nil, nil, 3, nil, - nil, nil, -2, nil, nil, 314, nil, 236, 4, nil, - nil, nil, 229, nil, nil, 220, 12, nil, nil, 207, - 219, 184, nil, nil, 174, 169, 166, 159, nil, 136, - 65, nil, 139, 79, 69, 22, 208, nil, 233, nil, - 322, 286, 22, 276, 296, nil, nil, 296, 300, 273, - 49, 98, nil, nil, nil, nil, 105, 259, nil, nil, - 253, 248, 58, 229, nil, 6, nil, 165, 143, 6, - 157, nil, 163, 151, nil, 108, 37, nil, nil, nil, - nil, 264, 22, 332, 28, 330, 266, 139, nil, nil, - 617, 230, 158, 160, 158, nil, -21, 171, nil, 72, - -16, nil, nil, -4, nil, nil, nil, nil, 89, nil, - nil, nil, 516, 181, 184, 154, nil, 472, nil, 191, - 156, 203, 173, nil, nil, 190, nil, nil, 213, 214, - nil, 197, nil, nil, 241, nil, nil, 215, nil, nil, - 47, nil, nil, nil, 409, 308, nil, 47, nil, nil, - 347, nil, 234, 237, 230, 91, nil, 384, 29, 91, - nil, nil, nil, 290, 272, nil, nil, 428, nil, nil, - nil, nil, 453, nil, nil, nil, 278, nil, 159, nil, - 205, nil, 267, nil, nil, 291, 199, nil, 223, 163, - nil, nil, 43, nil, 560, nil, nil, nil, 298, nil, - 299, 300, 303, 304, nil, nil, nil, nil, 248, 323, - 331, nil, nil, 333, 541, nil, nil, nil, nil, nil, - nil, nil, 579, nil, 497, 365, nil, nil ] + 660, 349, 9, nil, nil, nil, 33, nil, nil, nil, + nil, 107, 340, nil, 337, nil, 114, nil, 138, nil, + 159, 164, nil, 177, nil, 105, 266, nil, 297, -15, + nil, 622, 226, nil, 151, 57, 222, nil, nil, nil, + nil, nil, 3, nil, 210, 22, nil, 222, 300, 219, + nil, nil, 47, 204, nil, nil, nil, nil, nil, 207, + 59, 203, nil, nil, 206, 184, nil, 183, 123, nil, + 104, 65, nil, nil, nil, 65, 55, nil, 37, 193, + 234, 250, 275, 339, 304, 4, 320, nil, 332, 318, + nil, 328, nil, 321, nil, nil, 116, nil, -15, nil, + nil, nil, -4, nil, nil, 109, nil, 90, 268, nil, + 6, 250, 15, nil, nil, nil, -5, 189, nil, nil, + nil, nil, 174, 5, 139, 153, nil, 103, 84, nil, + 254, 4, nil, nil, 6, 326, 61, 316, 276, 44, + nil, nil, 114, 641, 250, 155, 156, 162, 187, 63, + nil, 176, nil, 9, nil, 185, nil, nil, 96, 248, + nil, nil, nil, nil, 496, nil, 477, nil, 208, 89, + 212, 184, 71, 220, 224, 194, 199, nil, 229, nil, + nil, nil, 217, 352, nil, nil, nil, nil, nil, nil, + 219, nil, 363, 245, nil, -2, nil, nil, 408, 77, + nil, 298, nil, nil, 253, nil, 248, 239, 54, nil, + 259, 433, nil, nil, nil, -6, 263, nil, 269, 272, + 274, nil, nil, 452, nil, 521, nil, nil, nil, nil, + nil, nil, nil, nil, 296, 232, nil, 184, nil, nil, + 293, 319, 274, nil, nil, nil, 183, nil, nil, -21, + 165, nil, 565, nil, nil, nil, nil, 368, 340, 344, + 346, nil, 584, nil, nil, nil, nil, nil, nil, nil, + 603, nil, 540, 389, nil, nil ] racc_action_default = [ - -143, -167, -15, -3, -136, -167, -16, -5, -167, -6, - -167, -167, -7, -8, -43, -9, -167, -10, -167, -42, - -11, -167, -167, -12, -167, -167, -167, -39, -13, -1, - -14, -2, -167, -143, -135, -72, -141, -140, -143, -139, - -137, -142, -72, -160, -29, -167, -31, -30, -167, -32, - -19, -96, -20, -98, -97, -21, -63, -22, -62, -24, - -64, -25, -125, -124, -167, -26, -27, -28, -88, -84, - -167, -91, -167, -85, -89, -93, -86, -90, -87, -104, - -92, -167, -167, -72, -128, -126, -38, -167, -167, -143, - -143, -143, -41, -40, -4, -71, -167, -167, -156, -73, - -167, -165, -167, -167, -154, -167, -68, -65, -60, -63, - -66, -58, -165, -69, -64, -167, -67, -123, -70, -122, - -18, -167, -167, -167, -167, -167, -167, -167, -162, -76, - -167, -167, -167, -165, -167, 268, -144, -167, -145, -143, - -167, -47, -49, -167, -63, -56, -55, -46, -167, -158, - -159, -157, -167, -167, -167, -166, -155, -167, -138, -167, - -61, -167, -72, -17, -99, -63, -23, -33, -167, -167, - -95, -167, -120, -118, -167, -121, -119, -167, -112, -113, - -167, -161, -163, -164, -167, -167, -106, -167, -110, -100, - -167, -127, -153, -151, -167, -167, -148, -167, -167, -167, - -52, -51, -45, -167, -167, -44, -132, -167, -75, -37, - -74, -134, -167, -34, -59, -35, -165, -94, -165, -115, - -167, -77, -102, -107, -105, -167, -167, -36, -167, -167, - -146, -147, -167, -130, -167, -50, -48, -82, -78, -53, - -79, -83, -80, -81, -54, -131, -133, -57, -167, -167, - -164, -117, -101, -167, -167, -111, -152, -150, -149, -129, - -116, -114, -167, -109, -167, -167, -108, -103 ] + -149, -173, -173, -14, -2, -142, -173, -15, -3, -16, + -5, -173, -173, -6, -173, -7, -43, -8, -173, -9, + -173, -42, -10, -173, -11, -173, -39, -12, -173, -173, + -13, -1, -173, -41, -149, -149, -149, -141, -147, -146, + -145, -148, -149, -143, -79, -72, -166, -28, -173, -173, + -31, -29, -173, -30, -102, -32, -19, -104, -103, -20, + -63, -21, -62, -22, -64, -24, -131, -25, -26, -130, + -27, -98, -96, -110, -94, -173, -90, -97, -173, -91, + -95, -92, -99, -93, -173, -173, -72, -132, -134, -149, + -40, -173, -38, -173, -4, -71, -149, -46, -173, -47, + -63, -49, -173, -56, -55, -173, -162, -173, -173, -160, + -173, -173, -173, -77, -78, -80, -173, -171, -128, -70, + -68, -73, -65, -63, -60, -66, -64, -171, -69, -58, + -67, -173, -129, -18, -173, -173, -173, -173, -173, -173, + -82, -168, -173, -173, -173, -173, -173, -171, -173, -150, + -151, -173, 276, -173, -52, -173, -51, -45, -173, -173, + -44, -163, -164, -165, -173, -161, -173, -144, -173, -173, + -173, -172, -61, -173, -173, -172, -72, -17, -173, -126, + -118, -119, -63, -173, -124, -127, -125, -105, -23, -101, + -173, -33, -173, -173, -167, -173, -169, -170, -173, -173, + -116, -173, -112, -106, -173, -133, -159, -173, -173, -154, + -157, -173, -50, -48, -88, -84, -85, -53, -89, -86, + -87, -54, -138, -173, -140, -173, -76, -75, -37, -81, + -59, -34, -35, -74, -171, -173, -121, -171, -100, -83, + -108, -173, -173, -111, -113, -36, -173, -152, -153, -173, + -173, -136, -173, -137, -139, -57, -123, -173, -173, -170, + -173, -107, -173, -117, -158, -155, -156, -135, -122, -120, + -173, -115, -173, -173, -114, -109 ] racc_goto_table = [ - 29, 94, 154, 196, 47, 101, 40, 179, 186, 44, - 111, 85, 112, 161, 67, 118, 50, 180, 33, 24, - 140, 148, 239, 244, 210, 127, 236, 72, 252, 185, - 66, 92, 107, 159, 190, 47, 178, 106, 89, 108, - 44, 218, 119, 84, 137, 67, 177, 121, 31, 97, - 38, 188, 103, 133, 65, 219, 166, 194, 117, 195, - 86, 66, 223, 151, nil, nil, nil, nil, 79, 198, - 81, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 98, 116, nil, 95, 65, 104, nil, nil, nil, - nil, nil, nil, nil, 177, nil, nil, nil, 156, 258, - 122, 158, nil, nil, nil, 188, nil, nil, 248, 149, - nil, nil, nil, 47, nil, 47, 172, 247, 44, 249, - 44, 172, 129, 67, 191, 67, 119, 171, 214, 260, - 184, 119, 216, 118, 132, nil, nil, 138, nil, 66, - nil, 66, 117, nil, nil, nil, 255, 117, nil, nil, - 107, nil, 207, nil, nil, 106, 94, 212, 61, nil, - 119, nil, nil, 65, 172, 65, 176, nil, 177, nil, - nil, 176, nil, nil, 119, 172, 117, nil, nil, 94, - nil, nil, 59, nil, 94, 119, 113, nil, nil, 61, - 117, nil, nil, 238, 238, nil, nil, 234, 237, 237, - 116, 117, nil, 119, 119, 208, 94, nil, nil, nil, - 110, nil, nil, 59, 176, nil, 172, nil, nil, 243, - 243, nil, nil, nil, nil, 176, 119, nil, nil, 49, - nil, 71, 221, 71, 146, 146, 94, 94, 172, nil, - nil, nil, 117, 242, 242, nil, nil, 71, 119, nil, - nil, nil, nil, nil, 264, nil, nil, nil, 145, 145, - 49, nil, 265, 71, 117, nil, 176, 61, nil, 61, - 175, nil, 251, nil, nil, 175, nil, nil, nil, nil, - 256, 257, nil, 146, 75, 71, 75, nil, 176, nil, - nil, 59, nil, 59, 173, nil, nil, 71, nil, 173, - 75, nil, nil, nil, 113, nil, nil, 145, nil, nil, - nil, nil, nil, nil, nil, nil, 75, nil, 175, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 110, 175, - nil, nil, nil, nil, nil, nil, nil, nil, 75, 167, - 49, nil, 173, 146, nil, nil, nil, 241, 241, nil, - 75, nil, nil, 173, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 145, 71, nil, - 175, 240, 240, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 175, nil, 173, 71, nil, nil, nil, nil, + 31, 94, 36, 68, 127, 178, 56, 43, 202, 119, + 209, 67, 195, 4, 200, 115, 28, 113, 213, 70, + 142, 89, 129, 98, 105, 217, 221, 33, 78, 104, + 104, 261, 130, 181, 201, 68, 117, 173, 134, 180, + 128, 124, 237, 67, 88, 147, 151, 108, 132, 106, + 42, 70, 111, 178, 170, 109, 188, 207, 208, 92, + 161, nil, nil, nil, 174, 244, nil, nil, nil, nil, + nil, 200, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 236, nil, nil, 204, 153, nil, nil, nil, nil, + nil, 104, nil, nil, nil, nil, nil, 65, nil, nil, + nil, nil, 150, 162, nil, 47, 165, 257, 167, nil, + 265, nil, 263, nil, nil, 103, 103, nil, nil, nil, + nil, nil, 186, nil, 68, 68, 125, 178, 190, 65, + 185, 186, 67, 67, 118, 234, 119, 47, 132, 185, + 70, 70, 229, 198, 113, 219, 219, 132, 233, 230, + 104, nil, nil, 218, 218, 268, nil, nil, 51, 130, + nil, 220, 220, nil, 223, 53, 225, 128, 94, nil, + 186, 255, 87, nil, 258, 132, nil, 103, 185, nil, + nil, nil, nil, nil, nil, nil, 132, 120, 186, nil, + 51, nil, nil, 94, 122, 94, 185, 53, 82, nil, + 82, 73, nil, 84, 132, nil, nil, nil, nil, nil, + nil, 252, 82, nil, nil, 95, 184, nil, 65, 65, + nil, nil, 94, nil, 118, 184, 47, 47, nil, 186, + nil, nil, 82, 118, nil, 136, 103, 185, nil, 216, + 216, nil, 94, 94, 186, 132, nil, 118, 118, nil, + nil, nil, 185, 125, nil, 82, nil, nil, 140, nil, + 132, 118, 272, nil, 184, 82, nil, 55, 145, 77, + 273, 77, 118, nil, nil, nil, nil, nil, nil, 51, + 51, nil, 184, 77, 179, nil, 53, 53, nil, nil, + 118, nil, nil, 179, nil, nil, nil, 205, nil, 55, + 214, 214, nil, 77, nil, nil, nil, 215, 215, nil, + nil, nil, nil, nil, 120, nil, nil, nil, nil, nil, + nil, 122, nil, 184, nil, nil, 77, nil, nil, nil, + nil, 118, 179, nil, nil, nil, 77, nil, 184, nil, + nil, nil, nil, nil, nil, nil, 118, nil, 82, 82, + 179, 226, 227, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 173, nil, nil, nil, - nil, 75, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 71, nil, nil, nil, nil, - nil, nil, nil, 71, 71, nil, nil, nil, 75, nil, + nil, nil, nil, nil, nil, 82, nil, nil, 239, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 55, + 191, 179, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 179, nil, nil, nil, + nil, nil, nil, nil, nil, 82, nil, nil, 256, 77, + 77, nil, nil, nil, nil, nil, 82, nil, nil, 264, + 82, nil, nil, 266, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 77, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 75, nil, - nil, nil, nil, nil, nil, nil, 75, 75 ] + nil, nil, nil, nil, nil, nil, 77, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 77, nil, nil, + nil, 77 ] racc_goto_check = [ - 2, 4, 33, 68, 27, 32, 65, 58, 54, 26, - 43, 27, 32, 33, 25, 46, 17, 50, 29, 1, - 37, 37, 42, 42, 48, 49, 38, 51, 52, 53, - 24, 36, 27, 31, 33, 27, 57, 26, 29, 30, - 26, 59, 25, 60, 61, 25, 56, 17, 3, 62, - 63, 56, 64, 32, 23, 58, 20, 66, 24, 67, - 5, 24, 54, 69, nil, nil, nil, nil, 47, 37, - 47, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 3, 23, nil, 47, 23, 3, nil, nil, nil, - nil, nil, nil, nil, 56, nil, nil, nil, 65, 68, - 47, 65, nil, nil, nil, 56, nil, nil, 50, 29, - nil, nil, nil, 27, nil, 27, 27, 33, 26, 33, - 26, 27, 47, 25, 27, 25, 25, 17, 43, 58, - 2, 25, 32, 46, 47, nil, nil, 3, nil, 24, - nil, 24, 24, nil, nil, nil, 56, 24, nil, nil, - 27, nil, 2, nil, nil, 26, 4, 2, 22, nil, - 25, nil, nil, 23, 27, 23, 23, nil, 56, nil, - nil, 23, nil, nil, 25, 27, 24, nil, nil, 4, - nil, nil, 21, nil, 4, 25, 22, nil, nil, 22, - 24, nil, nil, 27, 27, nil, nil, 2, 26, 26, - 23, 24, nil, 25, 25, 47, 4, nil, nil, nil, - 21, nil, nil, 21, 23, nil, 27, nil, nil, 24, - 24, nil, nil, nil, nil, 23, 25, nil, nil, 28, - nil, 28, 47, 28, 22, 22, 4, 4, 27, nil, - nil, nil, 24, 23, 23, nil, nil, 28, 25, nil, - nil, nil, nil, nil, 2, nil, nil, nil, 21, 21, - 28, nil, 2, 28, 24, nil, 23, 22, nil, 22, - 22, nil, 47, nil, nil, 22, nil, nil, nil, nil, - 47, 47, nil, 22, 45, 28, 45, nil, 23, nil, - nil, 21, nil, 21, 21, nil, nil, 28, nil, 21, - 45, nil, nil, nil, 22, nil, nil, 21, nil, nil, - nil, nil, nil, nil, nil, nil, 45, nil, 22, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 21, 22, - nil, nil, nil, nil, nil, nil, nil, nil, 45, 28, - 28, nil, 21, 22, nil, nil, nil, 22, 22, nil, - 45, nil, nil, 21, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 21, 28, nil, - 22, 21, 21, nil, nil, nil, nil, nil, nil, nil, + 2, 4, 29, 23, 32, 59, 17, 68, 57, 47, + 71, 22, 53, 3, 59, 51, 1, 49, 39, 24, + 52, 29, 44, 38, 38, 43, 43, 37, 54, 22, + 22, 55, 23, 61, 56, 23, 34, 31, 17, 60, + 22, 30, 62, 22, 63, 32, 64, 65, 24, 3, + 66, 24, 67, 59, 33, 3, 20, 69, 70, 5, + 72, nil, nil, nil, 33, 57, nil, nil, nil, nil, + nil, 59, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 61, nil, nil, 33, 38, nil, nil, nil, nil, + nil, 22, nil, nil, nil, nil, nil, 21, nil, nil, + nil, nil, 3, 29, nil, 25, 68, 53, 68, nil, + 71, nil, 59, nil, nil, 21, 21, nil, nil, nil, + nil, nil, 23, nil, 23, 23, 21, 59, 17, 21, + 22, 23, 22, 22, 25, 32, 47, 25, 24, 22, + 24, 24, 51, 2, 49, 23, 23, 24, 49, 44, + 22, nil, nil, 22, 22, 61, nil, nil, 26, 23, + nil, 24, 24, nil, 2, 27, 2, 22, 4, nil, + 23, 33, 27, nil, 33, 24, nil, 21, 22, nil, + nil, nil, nil, nil, nil, nil, 24, 26, 23, nil, + 26, nil, nil, 4, 27, 4, 22, 27, 46, nil, + 46, 48, nil, 48, 24, nil, nil, nil, nil, nil, + nil, 2, 46, nil, nil, 48, 21, nil, 21, 21, + nil, nil, 4, nil, 25, 21, 25, 25, nil, 23, + nil, nil, 46, 25, nil, 48, 21, 22, nil, 21, + 21, nil, 4, 4, 23, 24, nil, 25, 25, nil, + nil, nil, 22, 21, nil, 46, nil, nil, 48, nil, + 24, 25, 2, nil, 21, 46, nil, 28, 48, 28, + 2, 28, 25, nil, nil, nil, nil, nil, nil, 26, + 26, nil, 21, 28, 27, nil, 27, 27, nil, nil, + 25, nil, nil, 27, nil, nil, nil, 27, nil, 28, + 26, 26, nil, 28, nil, nil, nil, 27, 27, nil, + nil, nil, nil, nil, 26, nil, nil, nil, nil, nil, + nil, 27, nil, 21, nil, nil, 28, nil, nil, nil, + nil, 25, 27, nil, nil, nil, 28, nil, 21, nil, + nil, nil, nil, nil, nil, nil, 25, nil, 46, 46, + 27, 48, 48, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 22, nil, 21, 28, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 46, nil, nil, 48, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 28, + 28, 27, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 27, nil, nil, nil, + nil, nil, nil, nil, nil, 46, nil, nil, 48, 28, + 28, nil, nil, nil, nil, nil, 46, nil, nil, 48, + 46, nil, nil, 48, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 28, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 21, nil, nil, nil, - nil, 45, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 28, nil, nil, nil, nil, - nil, nil, nil, 28, 28, nil, nil, nil, 45, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 45, nil, - nil, nil, nil, nil, nil, nil, 45, 45 ] + nil, nil, nil, nil, nil, nil, 28, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 28, nil, nil, + nil, 28 ] racc_goto_pointer = [ - nil, 19, 0, 48, -28, 38, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 2, nil, nil, - -67, 168, 144, 40, 16, 0, -5, -10, 215, 13, - -3, -75, -30, -99, nil, nil, 5, -70, -173, nil, - nil, nil, -181, -32, nil, 268, -27, 52, -131, -45, - -110, 11, -194, -102, -123, nil, -80, -90, -119, -133, - 22, -45, 16, 40, 14, -4, -79, -77, -133, -33 ] + nil, 16, 0, 13, -30, 30, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, -10, nil, nil, + -81, 81, -5, -13, 3, 89, 142, 149, 251, -4, + -4, -87, -41, -63, -8, nil, nil, 25, -11, -137, + nil, nil, nil, -133, -23, nil, 180, -36, 183, -27, + nil, -29, -55, -130, 10, -209, -110, -136, nil, -130, + -96, -102, -141, 21, -43, 11, 39, 10, -4, -92, + -91, -139, -47 ] racc_goto_default = [ - nil, nil, nil, 147, 3, 7, 9, 12, 13, 15, - 17, 20, 23, 28, 30, 2, 6, nil, 52, 55, - 57, 73, 74, 76, 78, 80, 68, 69, 8, 11, - nil, nil, nil, nil, 22, 26, nil, nil, 141, 199, - 142, 143, nil, nil, 115, 63, 77, nil, 99, nil, - nil, nil, nil, nil, nil, 187, 64, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ] + nil, nil, nil, 97, 8, 10, 13, 15, 17, 19, + 22, 24, 27, 30, 3, 7, 9, nil, 59, 61, + 63, 79, 80, 81, 83, 71, 74, 76, 12, 14, + nil, nil, nil, nil, nil, 29, 2, nil, nil, 99, + 155, 101, 102, nil, nil, 131, 69, 72, nil, 121, + 114, nil, nil, nil, nil, nil, nil, nil, 199, 49, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil ] racc_token_table = { false => 0, @@ -811,11 +827,12 @@ racc_token_table = { :NOT => 47, :OR => 48, :AND => 49, - :UNDEF => 50 } + :UNDEF => 50, + :PARROW => 51 } racc_use_result_var = true -racc_nt_base = 51 +racc_nt_base = 52 Racc_arg = [ racc_action_table, @@ -885,6 +902,7 @@ Racc_token_to_s_table = [ 'OR', 'AND', 'UNDEF', +'PARROW', '$start', 'program', 'statements', @@ -919,6 +937,7 @@ Racc_token_to_s_table = [ 'endsemi', 'params', 'endcomma', +'anyparams', 'at', 'collectname', 'collectrhand', @@ -934,6 +953,8 @@ Racc_token_to_s_table = [ 'array', 'rvalue', 'param', +'addparam', +'anyparam', 'rvalues', 'comma', 'iftest', @@ -1400,30 +1421,56 @@ module_eval <<'.,.,', 'grammar.ra', 311 end .,., - # reduce 76 omitted - -module_eval <<'.,.,', 'grammar.ra', 320 - def _reduce_77( 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]] - end +module_eval <<'.,.,', 'grammar.ra', 316 + def _reduce_76( val, _values, result ) + result = ast AST::ResourceParam, :param => val[0], :value => val[2], + :add => true result end .,., + # reduce 77 omitted + # reduce 78 omitted - # reduce 79 omitted +module_eval <<'.,.,', 'grammar.ra', 324 + def _reduce_79( val, _values, result ) + result = ast AST::ASTArray + result + end +.,., - # reduce 80 omitted +module_eval <<'.,.,', 'grammar.ra', 324 + def _reduce_80( val, _values, result ) + result = val[0] + result + end +.,., - # reduce 81 omitted +module_eval <<'.,.,', 'grammar.ra', 333 + def _reduce_81( 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 + end +.,., # reduce 82 omitted - # reduce 83 omitted +module_eval <<'.,.,', 'grammar.ra', 342 + def _reduce_83( 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]] + end + result + end +.,., # reduce 84 omitted @@ -1445,8 +1492,20 @@ module_eval <<'.,.,', 'grammar.ra', 320 # reduce 93 omitted -module_eval <<'.,.,', 'grammar.ra', 347 - def _reduce_94( val, _values, result ) + # reduce 94 omitted + + # reduce 95 omitted + + # reduce 96 omitted + + # reduce 97 omitted + + # reduce 98 omitted + + # reduce 99 omitted + +module_eval <<'.,.,', 'grammar.ra', 369 + def _reduce_100( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0], @@ -1456,8 +1515,8 @@ module_eval <<'.,.,', 'grammar.ra', 347 end .,., -module_eval <<'.,.,', 'grammar.ra', 352 - def _reduce_95( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 374 + def _reduce_101( val, _values, result ) result = ast AST::Function, :name => val[0], :arguments => AST::ASTArray.new({}), @@ -1466,44 +1525,44 @@ module_eval <<'.,.,', 'grammar.ra', 352 end .,., -module_eval <<'.,.,', 'grammar.ra', 356 - def _reduce_96( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 378 + def _reduce_102( val, _values, result ) result = ast AST::String, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 358 - def _reduce_97( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 380 + def _reduce_103( val, _values, result ) result = ast AST::FlatString, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 362 - def _reduce_98( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 384 + def _reduce_104( val, _values, result ) result = ast AST::Boolean, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 367 - def _reduce_99( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 389 + def _reduce_105( val, _values, result ) Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized") result = ast AST::ResourceRef, :type => val[0], :title => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 369 - def _reduce_100( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 391 + def _reduce_106( val, _values, result ) result = ast AST::ResourceRef, :type => val[0], :title => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 382 - def _reduce_101( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 404 + def _reduce_107( val, _values, result ) args = { :test => val[1], :statements => val[3] @@ -1518,19 +1577,19 @@ module_eval <<'.,.,', 'grammar.ra', 382 end .,., - # reduce 102 omitted + # reduce 108 omitted -module_eval <<'.,.,', 'grammar.ra', 387 - def _reduce_103( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 409 + def _reduce_109( val, _values, result ) result = ast AST::Else, :statements => val[2] result end .,., - # reduce 104 omitted + # reduce 110 omitted -module_eval <<'.,.,', 'grammar.ra', 399 - def _reduce_105( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 421 + def _reduce_111( val, _values, result ) options = val[3] unless options.instance_of?(AST::ASTArray) options = ast AST::ASTArray, :children => [val[3]] @@ -1540,10 +1599,10 @@ module_eval <<'.,.,', 'grammar.ra', 399 end .,., - # reduce 106 omitted + # reduce 112 omitted -module_eval <<'.,.,', 'grammar.ra', 409 - def _reduce_107( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 431 + def _reduce_113( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push val[1] result = val[0] @@ -1554,15 +1613,15 @@ module_eval <<'.,.,', 'grammar.ra', 409 end .,., -module_eval <<'.,.,', 'grammar.ra', 413 - def _reduce_108( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 435 + def _reduce_114( val, _values, result ) result = ast AST::CaseOpt, :value => val[0], :statements => val[3] result end .,., -module_eval <<'.,.,', 'grammar.ra', 418 - def _reduce_109( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 440 + def _reduce_115( val, _values, result ) result = ast(AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) @@ -1571,10 +1630,10 @@ module_eval <<'.,.,', 'grammar.ra', 418 end .,., - # reduce 110 omitted + # reduce 116 omitted -module_eval <<'.,.,', 'grammar.ra', 428 - def _reduce_111( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 450 + def _reduce_117( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1585,26 +1644,26 @@ module_eval <<'.,.,', 'grammar.ra', 428 end .,., -module_eval <<'.,.,', 'grammar.ra', 432 - def _reduce_112( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 454 + def _reduce_118( val, _values, result ) result = ast AST::Selector, :param => val[0], :values => val[2] result end .,., - # reduce 113 omitted + # reduce 119 omitted -module_eval <<'.,.,', 'grammar.ra', 434 - def _reduce_114( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 456 + def _reduce_120( val, _values, result ) result = val[1] result end .,., - # reduce 115 omitted + # reduce 121 omitted -module_eval <<'.,.,', 'grammar.ra', 445 - def _reduce_116( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 467 + def _reduce_122( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1615,50 +1674,50 @@ module_eval <<'.,.,', 'grammar.ra', 445 end .,., -module_eval <<'.,.,', 'grammar.ra', 449 - def _reduce_117( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 471 + def _reduce_123( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., - # reduce 118 omitted + # reduce 124 omitted - # reduce 119 omitted + # reduce 125 omitted - # reduce 120 omitted + # reduce 126 omitted - # reduce 121 omitted + # reduce 127 omitted - # reduce 122 omitted + # reduce 128 omitted - # reduce 123 omitted + # reduce 129 omitted - # reduce 124 omitted + # reduce 130 omitted -module_eval <<'.,.,', 'grammar.ra', 460 - def _reduce_125( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 482 + def _reduce_131( val, _values, result ) result = ast AST::Default, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 462 - def _reduce_126( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 484 + def _reduce_132( val, _values, result ) result = [val[0].value] result end .,., -module_eval <<'.,.,', 'grammar.ra', 466 - def _reduce_127( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 488 + def _reduce_133( val, _values, result ) results = val[0] << val[2].value result end .,., -module_eval <<'.,.,', 'grammar.ra', 474 - def _reduce_128( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 496 + def _reduce_134( val, _values, result ) val[1].each do |file| import(file) end @@ -1668,8 +1727,8 @@ module_eval <<'.,.,', 'grammar.ra', 474 end .,., -module_eval <<'.,.,', 'grammar.ra', 484 - def _reduce_129( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 506 + def _reduce_135( val, _values, result ) interp.newdefine classname(val[1]), :arguments => val[2], :code => val[4] @lexer.indefine = false result = nil @@ -1679,8 +1738,8 @@ module_eval <<'.,.,', 'grammar.ra', 484 end .,., -module_eval <<'.,.,', 'grammar.ra', 488 - def _reduce_130( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 510 + def _reduce_136( val, _values, result ) interp.newdefine classname(val[1]), :arguments => val[2] @lexer.indefine = false result = nil @@ -1688,8 +1747,8 @@ module_eval <<'.,.,', 'grammar.ra', 488 end .,., -module_eval <<'.,.,', 'grammar.ra', 496 - def _reduce_131( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 518 + def _reduce_137( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop interp.newclass classname(val[1]), :code => val[4], :parent => val[2] @@ -1698,8 +1757,8 @@ module_eval <<'.,.,', 'grammar.ra', 496 end .,., -module_eval <<'.,.,', 'grammar.ra', 501 - def _reduce_132( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 523 + def _reduce_138( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop interp.newclass classname(val[1]), :parent => val[2] @@ -1708,30 +1767,30 @@ module_eval <<'.,.,', 'grammar.ra', 501 end .,., -module_eval <<'.,.,', 'grammar.ra', 506 - def _reduce_133( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 528 + def _reduce_139( val, _values, result ) interp.newnode val[1], :parent => val[2], :code => val[4] result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 509 - def _reduce_134( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 531 + def _reduce_140( val, _values, result ) interp.newnode val[1], :parent => val[2] result = nil result end .,., - # reduce 135 omitted + # reduce 141 omitted - # reduce 136 omitted + # reduce 142 omitted - # reduce 137 omitted + # reduce 143 omitted -module_eval <<'.,.,', 'grammar.ra', 521 - def _reduce_138( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 543 + def _reduce_144( val, _values, result ) result = val[0] result = [result] unless result.is_a?(Array) result << val[2] @@ -1739,49 +1798,49 @@ module_eval <<'.,.,', 'grammar.ra', 521 end .,., - # reduce 139 omitted + # reduce 145 omitted - # reduce 140 omitted + # reduce 146 omitted - # reduce 141 omitted + # reduce 147 omitted - # reduce 142 omitted + # reduce 148 omitted -module_eval <<'.,.,', 'grammar.ra', 530 - def _reduce_143( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 552 + def _reduce_149( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 534 - def _reduce_144( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 556 + def _reduce_150( val, _values, result ) result = ast AST::ASTArray, :children => [] result end .,., - # reduce 145 omitted + # reduce 151 omitted -module_eval <<'.,.,', 'grammar.ra', 539 - def _reduce_146( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 561 + def _reduce_152( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 543 - def _reduce_147( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 565 + def _reduce_153( val, _values, result ) result = val[1] result = [result] unless result[0].is_a?(Array) result end .,., - # reduce 148 omitted + # reduce 154 omitted -module_eval <<'.,.,', 'grammar.ra', 550 - def _reduce_149( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 572 + def _reduce_155( val, _values, result ) result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] @@ -1789,67 +1848,67 @@ module_eval <<'.,.,', 'grammar.ra', 550 end .,., -module_eval <<'.,.,', 'grammar.ra', 555 - def _reduce_150( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 577 + def _reduce_156( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 559 - def _reduce_151( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 581 + def _reduce_157( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 561 - def _reduce_152( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 583 + def _reduce_158( val, _values, result ) result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 563 - def _reduce_153( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 585 + def _reduce_159( val, _values, result ) result = [val[0]] result end .,., - # reduce 154 omitted + # reduce 160 omitted -module_eval <<'.,.,', 'grammar.ra', 568 - def _reduce_155( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 590 + def _reduce_161( val, _values, result ) result = val[1] result end .,., - # reduce 156 omitted + # reduce 162 omitted -module_eval <<'.,.,', 'grammar.ra', 573 - def _reduce_157( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 595 + def _reduce_163( val, _values, result ) result = val[1] result end .,., - # reduce 158 omitted + # reduce 164 omitted - # reduce 159 omitted + # reduce 165 omitted -module_eval <<'.,.,', 'grammar.ra', 579 - def _reduce_160( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 601 + def _reduce_166( val, _values, result ) result = ast AST::Variable, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 587 - def _reduce_161( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 609 + def _reduce_167( val, _values, result ) if val[1].instance_of?(AST::ASTArray) result = val[1] else @@ -1859,21 +1918,21 @@ module_eval <<'.,.,', 'grammar.ra', 587 end .,., -module_eval <<'.,.,', 'grammar.ra', 589 - def _reduce_162( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 611 + def _reduce_168( val, _values, result ) result = ast AST::ASTArray result end .,., - # reduce 163 omitted + # reduce 169 omitted - # reduce 164 omitted + # reduce 170 omitted - # reduce 165 omitted + # reduce 171 omitted -module_eval <<'.,.,', 'grammar.ra', 594 - def _reduce_166( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 616 + def _reduce_172( val, _values, result ) result = nil result end diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb index 56b430b7f..ccb88d69a 100644 --- a/lib/puppet/parser/resource.rb +++ b/lib/puppet/parser/resource.rb @@ -265,6 +265,11 @@ class Puppet::Parser::Resource if current = @params[param.name] # XXX Should we ignore any settings that have the same values? if param.source.child_of?(current.source) + if param.add + # Merge with previous value. + param.value = [ current.value, param.value ].flatten + end + # Replace it, keeping all of its info. @params[param.name] = param else diff --git a/lib/puppet/parser/resource/param.rb b/lib/puppet/parser/resource/param.rb index 4d95db46a..e570055c7 100644 --- a/lib/puppet/parser/resource/param.rb +++ b/lib/puppet/parser/resource/param.rb @@ -1,6 +1,6 @@ # The parameters we stick in Resources. class Puppet::Parser::Resource::Param - attr_accessor :name, :value, :source, :line, :file + attr_accessor :name, :value, :source, :line, :file, :add include Puppet::Util include Puppet::Util::Errors include Puppet::Util::MethodHelper diff --git a/test/language/resource.rb b/test/language/resource.rb index d2fdd0967..039c67216 100755 --- a/test/language/resource.rb +++ b/test/language/resource.rb @@ -69,6 +69,31 @@ class TestResource < PuppetTest::TestCase end end + def check_paramadd(val1, val2, merged_val) + res = mkresource :params => {"one" => val1} + assert_nothing_raised do + res.set Parser::Resource::Param.new( + :name => "one", :value => val2, + :add => true, :source => @scope.findclass("sub1")) + end + assert_equal(merged_val, res[:one]) + end + + def test_paramadd + check_paramadd([], [], []) + check_paramadd([], "rah", ["rah"]) + check_paramadd([], ["rah", "bah"], ["rah", "bah"]) + + check_paramadd("yay", [], ["yay"]) + check_paramadd("yay", "rah", ["yay", "rah"]) + check_paramadd("yay", ["rah", "bah"], ["yay", "rah", "bah"]) + + check_paramadd(["yay", "boo"], [], ["yay", "boo"]) + check_paramadd(["yay", "boo"], "rah", ["yay", "boo", "rah"]) + check_paramadd(["yay", "boo"], ["rah", "bah"], + ["yay", "boo", "rah", "bah"]) + end + def test_merge # Start with the normal one res = mkresource |