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 /lib/puppet/parser/grammar.ra | |
| 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
Diffstat (limited to 'lib/puppet/parser/grammar.ra')
| -rw-r--r-- | lib/puppet/parser/grammar.ra | 26 |
1 files changed, 24 insertions, 2 deletions
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) |
