diff options
author | Brice Figureau <brice-puppet@daysofwonder.com> | 2008-09-14 15:49:34 +0200 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2008-09-21 02:31:16 +1000 |
commit | 16793d221f95b2430260c38cd7c36bb8a5ef8d49 (patch) | |
tree | 44b330b0a34d4ceddd98faef24bd8f507e1a5c99 /lib | |
parent | 7f8abbd388ee3898c8505ca3bb884b75d8db2087 (diff) | |
download | puppet-16793d221f95b2430260c38cd7c36bb8a5ef8d49.tar.gz puppet-16793d221f95b2430260c38cd7c36bb8a5ef8d49.tar.xz puppet-16793d221f95b2430260c38cd7c36bb8a5ef8d49.zip |
Add an append (+=) variable operator:
The append variable operator can be used to append something to
a variable defined in a parent scope, containing either a string
or an array.
The main use is to append array elements in classes to a variable
globally defined in a node.
Example:
$ssh_users = ['brice', 'admin1']
class backup {
$ssh_users += ['backup_operator']
...
}
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/puppet/parser/ast/vardef.rb | 4 | ||||
-rw-r--r-- | lib/puppet/parser/grammar.ra | 8 | ||||
-rw-r--r-- | lib/puppet/parser/lexer.rb | 1 | ||||
-rw-r--r-- | lib/puppet/parser/parser.rb | 1437 | ||||
-rw-r--r-- | lib/puppet/parser/scope.rb | 26 |
5 files changed, 760 insertions, 716 deletions
diff --git a/lib/puppet/parser/ast/vardef.rb b/lib/puppet/parser/ast/vardef.rb index ee79159d7..a3094ac6e 100644 --- a/lib/puppet/parser/ast/vardef.rb +++ b/lib/puppet/parser/ast/vardef.rb @@ -3,7 +3,7 @@ require 'puppet/parser/ast/branch' class Puppet::Parser::AST # Define a variable. Stores the value in the current scope. class VarDef < AST::Branch - attr_accessor :name, :value + attr_accessor :name, :value, :append @settor = true @@ -14,7 +14,7 @@ class Puppet::Parser::AST value = @value.safeevaluate(scope) parsewrap do - scope.setvar(name,value, @file, @line) + scope.setvar(name,value, @file, @line, @append) end end diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra index a2f6729ee..07666acb4 100644 --- a/lib/puppet/parser/grammar.ra +++ b/lib/puppet/parser/grammar.ra @@ -5,7 +5,7 @@ class Puppet::Parser::Parser token LBRACK DQTEXT SQTEXT RBRACK LBRACE RBRACE SYMBOL FARROW COMMA TRUE -token FALSE EQUALS LESSEQUAL NOTEQUAL DOT COLON LLCOLLECT RRCOLLECT +token FALSE EQUALS APPENDS LESSEQUAL NOTEQUAL DOT COLON 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 @@ -58,6 +58,7 @@ statement: resource | hostclass | nodedef | resourceoverride + | append fstatement: NAME LPAREN funcvalues RPAREN { args = aryfy(val[2]) @@ -291,6 +292,11 @@ assignment: VARIABLE EQUALS rvalue { result = ast AST::VarDef, :name => variable, :value => val[2] } +append: VARIABLE APPENDS rvalue { + variable = ast AST::Name, :value => val[0] + result = ast AST::VarDef, :name => variable, :value => val[2], :append => true +} + params: # nothing { result = ast AST::ASTArray diff --git a/lib/puppet/parser/lexer.rb b/lib/puppet/parser/lexer.rb index 2c5f66e5a..71210d919 100644 --- a/lib/puppet/parser/lexer.rb +++ b/lib/puppet/parser/lexer.rb @@ -105,6 +105,7 @@ class Puppet::Parser::Lexer '(' => :LPAREN, ')' => :RPAREN, '=' => :EQUALS, + '+=' => :APPENDS, '==' => :ISEQUAL, '>=' => :GREATEREQUAL, '>' => :GREATERTHAN, diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb index 3d7f21dca..69225cc2b 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..id9145566289', 'grammar.ra', 638 +module_eval <<'..end grammar.ra modeval..id7dbe8301d1', 'grammar.ra', 644 # It got too annoying having code in a file that needs to be compiled. require 'puppet/parser/parser_support' @@ -41,517 +41,525 @@ require 'puppet/parser/parser_support' # $Id$ -..end grammar.ra modeval..id9145566289 +..end grammar.ra modeval..id7dbe8301d1 ##### 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, 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, 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, + 1, 56, :_reduce_none, + 4, 64, :_reduce_18, + 3, 64, :_reduce_19, + 2, 64, :_reduce_20, 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, 87, :_reduce_39, - 2, 87, :_reduce_40, - 2, 58, :_reduce_41, - 3, 88, :_reduce_42, - 3, 88, :_reduce_43, - 1, 89, :_reduce_none, - 1, 89, :_reduce_none, - 3, 89, :_reduce_46, - 1, 90, :_reduce_none, - 3, 90, :_reduce_48, + 1, 70, :_reduce_none, + 1, 71, :_reduce_none, + 3, 71, :_reduce_24, + 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_32, + 1, 72, :_reduce_none, + 3, 72, :_reduce_34, + 5, 57, :_reduce_35, + 5, 57, :_reduce_36, + 5, 57, :_reduce_37, + 5, 68, :_reduce_38, + 2, 58, :_reduce_39, + 1, 89, :_reduce_40, + 2, 89, :_reduce_41, + 2, 59, :_reduce_42, + 3, 90, :_reduce_43, + 3, 90, :_reduce_44, 1, 91, :_reduce_none, 1, 91, :_reduce_none, - 3, 92, :_reduce_51, - 3, 92, :_reduce_52, + 3, 91, :_reduce_47, + 1, 92, :_reduce_none, + 3, 92, :_reduce_49, 1, 93, :_reduce_none, 1, 93, :_reduce_none, - 4, 95, :_reduce_55, - 1, 81, :_reduce_none, - 3, 81, :_reduce_57, - 0, 82, :_reduce_none, - 1, 82, :_reduce_none, - 1, 97, :_reduce_60, - 1, 72, :_reduce_61, + 3, 94, :_reduce_52, + 3, 94, :_reduce_53, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 4, 97, :_reduce_56, + 1, 83, :_reduce_none, + 3, 83, :_reduce_58, + 0, 84, :_reduce_none, + 1, 84, :_reduce_none, + 1, 99, :_reduce_61, 1, 74, :_reduce_62, + 1, 76, :_reduce_63, + 1, 98, :_reduce_none, + 1, 98, :_reduce_none, + 1, 98, :_reduce_none, + 1, 98, :_reduce_none, + 1, 98, :_reduce_none, + 1, 98, :_reduce_none, + 3, 60, :_reduce_70, + 3, 69, :_reduce_71, + 0, 85, :_reduce_72, + 1, 85, :_reduce_73, + 3, 85, :_reduce_74, + 3, 102, :_reduce_75, + 3, 103, :_reduce_76, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 0, 88, :_reduce_79, + 1, 88, :_reduce_80, + 3, 88, :_reduce_81, + 1, 105, :_reduce_none, + 3, 105, :_reduce_83, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, - 3, 59, :_reduce_69, - 0, 83, :_reduce_70, - 1, 83, :_reduce_71, - 3, 83, :_reduce_72, - 3, 100, :_reduce_73, - 3, 101, :_reduce_74, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 0, 86, :_reduce_77, - 1, 86, :_reduce_78, - 3, 86, :_reduce_79, - 1, 103, :_reduce_none, - 3, 103, :_reduce_81, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 1, 99, :_reduce_none, - 4, 76, :_reduce_98, - 3, 76, :_reduce_99, - 1, 78, :_reduce_100, - 1, 78, :_reduce_101, - 1, 75, :_reduce_102, - 4, 79, :_reduce_103, - 4, 79, :_reduce_104, - 6, 61, :_reduce_105, - 0, 106, :_reduce_none, - 4, 106, :_reduce_107, - 1, 105, :_reduce_none, - 5, 60, :_reduce_109, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 1, 101, :_reduce_none, + 4, 78, :_reduce_100, + 3, 78, :_reduce_101, + 1, 80, :_reduce_102, + 1, 80, :_reduce_103, + 1, 77, :_reduce_104, + 4, 81, :_reduce_105, + 4, 81, :_reduce_106, + 6, 62, :_reduce_107, + 0, 108, :_reduce_none, + 4, 108, :_reduce_109, 1, 107, :_reduce_none, - 2, 107, :_reduce_111, - 5, 108, :_reduce_112, - 4, 108, :_reduce_113, + 5, 61, :_reduce_111, 1, 109, :_reduce_none, - 3, 109, :_reduce_115, - 3, 77, :_reduce_116, + 2, 109, :_reduce_113, + 5, 110, :_reduce_114, + 4, 110, :_reduce_115, 1, 111, :_reduce_none, - 4, 111, :_reduce_118, + 3, 111, :_reduce_117, + 3, 79, :_reduce_118, 1, 113, :_reduce_none, - 3, 113, :_reduce_120, - 3, 112, :_reduce_121, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_129, - 1, 114, :_reduce_130, - 3, 114, :_reduce_131, - 2, 62, :_reduce_132, - 6, 64, :_reduce_133, - 5, 64, :_reduce_134, + 4, 113, :_reduce_120, + 1, 115, :_reduce_none, + 3, 115, :_reduce_122, + 3, 114, :_reduce_123, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_131, + 1, 116, :_reduce_132, + 3, 116, :_reduce_133, + 2, 63, :_reduce_134, 6, 65, :_reduce_135, 5, 65, :_reduce_136, 6, 66, :_reduce_137, 5, 66, :_reduce_138, - 1, 85, :_reduce_none, - 1, 80, :_reduce_none, - 1, 80, :_reduce_none, - 1, 117, :_reduce_none, - 3, 117, :_reduce_143, - 1, 119, :_reduce_none, - 1, 119, :_reduce_none, - 1, 119, :_reduce_none, + 6, 67, :_reduce_139, + 5, 67, :_reduce_140, + 1, 87, :_reduce_none, + 1, 82, :_reduce_none, + 1, 82, :_reduce_none, 1, 119, :_reduce_none, - 0, 54, :_reduce_148, - 0, 120, :_reduce_149, - 1, 115, :_reduce_none, - 3, 115, :_reduce_151, - 3, 115, :_reduce_152, + 3, 119, :_reduce_145, 1, 121, :_reduce_none, - 3, 121, :_reduce_154, - 3, 122, :_reduce_155, - 1, 122, :_reduce_156, - 3, 122, :_reduce_157, - 1, 122, :_reduce_158, - 1, 118, :_reduce_none, - 2, 118, :_reduce_160, - 1, 116, :_reduce_none, - 2, 116, :_reduce_162, - 1, 123, :_reduce_none, + 1, 121, :_reduce_none, + 1, 121, :_reduce_none, + 1, 121, :_reduce_none, + 0, 55, :_reduce_150, + 0, 122, :_reduce_151, + 1, 117, :_reduce_none, + 3, 117, :_reduce_153, + 3, 117, :_reduce_154, 1, 123, :_reduce_none, - 1, 73, :_reduce_165, - 3, 98, :_reduce_166, - 2, 98, :_reduce_167, - 1, 104, :_reduce_none, - 1, 104, :_reduce_none, - 0, 84, :_reduce_none, - 1, 84, :_reduce_171 ] + 3, 123, :_reduce_156, + 3, 124, :_reduce_157, + 1, 124, :_reduce_158, + 3, 124, :_reduce_159, + 1, 124, :_reduce_160, + 1, 120, :_reduce_none, + 2, 120, :_reduce_162, + 1, 118, :_reduce_none, + 2, 118, :_reduce_164, + 1, 125, :_reduce_none, + 1, 125, :_reduce_none, + 1, 75, :_reduce_167, + 3, 100, :_reduce_168, + 2, 100, :_reduce_169, + 1, 106, :_reduce_none, + 1, 106, :_reduce_none, + 0, 86, :_reduce_none, + 1, 86, :_reduce_173 ] -racc_reduce_n = 172 +racc_reduce_n = 174 -racc_shift_n = 276 +racc_shift_n = 279 racc_action_table = [ - 71, 51, 53, 184, 162, 102, 71, 51, 53, 132, - 149, 5, 209, 47, -127, 87, 71, 51, 53, 88, - 208, 65, 71, 51, 53, 162, 144, 34, 35, 99, - 65, 89, 126, -127, 50, 54, 65, 126, 59, -123, - 50, 54, 207, 45, 59, 161, 65, 56, -126, 45, - 50, 54, 65, 56, 59, 90, 50, 54, 185, 45, - 59, 36, 169, 56, 37, 45, 71, 51, 53, 56, - 204, 206, 47, 51, 53, 200, 149, 51, 53, 33, - 199, -122, 71, 51, 53, 238, 1, 65, 71, 51, - 53, 67, 144, 34, 35, 87, 65, 237, 234, -123, - 50, 54, 65, 200, 59, 233, 50, 54, 199, 45, - 59, 252, 65, 56, 43, 45, 50, 54, 65, 56, - 59, 33, 50, 54, 156, 45, 59, 36, 1, 56, - 37, 45, 71, 51, 53, 56, 204, 206, 71, 51, - 53, 149, 149, 34, 35, 188, 259, 196, 71, 51, - 53, -125, 65, 65, 71, 51, 53, 144, 144, 51, - 53, 202, 65, 162, 33, 168, 50, 54, 65, 137, - 59, 1, 50, 54, 168, 45, 59, 36, 65, 56, - 37, 45, 50, 174, 65, 56, 59, -122, 50, 54, - 165, 111, 59, -125, -122, 56, 127, 45, 71, 51, - 53, 56, 33, 211, 71, 51, 53, 204, 206, 1, - 5, 135, 218, 186, 71, 51, 53, 188, 189, 106, - 125, 51, 53, 221, 222, 231, 140, 140, 65, 225, - 126, -124, 50, 54, 65, 228, 59, 47, 50, 54, - -139, 45, 59, 123, 65, 56, 106, 45, 50, 112, - 65, 56, 59, -124, 50, 174, 134, 111, 59, 51, - 53, 56, 164, 111, 239, 51, 53, 56, 240, 241, - 242, -124, 96, 140, -126, 51, 53, 93, 179, 168, - 91, 51, 53, 159, 181, 260, 262, 85, 65, 157, - 88, 133, 50, 174, 65, 41, 59, -124, 50, 54, - 128, 111, 59, -122, 65, 56, 43, 45, 50, 174, - 65, 56, 59, -125, 50, 54, -123, 111, 59, 51, - 53, 56, 43, 45, -127, 51, 53, 56, 176, 40, - 269, -171, 270, -128, -123, 51, 53, 152, -125, nil, - nil, 51, 53, nil, nil, nil, nil, nil, 65, nil, - nil, nil, 50, 174, 65, nil, 59, nil, 50, 174, - 43, 111, 59, nil, 65, 56, nil, 111, 50, 174, - 65, 56, 59, 254, 50, 174, nil, 111, 59, 51, - 53, 56, nil, 111, nil, 51, 53, 56, nil, nil, - nil, nil, nil, 15, nil, 19, 21, nil, 28, 2, - nil, 8, nil, 13, nil, 17, nil, 22, 65, nil, - 1, 5, 50, 174, 65, 264, 59, nil, 50, 174, - nil, 111, 59, nil, nil, 56, nil, 111, nil, nil, - nil, 56, nil, nil, 271, 15, nil, 19, 21, nil, - 28, 2, nil, 8, nil, 13, nil, 17, nil, 22, - nil, nil, 1, 5, 15, 212, 19, 21, nil, 28, - 2, nil, 8, nil, 13, nil, 17, nil, 22, nil, - nil, 1, 5, nil, 230, 15, nil, 19, 21, nil, - 28, 2, nil, 8, nil, 13, nil, 17, nil, 22, - nil, nil, 1, 5, 15, 253, 19, 21, nil, 28, - 2, nil, 8, nil, 13, nil, 17, nil, 22, nil, - nil, 1, 5, nil, 214, 15, nil, 19, 21, nil, - 28, 2, nil, 8, nil, 13, nil, 17, nil, 22, - nil, nil, 1, 5, 15, 274, 19, 21, nil, 28, - 2, nil, 8, nil, 13, nil, 17, nil, 22, nil, - nil, 1, 5, nil, 235, 15, nil, 19, 21, nil, - 28, 2, nil, 8, nil, 13, nil, 17, nil, 22, - nil, nil, 1, 5, 15, 275, 19, 21, nil, 28, - 2, nil, 8, nil, 13, nil, 17, nil, 22, nil, - nil, 1, 5, nil, nil, 15, nil, 19, 21, nil, - 28, 2, nil, 8, nil, 13, nil, 17, nil, 22, - nil, nil, 1, 5, 15, nil, 19, 21, nil, 28, - 2, nil, 8, nil, 13, nil, 17, nil, 22, nil, - nil, 1, 5, 15, nil, 19, 21, nil, 28, 2, - nil, 8, nil, 13, nil, 17, nil, 22, nil, nil, - 1, 5, 15, nil, 19, 21, nil, 28, 2, nil, - 8, nil, 13, nil, 17, nil, 22, nil, nil, 1, - 5, 15, nil, 19, 21, nil, 28, 2, nil, 8, - nil, 13, nil, 17, nil, 22, nil, nil, 1, 5 ] + 77, 57, 60, 246, 167, 105, 77, 57, 60, 101, + 199, 235, -124, 167, 241, 203, 77, 57, 60, 234, + 54, 92, 77, 57, 60, 94, 131, 240, 208, 209, + 104, 47, 77, 57, 60, 59, 63, 47, 95, 68, + 131, 59, 63, 137, 55, 68, 166, 47, 65, 211, + 55, 59, 178, 47, 65, 68, -125, 59, 63, 173, + 116, 68, 96, 47, 65, -126, 55, 59, 119, -128, + 65, 68, 77, 57, 60, 147, 116, 208, 209, 147, + 65, 213, 77, 57, 60, 147, 47, 40, 41, 212, + 47, 151, 54, 57, 60, 151, 47, 35, 77, 57, + 60, 151, 188, 47, 4, 9, 172, 59, 63, 199, + 9, 68, 50, 47, 203, -125, 55, 59, 63, 204, + 65, 68, 42, 47, 205, 43, 55, 59, 63, 47, + 65, 68, 35, 59, 63, 51, 55, 68, 167, 4, + 65, 147, 55, 77, 57, 60, 65, 33, 34, 77, + 57, 60, 47, 171, 40, 41, 35, 151, -127, 77, + 57, 60, -129, 4, 214, 77, 57, 60, 208, 209, + 40, 41, 57, 60, 47, 77, 57, 60, 59, 63, + 47, 171, 68, -124, 59, 63, -130, 55, 68, 42, + 47, 65, 43, 55, 59, 63, 47, 65, 68, -125, + 59, 63, 219, 55, 68, 42, 47, 65, 43, 55, + 59, 63, 111, 65, 68, 77, 57, 60, 92, 55, + 191, 262, -127, 65, -124, 77, 57, 60, 135, 57, + 60, 35, 57, 60, 159, 189, 224, 225, 4, 191, + 192, 145, 57, 60, 145, 228, 47, 131, 57, 60, + 59, 63, 127, 133, 68, 231, 47, 54, 132, 55, + 59, 63, 47, 65, 68, -126, 59, 63, 168, 55, + 68, -141, 47, 65, 51, 55, 59, 178, 47, 65, + 68, 238, 59, 178, 239, 116, 68, 57, 60, 65, + -126, 116, 242, 57, 60, 65, 129, 245, -128, 138, + -129, 111, 94, 57, 60, -127, 171, 91, 165, 263, + 265, 90, 163, 57, 60, 139, 140, 47, 46, 57, + 60, 59, 178, 47, -129, 68, -126, 59, 178, 51, + 116, 68, -124, 47, 65, -127, 116, 59, 178, 184, + 65, 68, -125, 47, 57, 60, 116, 59, 178, 47, + 65, 68, 45, 59, 63, 272, 116, 68, -173, 273, + 65, 51, 55, 160, 57, 60, 65, 179, 143, 145, + 183, 57, 60, nil, 47, 237, nil, nil, 59, 178, + nil, nil, 68, nil, nil, nil, nil, 116, nil, nil, + nil, 65, nil, nil, 47, nil, 278, nil, 59, 178, + nil, 47, 68, nil, nil, 59, 178, 116, nil, 68, + nil, 65, nil, nil, 116, 257, nil, 20, 65, 24, + 26, nil, 1, 5, nil, 12, nil, 18, nil, 22, + nil, 27, nil, nil, 4, 9, 20, 243, 24, 26, + nil, 1, 5, nil, 12, nil, 18, nil, 22, nil, + 27, nil, nil, 4, 9, nil, 270, nil, 20, nil, + 24, 26, nil, 1, 5, nil, 12, nil, 18, nil, + 22, nil, 27, nil, nil, 4, 9, 20, 233, 24, + 26, nil, 1, 5, nil, 12, nil, 18, nil, 22, + nil, 27, nil, nil, 4, 9, nil, 277, nil, 20, + nil, 24, 26, nil, 1, 5, nil, 12, nil, 18, + nil, 22, nil, 27, nil, nil, 4, 9, 20, 274, + 24, 26, nil, 1, 5, nil, 12, nil, 18, nil, + 22, nil, 27, nil, nil, 4, 9, nil, 217, nil, + 20, nil, 24, 26, nil, 1, 5, nil, 12, nil, + 18, nil, 22, nil, 27, nil, nil, 4, 9, 20, + 215, 24, 26, nil, 1, 5, nil, 12, nil, 18, + nil, 22, nil, 27, nil, nil, 4, 9, nil, 256, + nil, 20, nil, 24, 26, nil, 1, 5, nil, 12, + nil, 18, nil, 22, nil, 27, nil, nil, 4, 9, + 20, nil, 24, 26, nil, 1, 5, nil, 12, nil, + 18, nil, 22, nil, 27, nil, nil, 4, 9, 20, + nil, 24, 26, nil, 1, 5, nil, 12, nil, 18, + nil, 22, nil, 27, nil, nil, 4, 9, 20, nil, + 24, 26, nil, 1, 5, nil, 12, nil, 18, nil, + 22, nil, 27, nil, nil, 4, 9, 20, nil, 24, + 26, nil, 1, 5, nil, 12, nil, 18, nil, 22, + nil, 27, nil, nil, 4, 9, 20, nil, 24, 26, + nil, 1, 5, nil, 12, nil, 18, nil, 22, nil, + 27, nil, nil, 4, 9 ] racc_action_check = [ - 93, 93, 93, 127, 106, 38, 71, 71, 71, 71, - 90, 127, 146, 54, 78, 23, 87, 87, 87, 23, - 146, 90, 161, 161, 161, 112, 90, 102, 102, 38, - 93, 23, 54, 64, 93, 93, 71, 112, 93, 62, - 71, 71, 142, 93, 71, 106, 87, 93, 66, 71, - 87, 87, 161, 71, 87, 23, 161, 161, 129, 87, - 161, 102, 119, 87, 102, 161, 240, 240, 240, 161, - 142, 142, 13, 13, 13, 238, 149, 135, 135, 2, - 238, 74, 15, 15, 15, 197, 2, 149, 17, 17, - 17, 13, 149, 99, 99, 61, 240, 197, 194, 118, - 240, 240, 13, 137, 240, 194, 13, 13, 137, 240, - 13, 210, 15, 240, 13, 13, 15, 15, 17, 13, - 15, 96, 17, 17, 96, 15, 17, 99, 96, 15, - 99, 17, 239, 239, 239, 17, 210, 210, 162, 162, - 162, 89, 205, 8, 8, 227, 227, 136, 165, 165, - 165, 116, 89, 205, 47, 47, 47, 89, 205, 19, - 19, 139, 239, 140, 21, 141, 239, 239, 162, 84, - 239, 21, 162, 162, 115, 239, 162, 8, 165, 239, - 8, 162, 165, 165, 47, 162, 165, 114, 47, 47, - 113, 165, 47, 60, 58, 165, 55, 47, 225, 225, - 225, 47, 29, 151, 187, 187, 187, 151, 151, 29, - 29, 83, 163, 131, 41, 41, 41, 131, 131, 164, - 52, 192, 192, 166, 167, 192, 168, 169, 225, 170, - 174, 46, 225, 225, 187, 182, 225, 184, 187, 187, - 45, 225, 187, 42, 41, 225, 40, 187, 41, 41, - 192, 187, 41, 110, 192, 192, 81, 41, 192, 208, - 208, 41, 107, 192, 199, 126, 126, 192, 200, 201, - 203, 70, 32, 88, 79, 209, 209, 28, 124, 224, - 25, 67, 67, 100, 126, 230, 233, 22, 208, 97, - 95, 73, 208, 208, 126, 11, 208, 245, 126, 126, - 67, 208, 126, 246, 209, 208, 126, 126, 209, 209, - 67, 126, 209, 248, 67, 67, 249, 209, 67, 125, - 125, 209, 67, 67, 250, 123, 123, 67, 123, 9, - 258, 259, 260, 77, 76, 176, 176, 91, 75, nil, - nil, 134, 134, nil, nil, nil, nil, nil, 125, nil, - nil, nil, 125, 125, 123, nil, 125, nil, 123, 123, - 125, 125, 123, nil, 176, 125, nil, 123, 176, 176, - 134, 123, 176, 215, 134, 134, nil, 176, 134, 234, - 234, 176, nil, 134, nil, 257, 257, 134, nil, nil, - nil, nil, nil, 215, nil, 215, 215, nil, 215, 215, - nil, 215, nil, 215, nil, 215, nil, 215, 234, nil, - 215, 215, 234, 234, 257, 236, 234, nil, 257, 257, - nil, 234, 257, nil, nil, 234, nil, 257, nil, nil, - nil, 257, nil, nil, 262, 236, nil, 236, 236, nil, - 236, 236, nil, 236, nil, 236, nil, 236, nil, 236, - nil, nil, 236, 236, 262, 157, 262, 262, nil, 262, - 262, nil, 262, nil, 262, nil, 262, nil, 262, nil, - nil, 262, 262, nil, 190, 157, nil, 157, 157, nil, - 157, 157, nil, 157, nil, 157, nil, 157, nil, 157, - nil, nil, 157, 157, 190, 213, 190, 190, nil, 190, - 190, nil, 190, nil, 190, nil, 190, nil, 190, nil, - nil, 190, 190, nil, 159, 213, nil, 213, 213, nil, - 213, 213, nil, 213, nil, 213, nil, 213, nil, 213, - nil, nil, 213, 213, 159, 272, 159, 159, nil, 159, - 159, nil, 159, nil, 159, nil, 159, nil, 159, nil, - nil, 159, 159, nil, 196, 272, nil, 272, 272, nil, - 272, 272, nil, 272, nil, 272, nil, 272, nil, 272, - nil, nil, 272, 272, 196, 273, 196, 196, nil, 196, - 196, nil, 196, nil, 196, nil, 196, nil, 196, nil, - nil, 196, 196, nil, nil, 273, nil, 273, 273, nil, - 273, 273, nil, 273, nil, 273, nil, 273, nil, 273, - nil, nil, 273, 273, 133, nil, 133, 133, nil, 133, - 133, nil, 133, nil, 133, nil, 133, nil, 133, nil, - nil, 133, 133, 270, nil, 270, 270, nil, 270, 270, - nil, 270, nil, 270, nil, 270, nil, 270, nil, nil, - 270, 270, 27, nil, 27, 27, nil, 27, 27, nil, - 27, nil, 27, nil, 27, nil, 27, nil, nil, 27, - 27, 0, nil, 0, 0, nil, 0, 0, nil, 0, - nil, 0, nil, 0, nil, 0, nil, nil, 0, 0 ] + 228, 228, 228, 207, 111, 44, 54, 54, 54, 36, + 241, 195, 83, 119, 201, 241, 168, 168, 168, 195, + 63, 30, 92, 92, 92, 30, 119, 201, 207, 207, + 44, 228, 46, 46, 46, 228, 228, 54, 30, 228, + 63, 54, 54, 82, 228, 54, 111, 168, 228, 149, + 54, 168, 168, 92, 54, 168, 85, 92, 92, 128, + 168, 92, 30, 46, 168, 80, 92, 46, 46, 75, + 92, 46, 167, 167, 167, 95, 46, 149, 149, 147, + 46, 153, 166, 166, 166, 96, 95, 105, 105, 153, + 147, 95, 18, 18, 18, 147, 96, 6, 20, 20, + 20, 96, 133, 167, 6, 6, 126, 167, 167, 140, + 133, 167, 18, 166, 140, 125, 167, 166, 166, 142, + 167, 166, 105, 18, 144, 105, 166, 18, 18, 20, + 166, 18, 5, 20, 20, 18, 18, 20, 145, 5, + 18, 210, 20, 22, 22, 22, 20, 1, 1, 242, + 242, 242, 210, 146, 12, 12, 26, 210, 123, 238, + 238, 238, 74, 26, 156, 34, 34, 34, 156, 156, + 104, 104, 139, 139, 22, 33, 33, 33, 22, 22, + 242, 122, 22, 121, 242, 242, 73, 22, 242, 12, + 238, 22, 12, 242, 238, 238, 34, 242, 238, 72, + 34, 34, 164, 238, 34, 104, 33, 238, 104, 34, + 33, 33, 165, 34, 33, 190, 190, 190, 71, 33, + 230, 230, 70, 33, 69, 77, 77, 77, 77, 24, + 24, 101, 50, 50, 101, 136, 169, 170, 101, 136, + 136, 171, 235, 235, 172, 174, 190, 178, 138, 138, + 190, 190, 50, 66, 190, 185, 77, 188, 64, 190, + 77, 77, 50, 190, 77, 58, 50, 50, 120, 77, + 50, 55, 235, 77, 50, 50, 235, 235, 138, 50, + 235, 199, 138, 138, 200, 235, 138, 132, 132, 235, + 118, 138, 203, 260, 260, 138, 53, 206, 52, 86, + 49, 45, 38, 213, 213, 84, 227, 29, 107, 233, + 234, 27, 106, 212, 212, 88, 89, 132, 17, 131, + 131, 132, 132, 260, 248, 132, 250, 260, 260, 132, + 132, 260, 251, 213, 132, 253, 260, 213, 213, 131, + 260, 213, 254, 212, 179, 179, 213, 212, 212, 131, + 213, 212, 15, 131, 131, 261, 212, 131, 262, 263, + 212, 131, 131, 102, 129, 129, 131, 129, 91, 94, + 130, 197, 197, nil, 179, 197, nil, nil, 179, 179, + nil, nil, 179, nil, nil, nil, nil, 179, nil, nil, + nil, 179, nil, nil, 129, nil, 276, nil, 129, 129, + nil, 197, 129, nil, nil, 197, 197, 129, nil, 197, + nil, 129, nil, nil, 197, 218, nil, 276, 197, 276, + 276, nil, 276, 276, nil, 276, nil, 276, nil, 276, + nil, 276, nil, nil, 276, 276, 218, 204, 218, 218, + nil, 218, 218, nil, 218, nil, 218, nil, 218, nil, + 218, nil, nil, 218, 218, nil, 244, nil, 204, nil, + 204, 204, nil, 204, 204, nil, 204, nil, 204, nil, + 204, nil, 204, nil, nil, 204, 204, 244, 193, 244, + 244, nil, 244, 244, nil, 244, nil, 244, nil, 244, + nil, 244, nil, nil, 244, 244, nil, 275, nil, 193, + nil, 193, 193, nil, 193, 193, nil, 193, nil, 193, + nil, 193, nil, 193, nil, nil, 193, 193, 275, 265, + 275, 275, nil, 275, 275, nil, 275, nil, 275, nil, + 275, nil, 275, nil, nil, 275, 275, nil, 163, nil, + 265, nil, 265, 265, nil, 265, 265, nil, 265, nil, + 265, nil, 265, nil, 265, nil, nil, 265, 265, 163, + 160, 163, 163, nil, 163, 163, nil, 163, nil, 163, + nil, 163, nil, 163, nil, nil, 163, 163, nil, 216, + nil, 160, nil, 160, 160, nil, 160, 160, nil, 160, + nil, 160, nil, 160, nil, 160, nil, nil, 160, 160, + 216, nil, 216, 216, nil, 216, 216, nil, 216, nil, + 216, nil, 216, nil, 216, nil, nil, 216, 216, 273, + nil, 273, 273, nil, 273, 273, nil, 273, nil, 273, + nil, 273, nil, 273, nil, nil, 273, 273, 32, nil, + 32, 32, nil, 32, 32, nil, 32, nil, 32, nil, + 32, nil, 32, nil, nil, 32, 32, 137, nil, 137, + 137, nil, 137, 137, nil, 137, nil, 137, nil, 137, + nil, 137, nil, nil, 137, 137, 0, nil, 0, 0, + nil, 0, 0, nil, 0, nil, 0, nil, 0, nil, + 0, nil, nil, 0, 0 ] racc_action_pointer = [ - 644, nil, 42, nil, nil, nil, nil, nil, 140, 323, - nil, 289, nil, 70, nil, 80, nil, 86, nil, 156, - nil, 127, 246, 13, nil, 280, nil, 625, 264, 165, - nil, nil, 238, nil, nil, nil, nil, nil, -5, nil, - 209, 212, 223, nil, nil, 238, 211, 152, nil, nil, - nil, nil, 210, nil, 11, 186, nil, nil, 174, nil, - 173, 93, 19, nil, 13, nil, 28, 278, nil, nil, - 251, 4, nil, 285, 61, 318, 314, 313, -6, 254, - nil, 250, nil, 201, 148, nil, nil, 14, 236, 120, - -11, 337, nil, -2, nil, 284, 84, 283, nil, 90, - 277, nil, 24, nil, nil, nil, -5, 252, nil, nil, - 233, nil, 16, 152, 167, 164, 131, nil, 79, 45, - nil, nil, nil, 322, 273, 316, 262, -34, nil, 36, - nil, 208, nil, 587, 338, 74, 141, 71, nil, 156, - 154, 155, 23, nil, nil, nil, -3, nil, nil, 55, - nil, 160, nil, nil, nil, nil, nil, 448, nil, 507, - nil, 20, 136, 205, 182, 146, 216, 217, 189, 190, - 220, nil, nil, nil, 209, nil, 332, nil, nil, nil, - nil, nil, 213, nil, 235, nil, nil, 202, nil, nil, - 467, nil, 218, nil, 88, nil, 547, 75, nil, 251, - 255, 247, nil, 263, nil, 121, nil, nil, 256, 272, - 89, nil, nil, 488, nil, 366, nil, nil, nil, nil, - nil, nil, nil, nil, 269, 196, nil, 136, nil, nil, - 257, nil, nil, 280, 376, nil, 408, nil, 43, 130, - 64, nil, nil, nil, nil, 277, 283, nil, 293, 296, - 304, nil, nil, nil, nil, nil, nil, 382, 323, 324, - 326, nil, 427, nil, nil, nil, nil, nil, nil, nil, - 606, nil, 528, 568, nil, nil ] + 648, 134, nil, nil, nil, 94, 59, nil, nil, nil, + nil, nil, 151, nil, nil, 346, nil, 312, 90, nil, + 96, nil, 141, nil, 226, nil, 118, 269, nil, 307, + 19, nil, 610, 173, 163, nil, -26, nil, 296, nil, + nil, nil, nil, nil, -5, 263, 30, nil, nil, 279, + 229, nil, 277, 275, 4, 269, nil, nil, 244, nil, + nil, nil, nil, 18, 248, nil, 243, nil, nil, 203, + 201, 216, 178, 165, 141, 48, nil, 223, nil, nil, + 44, nil, 37, -9, 284, 35, 293, nil, 305, 294, + nil, 368, 20, nil, 331, 53, 63, nil, nil, nil, + nil, 193, 357, nil, 167, 84, 306, 298, nil, nil, + nil, -5, nil, nil, nil, nil, nil, nil, 269, 4, + 229, 162, 171, 137, nil, 94, 88, nil, 36, 361, + 365, 316, 284, 64, nil, nil, 230, 629, 245, 169, + 76, nil, 113, nil, 119, 129, 143, 57, nil, 29, + nil, nil, nil, 65, nil, nil, 120, nil, nil, nil, + 553, nil, nil, 531, 195, 174, 80, 70, 14, 229, + 230, 203, 206, nil, 236, nil, nil, nil, 225, 341, + nil, nil, nil, nil, nil, 232, nil, nil, 255, nil, + 213, nil, nil, 471, nil, 1, nil, 368, nil, 268, + 261, 4, nil, 279, 430, nil, 290, -20, nil, nil, + 119, nil, 310, 300, nil, nil, 572, nil, 408, nil, + nil, nil, nil, nil, nil, nil, nil, 296, -2, nil, + 211, nil, nil, 280, 304, 239, nil, nil, 157, nil, + nil, -23, 147, nil, 449, nil, nil, nil, 303, nil, + 305, 311, nil, 314, 321, nil, nil, nil, nil, nil, + 290, 348, 351, 353, nil, 512, nil, nil, nil, nil, + nil, nil, nil, 591, nil, 490, 389, nil, nil ] racc_action_default = [ - -148, -141, -172, -15, -3, -139, -16, -5, -172, -172, - -6, -172, -7, -140, -8, -172, -9, -172, -10, -172, - -11, -172, -39, -172, -12, -172, -13, -1, -172, -172, - -14, -2, -148, -140, -146, -145, -144, -147, -148, -142, - -77, -70, -172, -31, -29, -62, -30, -172, -32, -19, - -102, -100, -20, -101, -61, -21, -60, -22, -24, -129, - -25, -172, -26, -128, -27, -165, -28, -172, -108, -92, - -88, -172, -95, -172, -89, -93, -90, -97, -91, -96, - -94, -172, -130, -132, -148, -40, -41, -172, -70, -148, - -148, -172, -4, -172, -38, -172, -172, -172, -161, -172, - -172, -159, -172, -75, -76, -78, -172, -170, -66, -71, - -63, -62, -61, -58, -64, -170, -67, -56, -65, -172, - -127, -126, -68, -172, -172, -172, -172, -172, -18, -172, - -80, -172, -167, -172, -172, -172, -172, -149, -150, -172, - -172, -170, -172, -45, -61, -47, -172, -54, -53, -148, - -44, -172, 276, -69, -162, -163, -164, -172, -160, -172, - -143, -172, -172, -172, -171, -59, -172, -172, -171, -70, - -172, -124, -116, -117, -61, -122, -172, -125, -123, -103, - -23, -99, -172, -33, -172, -17, -166, -172, -168, -169, - -172, -114, -172, -110, -172, -131, -172, -172, -153, -156, - -158, -172, -104, -172, -50, -172, -49, -43, -172, -172, - -172, -42, -136, -172, -138, -172, -74, -73, -37, -79, - -57, -34, -35, -72, -170, -172, -119, -170, -98, -81, - -106, -109, -111, -172, -172, -134, -172, -152, -172, -172, - -172, -151, -36, -46, -86, -82, -83, -51, -87, -84, - -85, -52, -48, -135, -137, -55, -121, -172, -172, -169, - -172, -105, -172, -115, -133, -154, -155, -157, -120, -118, - -172, -113, -172, -172, -112, -107 ] + -150, -174, -14, -2, -143, -174, -174, -15, -3, -141, + -16, -5, -174, -17, -6, -174, -7, -174, -142, -8, + -174, -9, -174, -10, -174, -11, -174, -40, -12, -174, + -174, -13, -1, -174, -174, -142, -150, -39, -174, -144, + -148, -147, -146, -149, -150, -79, -72, -167, -130, -28, + -174, -32, -29, -174, -174, -63, -30, -102, -31, -104, + -103, -33, -20, -62, -21, -61, -22, -23, -131, -25, + -26, -174, -27, -99, -93, -98, -96, -174, -110, -94, + -90, -97, -174, -91, -95, -92, -174, -132, -134, -150, + -41, -174, -174, -42, -72, -150, -150, -4, -70, -71, + -163, -174, -174, -161, -174, -174, -174, -172, -77, -78, + -80, -174, -129, -128, -69, -67, -63, -73, -64, -62, + -59, -65, -172, -68, -57, -66, -174, -19, -174, -174, + -174, -174, -174, -174, -82, -169, -174, -174, -174, -174, + -151, -152, -174, 279, -174, -174, -172, -150, -45, -174, + -46, -62, -48, -174, -55, -54, -174, -164, -165, -166, + -174, -162, -145, -174, -174, -173, -174, -174, -60, -174, + -174, -173, -72, -18, -174, -126, -118, -119, -62, -174, + -124, -127, -125, -105, -101, -174, -24, -34, -174, -168, + -174, -170, -171, -174, -112, -174, -116, -174, -133, -160, + -174, -174, -155, -158, -174, -106, -174, -174, -51, -50, + -174, -44, -174, -174, -43, -138, -174, -140, -174, -38, + -81, -76, -75, -58, -35, -36, -74, -172, -174, -121, + -172, -100, -83, -108, -174, -174, -113, -111, -174, -153, + -154, -174, -174, -136, -174, -37, -49, -47, -87, -88, + -84, -85, -52, -89, -86, -53, -137, -139, -56, -123, + -174, -174, -171, -174, -107, -174, -117, -159, -156, -157, + -135, -122, -120, -174, -115, -174, -174, -114, -109 ] racc_goto_table = [ - 23, 27, 122, 92, 173, 105, 198, 49, 117, 46, - 187, 39, 31, 170, 32, 82, 193, 103, 115, 25, - 142, 151, 243, 44, 191, 247, 251, 23, 131, 95, - 64, 86, 73, 84, 261, 192, 107, 110, 166, 172, - 113, 227, 83, 62, 98, 163, 136, 97, 38, 100, - 101, 108, 180, 167, 201, 197, 94, 226, 120, 154, - nil, 129, nil, 46, 66, 141, 170, nil, nil, nil, - nil, 118, nil, nil, 232, nil, nil, 44, nil, 203, - 210, nil, 191, nil, 64, nil, nil, nil, nil, nil, - nil, nil, 121, nil, nil, nil, 138, 62, nil, nil, - nil, nil, 158, nil, nil, 160, 257, 265, 155, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 66, 171, - 182, 46, 46, nil, 263, nil, 122, nil, nil, 219, - 171, 195, 220, 23, 190, 44, 44, nil, 268, nil, - 120, 103, 64, 64, nil, 223, 224, 170, nil, nil, - nil, 120, nil, 178, nil, 62, 62, 23, 213, 23, - 215, 110, 255, nil, 178, 258, 92, nil, nil, nil, - 60, nil, 171, nil, 121, 108, 66, 66, nil, nil, - 58, nil, 120, nil, nil, 121, nil, nil, 171, 92, - 23, 92, nil, 120, nil, 118, 23, 236, 116, nil, - nil, nil, nil, nil, 245, 245, 178, nil, 114, 120, - nil, nil, 92, 23, nil, 23, 121, nil, 244, 244, - nil, nil, 178, nil, 60, 250, 250, 121, nil, nil, - 171, nil, nil, nil, 58, nil, 23, nil, 249, 249, - nil, nil, nil, 121, nil, nil, 148, 148, 92, 92, - nil, 120, nil, 171, nil, nil, 147, 147, nil, 121, - 121, nil, 23, 272, 178, nil, nil, nil, nil, nil, - 23, 273, 23, 23, 120, 68, nil, 81, nil, 77, - 177, 77, 60, 60, 48, 121, 72, 178, 72, nil, - 175, 177, 58, 58, nil, nil, nil, nil, nil, nil, - nil, 175, nil, nil, nil, nil, 148, 124, 121, nil, - nil, 77, nil, nil, nil, nil, 147, nil, 72, nil, - nil, nil, 116, nil, nil, nil, nil, nil, nil, nil, - nil, 130, 114, 177, nil, 77, nil, nil, 48, nil, - nil, nil, 72, 175, nil, nil, nil, 139, nil, 177, - nil, 77, nil, 153, nil, nil, nil, 77, 72, 175, - nil, nil, 148, nil, 72, 248, 248, nil, nil, nil, - nil, nil, 147, nil, nil, 246, 246, nil, nil, nil, + 30, 32, 56, 108, 174, 97, 38, 110, 52, 39, + 122, 177, 62, 196, 190, 3, 202, 114, 194, 29, + 58, 124, 149, 156, 164, 247, 87, 136, 36, 93, + 115, 82, 30, 264, 56, 197, 113, 252, 255, 170, + 52, 107, 169, 176, 128, 120, 230, 88, 118, 89, + 142, 100, 58, 102, 174, 44, 106, 186, 146, 103, + 49, 229, 200, 206, 201, 37, 157, nil, nil, nil, + nil, 61, 196, 81, 207, 81, nil, 236, nil, nil, + nil, nil, nil, nil, nil, nil, 81, 81, 112, nil, + nil, nil, 49, nil, nil, nil, nil, nil, nil, nil, + nil, 161, 162, 61, 141, nil, nil, 81, 260, nil, + 266, nil, nil, nil, nil, 56, 56, 268, 72, 113, + nil, 52, 52, 108, 158, 185, nil, 220, 113, 226, + 81, 175, nil, 58, 58, 174, 227, 30, 193, 114, + 175, 198, 271, 223, 258, 81, 125, 261, nil, nil, + 72, nil, 115, nil, nil, nil, nil, nil, 113, nil, + 30, 216, nil, 30, 218, nil, 97, nil, nil, 113, + 118, 112, nil, 49, 49, nil, nil, nil, nil, 70, + 112, 175, nil, nil, 61, nil, 187, 113, nil, 97, + nil, 97, nil, 30, nil, nil, 249, 249, nil, 175, + nil, nil, 113, 113, 30, 244, nil, 123, nil, nil, + 112, 70, nil, nil, 250, 250, 30, 97, 30, 81, + 81, 112, nil, nil, nil, 113, nil, nil, nil, 182, + nil, 72, 72, nil, nil, nil, nil, 175, 182, 112, + nil, nil, nil, 81, 30, nil, nil, nil, 97, 97, + 113, nil, nil, nil, 248, 248, 155, 155, nil, nil, + nil, nil, 175, nil, nil, 30, 275, nil, 125, 78, + nil, 86, 69, 30, 276, 30, 30, 112, nil, 182, + nil, 81, 98, 99, nil, nil, nil, nil, nil, nil, + 181, 81, 70, 70, nil, 81, nil, 182, nil, 181, + 121, nil, 112, 130, 69, nil, nil, nil, 155, 73, + nil, 73, 254, 254, nil, nil, nil, nil, nil, nil, + nil, nil, 73, 73, nil, nil, 134, nil, nil, 123, + nil, nil, nil, nil, nil, 182, nil, nil, nil, nil, + 181, 144, nil, 73, nil, nil, nil, nil, nil, 154, + 154, nil, nil, nil, nil, nil, nil, nil, 181, nil, + 182, nil, nil, nil, nil, nil, 73, nil, nil, nil, + nil, 155, nil, 253, 253, nil, nil, nil, nil, nil, + nil, 73, nil, 180, nil, 69, 69, nil, nil, nil, + nil, nil, 180, nil, nil, nil, 181, nil, nil, nil, + nil, 154, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 221, 222, nil, nil, nil, + nil, 181, 121, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 180, nil, nil, nil, nil, nil, 232, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 177, nil, nil, nil, nil, nil, 48, 183, nil, - nil, 175, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 177, nil, nil, nil, nil, nil, - nil, 216, 217, nil, 175, 77, 77, nil, nil, nil, - nil, nil, 72, 72, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 229, nil, nil, - nil, 77, nil, nil, nil, nil, nil, nil, 72, nil, + nil, 180, nil, nil, nil, 73, 73, nil, nil, nil, + nil, nil, nil, nil, 154, nil, 251, 251, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 259, nil, 73, + nil, nil, nil, nil, nil, nil, nil, 267, nil, 180, + nil, 269, 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, 256, nil, nil, nil, 77, - nil, nil, nil, nil, nil, nil, 72, nil, nil, 266, - 267, nil, nil, 77, 77, nil, nil, nil, nil, nil, - 72, 72 ] + nil, nil, nil, nil, 180, nil, nil, 73, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 73, nil, nil, + nil, 73 ] racc_goto_check = [ - 34, 2, 47, 4, 61, 51, 71, 17, 44, 27, - 53, 68, 3, 59, 29, 27, 57, 49, 32, 1, - 38, 38, 39, 26, 59, 43, 43, 34, 52, 34, - 24, 37, 54, 29, 55, 56, 35, 27, 31, 60, - 30, 62, 63, 23, 3, 33, 64, 65, 66, 67, - 3, 26, 20, 33, 69, 70, 5, 61, 24, 72, - nil, 17, nil, 27, 25, 32, 59, nil, nil, nil, - nil, 23, nil, nil, 57, nil, nil, 26, nil, 33, - 38, nil, 59, nil, 24, nil, nil, nil, nil, nil, - nil, nil, 25, nil, nil, nil, 3, 23, nil, nil, - nil, nil, 68, nil, nil, 68, 53, 71, 29, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 25, 27, - 17, 27, 27, nil, 59, nil, 47, nil, nil, 51, - 27, 27, 44, 34, 2, 26, 26, nil, 61, nil, - 24, 49, 24, 24, nil, 49, 32, 59, nil, nil, - nil, 24, nil, 23, nil, 23, 23, 34, 2, 34, - 2, 27, 33, nil, 23, 33, 4, nil, nil, nil, - 22, nil, 27, nil, 25, 26, 25, 25, nil, nil, - 21, nil, 24, nil, nil, 25, nil, nil, 27, 4, - 34, 4, nil, 24, nil, 23, 34, 2, 22, nil, - nil, nil, nil, nil, 27, 27, 23, nil, 21, 24, - nil, nil, 4, 34, nil, 34, 25, nil, 26, 26, - nil, nil, 23, nil, 22, 24, 24, 25, nil, nil, - 27, nil, nil, nil, 21, nil, 34, nil, 23, 23, - nil, nil, nil, 25, nil, nil, 22, 22, 4, 4, - nil, 24, nil, 27, nil, nil, 21, 21, nil, 25, - 25, nil, 34, 2, 23, nil, nil, nil, nil, nil, - 34, 2, 34, 34, 24, 48, nil, 48, nil, 46, - 22, 46, 22, 22, 28, 25, 28, 23, 28, nil, - 21, 22, 21, 21, nil, nil, nil, nil, nil, nil, - nil, 21, nil, nil, nil, nil, 22, 48, 25, nil, - nil, 46, nil, nil, nil, nil, 21, nil, 28, nil, - nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, - nil, 48, 21, 22, nil, 46, nil, nil, 28, nil, - nil, nil, 28, 21, nil, nil, nil, 48, nil, 22, - nil, 46, nil, 48, nil, nil, nil, 46, 28, 21, - nil, nil, 22, nil, 28, 22, 22, nil, nil, nil, - nil, nil, 21, nil, nil, 21, 21, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 22, nil, nil, nil, nil, nil, 28, 28, nil, - nil, 21, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 22, nil, nil, nil, nil, nil, - nil, 48, 48, nil, 21, 46, 46, nil, nil, nil, - nil, nil, 28, 28, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 48, nil, nil, - nil, 46, nil, nil, nil, nil, nil, nil, 28, nil, + 35, 2, 27, 50, 60, 4, 35, 52, 26, 69, + 33, 62, 18, 60, 54, 3, 72, 48, 58, 1, + 28, 45, 39, 39, 34, 40, 28, 53, 30, 38, + 27, 55, 35, 56, 27, 57, 26, 44, 44, 34, + 26, 36, 32, 61, 18, 31, 63, 64, 28, 30, + 65, 3, 28, 66, 60, 67, 68, 21, 33, 3, + 25, 62, 70, 34, 71, 5, 73, nil, nil, nil, + nil, 29, 60, 29, 39, 29, nil, 58, nil, nil, + nil, nil, nil, nil, nil, nil, 29, 29, 25, nil, + nil, nil, 25, nil, nil, nil, nil, nil, nil, nil, + nil, 69, 69, 29, 3, nil, nil, 29, 54, nil, + 60, nil, nil, nil, nil, 27, 27, 72, 24, 26, + nil, 26, 26, 50, 30, 18, nil, 52, 26, 50, + 29, 28, nil, 28, 28, 60, 33, 35, 2, 48, + 28, 28, 62, 45, 34, 29, 24, 34, nil, nil, + 24, nil, 27, nil, nil, nil, nil, nil, 26, nil, + 35, 2, nil, 35, 2, nil, 4, nil, nil, 26, + 28, 25, nil, 25, 25, nil, nil, nil, nil, 23, + 25, 28, nil, nil, 29, nil, 29, 26, nil, 4, + nil, 4, nil, 35, nil, nil, 27, 27, nil, 28, + nil, nil, 26, 26, 35, 2, nil, 23, nil, nil, + 25, 23, nil, nil, 28, 28, 35, 4, 35, 29, + 29, 25, nil, nil, nil, 26, nil, nil, nil, 24, + nil, 24, 24, nil, nil, nil, nil, 28, 24, 25, + nil, nil, nil, 29, 35, nil, nil, nil, 4, 4, + 26, nil, nil, nil, 25, 25, 23, 23, nil, nil, + nil, nil, 28, nil, nil, 35, 2, nil, 24, 49, + nil, 49, 22, 35, 2, 35, 35, 25, nil, 24, + nil, 29, 49, 49, nil, nil, nil, nil, nil, nil, + 23, 29, 23, 23, nil, 29, nil, 24, nil, 23, + 22, nil, 25, 49, 22, nil, nil, nil, 23, 47, + nil, 47, 24, 24, nil, nil, nil, nil, nil, nil, + nil, nil, 47, 47, nil, nil, 49, nil, nil, 23, + nil, nil, nil, nil, nil, 24, nil, nil, nil, nil, + 23, 49, nil, 47, nil, nil, nil, nil, nil, 22, + 22, nil, nil, nil, nil, nil, nil, nil, 23, nil, + 24, nil, nil, nil, nil, nil, 47, nil, nil, nil, + nil, 23, nil, 23, 23, nil, nil, nil, nil, nil, + nil, 47, nil, 22, nil, 22, 22, nil, nil, nil, + nil, nil, 22, nil, nil, nil, 23, nil, nil, nil, + nil, 22, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 49, 49, nil, nil, nil, + nil, 23, 22, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 22, nil, nil, nil, nil, nil, 49, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 22, nil, nil, nil, 47, 47, nil, nil, nil, + nil, nil, nil, nil, 22, nil, 22, 22, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 49, nil, 47, + nil, nil, nil, nil, nil, nil, nil, 49, nil, 22, + nil, 49, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 48, nil, nil, nil, 46, - nil, nil, nil, nil, nil, nil, 28, nil, nil, 48, - 48, nil, nil, 46, 46, nil, nil, nil, nil, nil, - 28, 28 ] + nil, nil, nil, nil, 22, nil, nil, 47, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 47, nil, nil, + nil, 47 ] racc_goto_pointer = [ - nil, 19, 1, 12, -24, 27, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, -6, nil, nil, - -73, 167, 157, 30, 17, 51, 10, -4, 271, 12, - -1, -75, -23, -62, 0, -4, nil, 8, -69, -183, - nil, nil, nil, -183, -33, nil, 264, -39, 260, -23, - nil, -35, -43, -121, 17, -196, -99, -118, nil, -110, - -84, -119, -135, 23, -38, 15, 40, 11, 3, -83, - -82, -131, -37 ] + nil, 19, 1, 15, -27, 59, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, -6, nil, + nil, -75, 254, 161, 100, 42, -10, -16, 2, 53, + 23, -1, -78, -36, -83, 0, -4, nil, -1, -73, + -185, nil, nil, nil, -175, -25, nil, 289, -29, 249, + -42, nil, -38, -50, -122, 11, -200, -103, -120, nil, + -125, -86, -118, -133, 23, -39, 17, 43, 12, -3, + -78, -76, -124, -35 ] racc_goto_default = [ - nil, nil, nil, 150, 4, 7, 10, 12, 14, 16, - 18, 20, 24, 26, 30, 3, 6, nil, 52, 55, - 57, 74, 75, 76, 78, 79, 69, 70, 9, 11, - nil, nil, nil, nil, 61, nil, 29, nil, nil, 143, - 205, 145, 146, nil, nil, 119, 63, 80, nil, 109, - 104, nil, nil, nil, nil, nil, nil, nil, 194, 42, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil ] + nil, nil, nil, 148, 8, 11, 14, 16, 19, 21, + 23, 25, 28, 31, 2, 7, 10, 13, nil, 64, + 66, 67, 83, 84, 85, 74, 75, 79, 80, 15, + 17, nil, nil, nil, nil, 71, nil, 6, nil, nil, + 150, 210, 152, 153, nil, nil, 126, 48, 76, nil, + 117, 109, nil, nil, nil, nil, nil, nil, nil, 195, + 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil ] racc_token_table = { false => 0, @@ -568,47 +576,48 @@ racc_token_table = { :TRUE => 11, :FALSE => 12, :EQUALS => 13, - :LESSEQUAL => 14, - :NOTEQUAL => 15, - :DOT => 16, - :COLON => 17, - :LLCOLLECT => 18, - :RRCOLLECT => 19, - :QMARK => 20, - :LPAREN => 21, - :RPAREN => 22, - :ISEQUAL => 23, - :GREATEREQUAL => 24, - :GREATERTHAN => 25, - :LESSTHAN => 26, - :IF => 27, - :ELSE => 28, - :IMPORT => 29, - :DEFINE => 30, - :ELSIF => 31, - :VARIABLE => 32, - :CLASS => 33, - :INHERITS => 34, - :NODE => 35, - :BOOLEAN => 36, - :NAME => 37, - :SEMIC => 38, - :CASE => 39, - :DEFAULT => 40, - :AT => 41, - :LCOLLECT => 42, - :RCOLLECT => 43, - :CLASSNAME => 44, - :CLASSREF => 45, - :NOT => 46, - :OR => 47, - :AND => 48, - :UNDEF => 49, - :PARROW => 50 } + :APPENDS => 14, + :LESSEQUAL => 15, + :NOTEQUAL => 16, + :DOT => 17, + :COLON => 18, + :LLCOLLECT => 19, + :RRCOLLECT => 20, + :QMARK => 21, + :LPAREN => 22, + :RPAREN => 23, + :ISEQUAL => 24, + :GREATEREQUAL => 25, + :GREATERTHAN => 26, + :LESSTHAN => 27, + :IF => 28, + :ELSE => 29, + :IMPORT => 30, + :DEFINE => 31, + :ELSIF => 32, + :VARIABLE => 33, + :CLASS => 34, + :INHERITS => 35, + :NODE => 36, + :BOOLEAN => 37, + :NAME => 38, + :SEMIC => 39, + :CASE => 40, + :DEFAULT => 41, + :AT => 42, + :LCOLLECT => 43, + :RCOLLECT => 44, + :CLASSNAME => 45, + :CLASSREF => 46, + :NOT => 47, + :OR => 48, + :AND => 49, + :UNDEF => 50, + :PARROW => 51 } racc_use_result_var = true -racc_nt_base = 51 +racc_nt_base = 52 Racc_arg = [ racc_action_table, @@ -641,6 +650,7 @@ Racc_token_to_s_table = [ 'TRUE', 'FALSE', 'EQUALS', +'APPENDS', 'LESSEQUAL', 'NOTEQUAL', 'DOT', @@ -695,6 +705,7 @@ Racc_token_to_s_table = [ 'hostclass', 'nodedef', 'resourceoverride', +'append', 'funcvalues', 'namestrings', 'resourcerefs', @@ -823,8 +834,10 @@ module_eval <<'.,.,', 'grammar.ra', 46 # reduce 16 omitted -module_eval <<'.,.,', 'grammar.ra', 68 - def _reduce_17( val, _values, result ) + # reduce 17 omitted + +module_eval <<'.,.,', 'grammar.ra', 69 + def _reduce_18( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0], @@ -834,8 +847,8 @@ module_eval <<'.,.,', 'grammar.ra', 68 end .,., -module_eval <<'.,.,', 'grammar.ra', 74 - def _reduce_18( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 75 + def _reduce_19( val, _values, result ) result = ast AST::Function, :name => val[0], :arguments => AST::ASTArray.new({}), @@ -844,8 +857,8 @@ module_eval <<'.,.,', 'grammar.ra', 74 end .,., -module_eval <<'.,.,', 'grammar.ra', 81 - def _reduce_19( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 82 + def _reduce_20( val, _values, result ) args = aryfy(val[1]) result = ast AST::Function, :name => val[0], @@ -855,14 +868,14 @@ module_eval <<'.,.,', 'grammar.ra', 81 end .,., - # reduce 20 omitted - # reduce 21 omitted # reduce 22 omitted -module_eval <<'.,.,', 'grammar.ra', 91 - def _reduce_23( val, _values, result ) + # reduce 23 omitted + +module_eval <<'.,.,', 'grammar.ra', 92 + def _reduce_24( val, _values, result ) result = aryfy(val[0], val[2]) result.line = @lexer.line result.file = @lexer.file @@ -870,8 +883,6 @@ module_eval <<'.,.,', 'grammar.ra', 91 end .,., - # reduce 24 omitted - # reduce 25 omitted # reduce 26 omitted @@ -884,17 +895,19 @@ module_eval <<'.,.,', 'grammar.ra', 91 # reduce 30 omitted -module_eval <<'.,.,', 'grammar.ra', 104 - def _reduce_31( val, _values, result ) + # reduce 31 omitted + +module_eval <<'.,.,', 'grammar.ra', 105 + def _reduce_32( val, _values, result ) result = ast AST::Name, :value => val[0] result end .,., - # reduce 32 omitted + # reduce 33 omitted -module_eval <<'.,.,', 'grammar.ra', 115 - def _reduce_33( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 116 + def _reduce_34( val, _values, result ) unless val[0].is_a?(AST::ASTArray) val[0] = aryfy(val[0]) end @@ -906,8 +919,8 @@ module_eval <<'.,.,', 'grammar.ra', 115 end .,., -module_eval <<'.,.,', 'grammar.ra', 136 - def _reduce_34( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 137 + def _reduce_35( val, _values, result ) array = val[2] if array.instance_of?(AST::ResourceInstance) array = [array] @@ -930,31 +943,31 @@ module_eval <<'.,.,', 'grammar.ra', 136 end .,., -module_eval <<'.,.,', 'grammar.ra', 139 - def _reduce_35( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 140 + def _reduce_36( val, _values, result ) # This is a deprecated syntax. error "All resource specifications require names" result end .,., -module_eval <<'.,.,', 'grammar.ra', 142 - def _reduce_36( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 143 + def _reduce_37( val, _values, result ) # a defaults setting for a type result = ast(AST::ResourceDefaults, :type => val[0], :params => val[2]) result end .,., -module_eval <<'.,.,', 'grammar.ra', 147 - def _reduce_37( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 148 + def _reduce_38( val, _values, result ) result = ast AST::ResourceOverride, :object => val[0], :params => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 174 - def _reduce_38( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 175 + def _reduce_39( val, _values, result ) type = val[0] if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly] @@ -981,22 +994,22 @@ module_eval <<'.,.,', 'grammar.ra', 174 end .,., -module_eval <<'.,.,', 'grammar.ra', 175 - def _reduce_39( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 176 + def _reduce_40( val, _values, result ) result = :virtual result end .,., -module_eval <<'.,.,', 'grammar.ra', 176 - def _reduce_40( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 177 + def _reduce_41( val, _values, result ) result = :exported result end .,., -module_eval <<'.,.,', 'grammar.ra', 199 - def _reduce_41( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 200 + def _reduce_42( val, _values, result ) if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end @@ -1018,8 +1031,8 @@ module_eval <<'.,.,', 'grammar.ra', 199 end .,., -module_eval <<'.,.,', 'grammar.ra', 209 - def _reduce_42( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 210 + def _reduce_43( val, _values, result ) if val[1] result = val[1] result.form = :virtual @@ -1030,8 +1043,8 @@ module_eval <<'.,.,', 'grammar.ra', 209 end .,., -module_eval <<'.,.,', 'grammar.ra', 217 - def _reduce_43( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 218 + def _reduce_44( val, _values, result ) if val[1] result = val[1] result.form = :exported @@ -1042,33 +1055,33 @@ module_eval <<'.,.,', 'grammar.ra', 217 end .,., - # reduce 44 omitted - # reduce 45 omitted -module_eval <<'.,.,', 'grammar.ra', 225 - def _reduce_46( val, _values, result ) + # reduce 46 omitted + +module_eval <<'.,.,', 'grammar.ra', 226 + def _reduce_47( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] result end .,., - # reduce 47 omitted + # reduce 48 omitted -module_eval <<'.,.,', 'grammar.ra', 231 - def _reduce_48( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 232 + def _reduce_49( val, _values, result ) result = val[1] result.parens = true result end .,., - # reduce 49 omitted - # reduce 50 omitted -module_eval <<'.,.,', 'grammar.ra', 239 - def _reduce_51( val, _values, result ) + # reduce 51 omitted + +module_eval <<'.,.,', 'grammar.ra', 240 + def _reduce_52( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] #result = ast AST::CollExpr #result.push *val @@ -1076,8 +1089,8 @@ module_eval <<'.,.,', 'grammar.ra', 239 end .,., -module_eval <<'.,.,', 'grammar.ra', 244 - def _reduce_52( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 245 + def _reduce_53( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] #result = ast AST::CollExpr #result.push *val @@ -1085,21 +1098,21 @@ module_eval <<'.,.,', 'grammar.ra', 244 end .,., - # reduce 53 omitted - # reduce 54 omitted -module_eval <<'.,.,', 'grammar.ra', 251 - def _reduce_55( val, _values, result ) + # reduce 55 omitted + +module_eval <<'.,.,', 'grammar.ra', 252 + def _reduce_56( val, _values, result ) result = ast AST::ResourceInstance, :children => [val[0],val[2]] result end .,., - # reduce 56 omitted + # reduce 57 omitted -module_eval <<'.,.,', 'grammar.ra', 261 - def _reduce_57( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 262 + def _reduce_58( val, _values, result ) if val[0].instance_of?(AST::ResourceInstance) result = ast AST::ASTArray, :children => [val[0],val[2]] else @@ -1110,33 +1123,31 @@ module_eval <<'.,.,', 'grammar.ra', 261 end .,., - # reduce 58 omitted - # reduce 59 omitted -module_eval <<'.,.,', 'grammar.ra', 268 - def _reduce_60( val, _values, result ) + # reduce 60 omitted + +module_eval <<'.,.,', 'grammar.ra', 269 + def _reduce_61( val, _values, result ) result = ast AST::Undef, :value => :undef result end .,., -module_eval <<'.,.,', 'grammar.ra', 272 - def _reduce_61( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 273 + def _reduce_62( val, _values, result ) result = ast AST::Name, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 276 - def _reduce_62( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 277 + def _reduce_63( val, _values, result ) result = ast AST::Type, :value => val[0] result end .,., - # reduce 63 omitted - # reduce 64 omitted # reduce 65 omitted @@ -1147,8 +1158,10 @@ module_eval <<'.,.,', 'grammar.ra', 276 # reduce 68 omitted -module_eval <<'.,.,', 'grammar.ra', 292 - def _reduce_69( val, _values, result ) + # reduce 69 omitted + +module_eval <<'.,.,', 'grammar.ra', 293 + def _reduce_70( val, _values, result ) if val[0] =~ /::/ raise Puppet::ParseError, "Cannot assign to variables in other namespaces" end @@ -1159,22 +1172,30 @@ module_eval <<'.,.,', 'grammar.ra', 292 end .,., -module_eval <<'.,.,', 'grammar.ra', 297 - def _reduce_70( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 298 + def _reduce_71( val, _values, result ) + variable = ast AST::Name, :value => val[0] + result = ast AST::VarDef, :name => variable, :value => val[2], :append => true + result + end +.,., + +module_eval <<'.,.,', 'grammar.ra', 303 + def _reduce_72( val, _values, result ) result = ast AST::ASTArray result end .,., -module_eval <<'.,.,', 'grammar.ra', 297 - def _reduce_71( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 303 + def _reduce_73( val, _values, result ) result = val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 306 - def _reduce_72( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 312 + def _reduce_74( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1185,41 +1206,41 @@ module_eval <<'.,.,', 'grammar.ra', 306 end .,., -module_eval <<'.,.,', 'grammar.ra', 310 - def _reduce_73( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 316 + def _reduce_75( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 315 - def _reduce_74( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 321 + def _reduce_76( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2], :add => true result end .,., - # reduce 75 omitted + # reduce 77 omitted - # reduce 76 omitted + # reduce 78 omitted -module_eval <<'.,.,', 'grammar.ra', 323 - def _reduce_77( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 329 + def _reduce_79( val, _values, result ) result = ast AST::ASTArray result end .,., -module_eval <<'.,.,', 'grammar.ra', 323 - def _reduce_78( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 329 + def _reduce_80( val, _values, result ) result = val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 332 - def _reduce_79( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 338 + def _reduce_81( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1230,10 +1251,10 @@ module_eval <<'.,.,', 'grammar.ra', 332 end .,., - # reduce 80 omitted + # reduce 82 omitted -module_eval <<'.,.,', 'grammar.ra', 341 - def _reduce_81( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 347 + def _reduce_83( val, _values, result ) if val[0].instance_of?(AST::ASTArray) result = val[0].push(val[2]) else @@ -1243,10 +1264,6 @@ module_eval <<'.,.,', 'grammar.ra', 341 end .,., - # reduce 82 omitted - - # reduce 83 omitted - # reduce 84 omitted # reduce 85 omitted @@ -1275,8 +1292,12 @@ module_eval <<'.,.,', 'grammar.ra', 341 # reduce 97 omitted -module_eval <<'.,.,', 'grammar.ra', 368 - def _reduce_98( val, _values, result ) + # reduce 98 omitted + + # reduce 99 omitted + +module_eval <<'.,.,', 'grammar.ra', 374 + def _reduce_100( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0], @@ -1286,8 +1307,8 @@ module_eval <<'.,.,', 'grammar.ra', 368 end .,., -module_eval <<'.,.,', 'grammar.ra', 373 - def _reduce_99( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 379 + def _reduce_101( val, _values, result ) result = ast AST::Function, :name => val[0], :arguments => AST::ASTArray.new({}), @@ -1296,44 +1317,44 @@ module_eval <<'.,.,', 'grammar.ra', 373 end .,., -module_eval <<'.,.,', 'grammar.ra', 377 - def _reduce_100( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 383 + def _reduce_102( val, _values, result ) result = ast AST::String, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 379 - def _reduce_101( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 385 + def _reduce_103( val, _values, result ) result = ast AST::FlatString, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 383 - def _reduce_102( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 389 + def _reduce_104( val, _values, result ) result = ast AST::Boolean, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 388 - def _reduce_103( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 394 + def _reduce_105( val, _values, result ) Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized") result = ast AST::ResourceReference, :type => val[0], :title => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 390 - def _reduce_104( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 396 + def _reduce_106( val, _values, result ) result = ast AST::ResourceReference, :type => val[0], :title => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 403 - def _reduce_105( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 409 + def _reduce_107( val, _values, result ) args = { :test => val[1], :statements => val[3] @@ -1348,19 +1369,19 @@ module_eval <<'.,.,', 'grammar.ra', 403 end .,., - # reduce 106 omitted + # reduce 108 omitted -module_eval <<'.,.,', 'grammar.ra', 408 - def _reduce_107( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 414 + def _reduce_109( val, _values, result ) result = ast AST::Else, :statements => val[2] result end .,., - # reduce 108 omitted + # reduce 110 omitted -module_eval <<'.,.,', 'grammar.ra', 420 - def _reduce_109( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 426 + def _reduce_111( val, _values, result ) options = val[3] unless options.instance_of?(AST::ASTArray) options = ast AST::ASTArray, :children => [val[3]] @@ -1370,10 +1391,10 @@ module_eval <<'.,.,', 'grammar.ra', 420 end .,., - # reduce 110 omitted + # reduce 112 omitted -module_eval <<'.,.,', 'grammar.ra', 430 - def _reduce_111( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 436 + def _reduce_113( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push val[1] result = val[0] @@ -1384,15 +1405,15 @@ module_eval <<'.,.,', 'grammar.ra', 430 end .,., -module_eval <<'.,.,', 'grammar.ra', 434 - def _reduce_112( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 440 + def _reduce_114( val, _values, result ) result = ast AST::CaseOpt, :value => val[0], :statements => val[3] result end .,., -module_eval <<'.,.,', 'grammar.ra', 439 - def _reduce_113( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 445 + def _reduce_115( val, _values, result ) result = ast(AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) @@ -1401,10 +1422,10 @@ module_eval <<'.,.,', 'grammar.ra', 439 end .,., - # reduce 114 omitted + # reduce 116 omitted -module_eval <<'.,.,', 'grammar.ra', 449 - def _reduce_115( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 455 + def _reduce_117( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1415,26 +1436,26 @@ module_eval <<'.,.,', 'grammar.ra', 449 end .,., -module_eval <<'.,.,', 'grammar.ra', 453 - def _reduce_116( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 459 + def _reduce_118( val, _values, result ) result = ast AST::Selector, :param => val[0], :values => val[2] result end .,., - # reduce 117 omitted + # reduce 119 omitted -module_eval <<'.,.,', 'grammar.ra', 455 - def _reduce_118( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 461 + def _reduce_120( val, _values, result ) result = val[1] result end .,., - # reduce 119 omitted + # reduce 121 omitted -module_eval <<'.,.,', 'grammar.ra', 466 - def _reduce_120( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 472 + def _reduce_122( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1445,17 +1466,13 @@ module_eval <<'.,.,', 'grammar.ra', 466 end .,., -module_eval <<'.,.,', 'grammar.ra', 470 - def _reduce_121( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 476 + def _reduce_123( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., - # reduce 122 omitted - - # reduce 123 omitted - # reduce 124 omitted # reduce 125 omitted @@ -1466,29 +1483,33 @@ module_eval <<'.,.,', 'grammar.ra', 470 # reduce 128 omitted -module_eval <<'.,.,', 'grammar.ra', 481 - def _reduce_129( val, _values, result ) + # reduce 129 omitted + + # reduce 130 omitted + +module_eval <<'.,.,', 'grammar.ra', 487 + def _reduce_131( val, _values, result ) result = ast AST::Default, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 483 - def _reduce_130( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 489 + def _reduce_132( val, _values, result ) result = [val[0].value] result end .,., -module_eval <<'.,.,', 'grammar.ra', 487 - def _reduce_131( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 493 + def _reduce_133( val, _values, result ) results = val[0] << val[2].value result end .,., -module_eval <<'.,.,', 'grammar.ra', 495 - def _reduce_132( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 501 + def _reduce_134( val, _values, result ) val[1].each do |file| import(file) end @@ -1498,8 +1519,8 @@ module_eval <<'.,.,', 'grammar.ra', 495 end .,., -module_eval <<'.,.,', 'grammar.ra', 505 - def _reduce_133( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 511 + def _reduce_135( val, _values, result ) newdefine classname(val[1]), :arguments => val[2], :code => val[4] @lexer.indefine = false result = nil @@ -1509,8 +1530,8 @@ module_eval <<'.,.,', 'grammar.ra', 505 end .,., -module_eval <<'.,.,', 'grammar.ra', 509 - def _reduce_134( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 515 + def _reduce_136( val, _values, result ) newdefine classname(val[1]), :arguments => val[2] @lexer.indefine = false result = nil @@ -1518,8 +1539,8 @@ module_eval <<'.,.,', 'grammar.ra', 509 end .,., -module_eval <<'.,.,', 'grammar.ra', 517 - def _reduce_135( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 523 + def _reduce_137( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop newclass classname(val[1]), :code => val[4], :parent => val[2] @@ -1528,8 +1549,8 @@ module_eval <<'.,.,', 'grammar.ra', 517 end .,., -module_eval <<'.,.,', 'grammar.ra', 522 - def _reduce_136( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 528 + def _reduce_138( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop newclass classname(val[1]), :parent => val[2] @@ -1538,32 +1559,32 @@ module_eval <<'.,.,', 'grammar.ra', 522 end .,., -module_eval <<'.,.,', 'grammar.ra', 527 - def _reduce_137( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 533 + def _reduce_139( val, _values, result ) newnode val[1], :parent => val[2], :code => val[4] result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 530 - def _reduce_138( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 536 + def _reduce_140( val, _values, result ) newnode val[1], :parent => val[2] result = nil result end .,., - # reduce 139 omitted - - # reduce 140 omitted - # reduce 141 omitted # reduce 142 omitted -module_eval <<'.,.,', 'grammar.ra', 544 - def _reduce_143( val, _values, result ) + # reduce 143 omitted + + # reduce 144 omitted + +module_eval <<'.,.,', 'grammar.ra', 550 + def _reduce_145( val, _values, result ) result = val[0] result = [result] unless result.is_a?(Array) result << val[2] @@ -1571,49 +1592,49 @@ module_eval <<'.,.,', 'grammar.ra', 544 end .,., - # reduce 144 omitted - - # reduce 145 omitted - # reduce 146 omitted # reduce 147 omitted -module_eval <<'.,.,', 'grammar.ra', 553 - def _reduce_148( val, _values, result ) + # reduce 148 omitted + + # reduce 149 omitted + +module_eval <<'.,.,', 'grammar.ra', 559 + def _reduce_150( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 557 - def _reduce_149( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 563 + def _reduce_151( val, _values, result ) result = ast AST::ASTArray, :children => [] result end .,., - # reduce 150 omitted + # reduce 152 omitted -module_eval <<'.,.,', 'grammar.ra', 562 - def _reduce_151( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 568 + def _reduce_153( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 566 - def _reduce_152( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 572 + def _reduce_154( val, _values, result ) result = val[1] result = [result] unless result[0].is_a?(Array) result end .,., - # reduce 153 omitted + # reduce 155 omitted -module_eval <<'.,.,', 'grammar.ra', 573 - def _reduce_154( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 579 + def _reduce_156( val, _values, result ) result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] @@ -1621,67 +1642,67 @@ module_eval <<'.,.,', 'grammar.ra', 573 end .,., -module_eval <<'.,.,', 'grammar.ra', 578 - def _reduce_155( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 584 + def _reduce_157( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 582 - def _reduce_156( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 588 + def _reduce_158( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 584 - def _reduce_157( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 590 + def _reduce_159( val, _values, result ) result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 586 - def _reduce_158( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 592 + def _reduce_160( val, _values, result ) result = [val[0]] result end .,., - # reduce 159 omitted + # reduce 161 omitted -module_eval <<'.,.,', 'grammar.ra', 591 - def _reduce_160( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 597 + def _reduce_162( val, _values, result ) result = val[1] result end .,., - # reduce 161 omitted + # reduce 163 omitted -module_eval <<'.,.,', 'grammar.ra', 596 - def _reduce_162( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 602 + def _reduce_164( val, _values, result ) result = val[1] result end .,., - # reduce 163 omitted + # reduce 165 omitted - # reduce 164 omitted + # reduce 166 omitted -module_eval <<'.,.,', 'grammar.ra', 602 - def _reduce_165( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 608 + def _reduce_167( val, _values, result ) result = ast AST::Variable, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 610 - def _reduce_166( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 616 + def _reduce_168( val, _values, result ) if val[1].instance_of?(AST::ASTArray) result = val[1] else @@ -1691,21 +1712,21 @@ module_eval <<'.,.,', 'grammar.ra', 610 end .,., -module_eval <<'.,.,', 'grammar.ra', 612 - def _reduce_167( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 618 + def _reduce_169( val, _values, result ) result = ast AST::ASTArray result end .,., - # reduce 168 omitted + # reduce 170 omitted - # reduce 169 omitted + # reduce 171 omitted - # reduce 170 omitted + # reduce 172 omitted -module_eval <<'.,.,', 'grammar.ra', 617 - def _reduce_171( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 623 + def _reduce_173( val, _values, result ) result = nil result end diff --git a/lib/puppet/parser/scope.rb b/lib/puppet/parser/scope.rb index 32b127a6b..1ff998d96 100644 --- a/lib/puppet/parser/scope.rb +++ b/lib/puppet/parser/scope.rb @@ -260,11 +260,15 @@ class Puppet::Parser::Scope # Set a variable in the current scope. This will override settings # in scopes above, but will not allow variables in the current scope # to be reassigned. - def setvar(name,value, file = nil, line = nil) - #Puppet.debug "Setting %s to '%s' at level %s" % - # [name.inspect,value,self.level] + def setvar(name,value, file = nil, line = nil, append = false) + #Puppet.debug "Setting %s to '%s' at level %s mode append %s" % + # [name.inspect,value,self.level, append] if @symtable.include?(name) - error = Puppet::ParseError.new("Cannot reassign variable %s" % name) + unless append + error = Puppet::ParseError.new("Cannot reassign variable %s" % name) + else + error = Puppet::ParseError.new("Cannot append, variable %s is defined in this scope" % name) + end if file error.file = file end @@ -273,7 +277,19 @@ class Puppet::Parser::Scope end raise error end - @symtable[name] = value + + unless append + @symtable[name] = value + else # append case + # lookup the value in the scope if it exists and insert the var + @symtable[name] = lookupvar(name) + # concatenate if string, append if array, nothing for other types + if value.is_a?(Array) + @symtable[name] += value + else + @symtable[name] << value + end + end end # Return an interpolated string. |