diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 04:45:55 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 04:45:55 +0000 |
commit | a05b8f5116af3a4908d5aed2a6a320b227609ec7 (patch) | |
tree | 74eb2ac2000b21d0eb474272575dde415dcf863f | |
parent | 8a4bf1bd9d5ed674c0eed2c64d8a5f587452ede2 (diff) | |
download | puppet-a05b8f5116af3a4908d5aed2a6a320b227609ec7.tar.gz puppet-a05b8f5116af3a4908d5aed2a6a320b227609ec7.tar.xz puppet-a05b8f5116af3a4908d5aed2a6a320b227609ec7.zip |
Adding a "realize" function that can be used to make one or more resource non-virtual. It is just syntactic sugar for a collection by title.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1808 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r-- | lib/puppet/parser/functions.rb | 18 | ||||
-rw-r--r-- | lib/puppet/parser/grammar.ra | 18 | ||||
-rw-r--r-- | lib/puppet/parser/parser.rb | 1089 | ||||
-rw-r--r-- | test/data/snippets/virtualresources.pp | 14 | ||||
-rwxr-xr-x | test/language/functions.rb | 33 | ||||
-rwxr-xr-x | test/language/snippets.rb | 7 |
6 files changed, 651 insertions, 528 deletions
diff --git a/lib/puppet/parser/functions.rb b/lib/puppet/parser/functions.rb index 75d1c9a31..6f15f7f2c 100644 --- a/lib/puppet/parser/functions.rb +++ b/lib/puppet/parser/functions.rb @@ -154,6 +154,24 @@ module Functions end end.join("") end + + newfunction(:realize, :statement) do |vals| + vals = [vals] unless vals.is_a?(Array) + vals.each do |val| + unless val.is_a?(Puppet::Parser::Resource::Reference) + raise Puppet::ParseError, + "'realize' expects a resource reference; " + + "e.g., File['/etc/passwd'], not %s" % val + end + + if resource = findresource(val.to_s) + resource.virtual = false + else + raise Puppet::ParseError, "Could not find virtual resource %s" % + val.to_s + end + end + end end end diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra index 5c91aabdc..6fcc4b1d7 100644 --- a/lib/puppet/parser/grammar.ra +++ b/lib/puppet/parser/grammar.ra @@ -62,14 +62,14 @@ statement: resource | nodedef | resourceoverride -fstatement: NAME LPAREN namestrings RPAREN { +fstatement: NAME LPAREN funcvalues RPAREN { args = aryfy(val[2]) result = ast AST::Function, :name => val[0], :arguments => args, :ftype => :statement } - | NAME namestrings { + | NAME funcvalues { args = aryfy(val[1]) result = ast AST::Function, :name => val[0], @@ -77,6 +77,9 @@ fstatement: NAME LPAREN namestrings RPAREN { :ftype => :statement } +funcvalues: namestrings + | resourcerefs + namestrings: namestring | namestrings COMMA namestring { result = aryfy(val[0], val[2]) @@ -88,6 +91,17 @@ namestring: name | variable | quotedtext +resourcerefs: resourceref + | resourcerefs COMMA resourceref { + unless val[0].is_a?(AST::ASTArray) + val[0] = aryfy(val[0]) + end + + val[0].push(val[2]) + + result = val[0] +} + resource: NAME LBRACE resourceinstances endsemi RBRACE { if val[0].instance_of?(AST::ASTArray) error "Invalid name" diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb index 047dace3a..54772bec8 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..ide506d3a623', 'grammar.ra', 621 +module_eval <<'..end grammar.ra modeval..idee2a7240ef', 'grammar.ra', 635 require 'puppet/parser/functions' attr_reader :file, :interp @@ -199,7 +199,7 @@ end # $Id$ -..end grammar.ra modeval..ide506d3a623 +..end grammar.ra modeval..idee2a7240ef ##### racc 1.4.5 generates ### @@ -224,388 +224,404 @@ racc_reduce_table = [ 4, 62, :_reduce_17, 2, 62, :_reduce_18, 1, 67, :_reduce_none, - 3, 67, :_reduce_20, - 1, 68, :_reduce_none, - 1, 68, :_reduce_none, + 1, 67, :_reduce_none, 1, 68, :_reduce_none, - 5, 55, :_reduce_24, - 5, 55, :_reduce_25, - 5, 55, :_reduce_26, - 4, 66, :_reduce_27, - 2, 56, :_reduce_28, - 1, 77, :_reduce_29, - 2, 77, :_reduce_30, - 2, 57, :_reduce_31, - 1, 78, :_reduce_none, - 1, 78, :_reduce_none, - 3, 79, :_reduce_34, - 3, 79, :_reduce_35, + 3, 68, :_reduce_22, + 1, 70, :_reduce_none, + 1, 70, :_reduce_none, + 1, 70, :_reduce_none, + 1, 69, :_reduce_none, + 3, 69, :_reduce_27, + 5, 55, :_reduce_28, + 5, 55, :_reduce_29, + 5, 55, :_reduce_30, + 4, 66, :_reduce_31, + 2, 56, :_reduce_32, + 1, 79, :_reduce_33, + 2, 79, :_reduce_34, + 2, 57, :_reduce_35, 1, 80, :_reduce_none, 1, 80, :_reduce_none, - 3, 80, :_reduce_38, - 1, 81, :_reduce_none, - 3, 81, :_reduce_40, + 3, 81, :_reduce_38, + 3, 81, :_reduce_39, 1, 82, :_reduce_none, 1, 82, :_reduce_none, - 3, 83, :_reduce_43, + 3, 82, :_reduce_42, + 1, 83, :_reduce_none, 3, 83, :_reduce_44, 1, 84, :_reduce_none, 1, 84, :_reduce_none, - 4, 86, :_reduce_47, - 1, 72, :_reduce_none, - 3, 72, :_reduce_49, - 0, 73, :_reduce_none, - 1, 73, :_reduce_none, - 1, 69, :_reduce_52, - 1, 88, :_reduce_53, + 3, 85, :_reduce_47, + 3, 85, :_reduce_48, + 1, 86, :_reduce_none, + 1, 86, :_reduce_none, + 4, 88, :_reduce_51, + 1, 75, :_reduce_none, + 3, 75, :_reduce_53, + 0, 76, :_reduce_none, + 1, 76, :_reduce_none, + 1, 71, :_reduce_56, + 1, 90, :_reduce_57, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 3, 58, :_reduce_64, + 0, 77, :_reduce_65, + 1, 77, :_reduce_66, + 3, 77, :_reduce_67, + 3, 94, :_reduce_68, + 1, 95, :_reduce_none, + 3, 95, :_reduce_70, 1, 87, :_reduce_none, 1, 87, :_reduce_none, 1, 87, :_reduce_none, 1, 87, :_reduce_none, 1, 87, :_reduce_none, 1, 87, :_reduce_none, - 3, 58, :_reduce_60, - 0, 74, :_reduce_61, - 1, 74, :_reduce_62, - 3, 74, :_reduce_63, - 3, 92, :_reduce_64, 1, 93, :_reduce_none, - 3, 93, :_reduce_66, - 1, 85, :_reduce_none, - 1, 85, :_reduce_none, - 1, 85, :_reduce_none, - 1, 85, :_reduce_none, - 1, 85, :_reduce_none, - 1, 85, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 91, :_reduce_none, - 4, 96, :_reduce_82, - 1, 71, :_reduce_83, - 1, 71, :_reduce_84, - 1, 95, :_reduce_85, - 4, 76, :_reduce_86, - 4, 76, :_reduce_87, - 6, 60, :_reduce_88, - 0, 98, :_reduce_none, - 4, 98, :_reduce_90, - 1, 97, :_reduce_none, - 5, 59, :_reduce_92, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 4, 98, :_reduce_86, + 1, 73, :_reduce_87, + 1, 73, :_reduce_88, + 1, 97, :_reduce_89, + 4, 74, :_reduce_90, + 4, 74, :_reduce_91, + 6, 60, :_reduce_92, + 0, 100, :_reduce_none, + 4, 100, :_reduce_94, 1, 99, :_reduce_none, - 2, 99, :_reduce_94, - 5, 100, :_reduce_95, - 4, 100, :_reduce_96, + 5, 59, :_reduce_96, 1, 101, :_reduce_none, - 3, 101, :_reduce_98, - 3, 89, :_reduce_99, + 2, 101, :_reduce_98, + 5, 102, :_reduce_99, + 4, 102, :_reduce_100, 1, 103, :_reduce_none, - 3, 103, :_reduce_101, + 3, 103, :_reduce_102, + 3, 91, :_reduce_103, 1, 105, :_reduce_none, - 3, 105, :_reduce_103, - 3, 104, :_reduce_104, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 1, 102, :_reduce_none, - 1, 102, :_reduce_111, - 2, 61, :_reduce_112, - 6, 63, :_reduce_113, - 5, 63, :_reduce_114, - 6, 64, :_reduce_115, - 5, 64, :_reduce_116, - 6, 65, :_reduce_117, - 5, 65, :_reduce_118, - 1, 106, :_reduce_none, - 1, 106, :_reduce_none, - 1, 109, :_reduce_none, - 3, 109, :_reduce_122, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 1, 110, :_reduce_none, - 0, 53, :_reduce_126, - 0, 111, :_reduce_127, + 3, 105, :_reduce_105, 1, 107, :_reduce_none, - 3, 107, :_reduce_129, - 3, 107, :_reduce_130, - 1, 112, :_reduce_none, - 3, 112, :_reduce_132, - 3, 113, :_reduce_133, - 1, 113, :_reduce_134, - 3, 113, :_reduce_135, - 1, 113, :_reduce_136, + 3, 107, :_reduce_107, + 3, 106, :_reduce_108, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 1, 104, :_reduce_none, + 1, 104, :_reduce_115, + 2, 61, :_reduce_116, + 6, 63, :_reduce_117, + 5, 63, :_reduce_118, + 6, 64, :_reduce_119, + 5, 64, :_reduce_120, + 6, 65, :_reduce_121, + 5, 65, :_reduce_122, + 1, 108, :_reduce_none, 1, 108, :_reduce_none, - 2, 108, :_reduce_138, - 1, 70, :_reduce_139, - 3, 90, :_reduce_140, - 2, 90, :_reduce_141, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 0, 75, :_reduce_none, - 1, 75, :_reduce_145 ] + 1, 111, :_reduce_none, + 3, 111, :_reduce_126, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 0, 53, :_reduce_130, + 0, 113, :_reduce_131, + 1, 109, :_reduce_none, + 3, 109, :_reduce_133, + 3, 109, :_reduce_134, + 1, 114, :_reduce_none, + 3, 114, :_reduce_136, + 3, 115, :_reduce_137, + 1, 115, :_reduce_138, + 3, 115, :_reduce_139, + 1, 115, :_reduce_140, + 1, 110, :_reduce_none, + 2, 110, :_reduce_142, + 1, 72, :_reduce_143, + 3, 92, :_reduce_144, + 2, 92, :_reduce_145, + 1, 96, :_reduce_none, + 1, 96, :_reduce_none, + 0, 78, :_reduce_none, + 1, 78, :_reduce_149 ] -racc_reduce_n = 146 +racc_reduce_n = 150 -racc_shift_n = 240 +racc_shift_n = 248 racc_action_table = [ - 59, 50, 52, 50, 52, 97, 59, 50, 52, 33, - 146, 75, 59, 50, 52, 76, 69, -105, 59, 50, - 52, 171, 111, 120, 59, 50, 52, 117, 69, 32, - 84, 45, 38, 45, 69, 64, 67, 45, 54, 70, - 69, 64, 108, 45, 146, 70, 137, 64, 67, 45, - 150, 70, 121, 64, 67, 45, 39, 70, 178, 64, - 67, 50, 52, 70, 59, 50, 52, 50, 52, 122, - 59, 50, 52, 48, 134, 135, 59, 50, 52, 75, - 69, 99, 59, 50, 52, -110, 69, 124, 59, 50, - 52, 45, 69, 120, 143, 45, 54, 45, 69, 64, - 67, 45, 54, 70, 69, 64, 67, 45, 126, 70, - -107, 64, 67, 45, -108, 70, 139, 64, 67, 45, - 183, 70, 87, 64, 67, 138, 99, 70, 59, 50, - 52, -105, 173, 45, 59, 50, 52, 177, 54, 205, - 59, 50, 52, 119, 69, 134, 135, 50, 52, 197, - 69, 208, 173, 50, 52, 179, 111, 177, 180, 45, - 41, 215, 111, 64, 67, 45, 198, 70, 111, 64, - 67, 45, 41, 70, 214, 64, 163, 45, 124, 70, - 124, 64, 163, 45, -106, 70, 210, 64, 163, 50, - 52, 70, 35, 209, 42, 50, 52, 43, 202, 34, - 35, 120, 50, 52, 111, 164, 42, 34, 99, 43, - 111, 50, 52, 50, 52, 50, 52, 111, 150, 45, - 50, 52, 147, 64, 163, 45, 111, 70, 111, 64, - 163, -107, 45, 70, 152, 111, 64, 163, 154, 155, - 70, 45, -108, 45, 211, 64, 163, 64, 163, 70, - 45, 70, 212, 87, 64, 163, 87, 87, 70, 48, - 50, 52, 213, 56, 45, 219, 140, 45, 45, 54, - 134, 135, 54, 54, -105, 224, 17, 154, 155, 46, - 216, 84, 206, 124, 76, -106, 14, -109, 20, 23, - 45, 1, 5, 17, 9, 54, 12, -108, 16, 217, - 24, -107, -110, 14, 56, 20, 23, 150, 1, 5, - 17, 9, 82, 12, -106, 16, 220, 24, 225, 227, - 14, 81, 20, 23, 145, 1, 5, 17, 9, 127, - 12, 124, 16, 232, 24, 77, 141, 14, 234, 20, - 23, 131, 1, 5, 17, 9, 132, 12, 30, 16, - 235, 24, 151, nil, 14, nil, 20, 23, nil, 1, - 5, 17, 9, nil, 12, nil, 16, 193, 24, nil, - nil, 14, nil, 20, 23, nil, 1, 5, 17, 9, - nil, 12, nil, 16, 238, 24, nil, nil, 14, nil, - 20, 23, nil, 1, 5, 17, 9, nil, 12, nil, - 16, 181, 24, nil, nil, 14, nil, 20, 23, nil, - 1, 5, 17, 9, nil, 12, nil, 16, 239, 24, - nil, nil, 14, nil, 20, 23, nil, 1, 5, 17, - 9, nil, 12, nil, 16, nil, 24, nil, nil, 14, - nil, 20, 23, nil, 1, 5, 17, 9, nil, 12, - nil, 16, nil, 24, nil, nil, 14, nil, 20, 23, - nil, 1, 5, 17, 9, nil, 12, nil, 16, nil, - 24, nil, nil, 14, nil, 20, 23, nil, 1, 5, - 17, 9, nil, 12, nil, 16, nil, 24, nil, nil, - 14, nil, 20, 23, nil, 1, 5, 17, 9, nil, - 12, nil, 16, nil, 24, nil, nil, 14, nil, 20, - 23, nil, 1, 5, nil, 9, nil, 12, nil, 16, - nil, 24 ] + 62, 50, 52, 50, 52, 92, 62, 50, 52, 58, + 157, 79, 62, 50, 52, 80, 73, -110, 62, 50, + 52, 158, 73, 127, 62, 50, 52, 79, 73, 152, + 89, 45, 43, 45, 118, 65, 70, 45, 94, 74, + 118, 65, 70, 45, -111, 74, 145, 65, 70, 45, + -112, 74, 179, 65, 168, 45, 44, 74, 155, 65, + 114, 50, 52, 74, 62, 50, 52, 48, 193, 157, + 62, 50, 52, -111, 142, 143, 62, 50, 52, -113, + 73, 188, 62, 50, 52, -109, 73, 127, 62, 50, + 52, 45, 73, 142, 143, 45, 94, 105, 73, 65, + 70, 45, 36, 74, 73, 65, 70, 45, -109, 74, + 214, 65, 70, 45, 126, 74, 147, 65, 70, 45, + 223, 74, 35, 65, 70, 146, -110, 74, 62, 50, + 52, 123, 32, 222, 62, 50, 52, -110, 32, 31, + 62, 50, 52, 181, 73, 31, 182, 50, 52, 122, + 73, 218, 183, 50, 52, 48, 73, 186, 217, 45, + 39, 203, 118, 65, 70, 45, 39, 74, 118, 65, + 70, 45, 131, 74, 131, 65, 70, 45, 79, 74, + 48, 65, 168, 45, 208, 74, 106, 65, 168, 50, + 52, 74, 105, 183, 40, 50, 52, 41, 186, 211, + 40, 50, 52, 41, 118, 233, 127, 163, 164, 156, + 118, 50, 52, 155, 170, 128, 118, 50, 52, 45, + 150, 216, 219, 65, 168, 45, 118, 74, 131, 65, + 168, 45, 118, 74, 220, 65, 168, 93, 221, 74, + 149, 45, 50, 52, 224, 65, 168, 45, 45, 74, + 80, 65, 168, 94, 93, 74, 56, 118, 48, 50, + 52, 89, 56, -114, 247, 45, 50, 52, 93, -109, + 94, -112, 45, -111, 58, 17, 65, 168, 46, 45, + 74, 58, 50, 52, 94, 14, -114, 20, 24, 45, + 1, 4, 209, 8, 54, 12, 45, 16, 155, 25, + 148, 54, 231, 17, 142, 143, 93, 161, 86, 246, + 131, 163, 164, 14, 235, 20, 24, 45, 1, 4, + 17, 8, 94, 12, 131, 16, 225, 25, 83, 132, + 14, 139, 20, 24, 81, 1, 4, 17, 8, 241, + 12, 138, 16, 227, 25, 137, 134, 14, 30, 20, + 24, -112, 1, 4, 17, 8, nil, 12, nil, 16, + 228, 25, nil, nil, 14, nil, 20, 24, nil, 1, + 4, 17, 8, nil, 12, nil, 16, 240, 25, nil, + nil, 14, nil, 20, 24, nil, 1, 4, 17, 8, + nil, 12, nil, 16, 243, 25, nil, nil, 14, nil, + 20, 24, nil, 1, 4, 17, 8, nil, 12, nil, + 16, 189, 25, nil, nil, 14, nil, 20, 24, nil, + 1, 4, 17, 8, nil, 12, nil, 16, 191, 25, + nil, nil, 14, nil, 20, 24, nil, 1, 4, 17, + 8, nil, 12, nil, 16, nil, 25, nil, nil, 14, + nil, 20, 24, nil, 1, 4, 17, 8, nil, 12, + nil, 16, nil, 25, nil, nil, 14, nil, 20, 24, + nil, 1, 4, 17, 8, nil, 12, nil, 16, nil, + 25, nil, nil, 14, nil, 20, 24, nil, 1, 4, + 17, 8, nil, 12, nil, 16, nil, 25, nil, nil, + 14, nil, 20, 24, nil, 1, 4, 17, 8, nil, + 12, nil, 16, nil, 25, nil, nil, 14, nil, 20, + 24, nil, 1, 4, nil, 8, nil, 12, nil, 16, + nil, 25 ] racc_action_check = [ - 75, 75, 75, 46, 46, 44, 56, 56, 56, 2, - 108, 17, 153, 153, 153, 17, 75, 187, 146, 146, - 146, 123, 56, 108, 59, 59, 59, 59, 153, 2, - 44, 75, 6, 46, 146, 75, 75, 56, 46, 75, - 59, 56, 56, 153, 124, 56, 89, 153, 153, 146, - 125, 153, 72, 146, 146, 59, 6, 146, 128, 59, - 59, 99, 99, 59, 30, 30, 30, 120, 120, 74, - 48, 48, 48, 67, 89, 89, 14, 14, 14, 69, - 30, 98, 16, 16, 16, 68, 48, 76, 202, 202, - 202, 99, 14, 67, 98, 30, 99, 120, 16, 30, - 30, 48, 120, 30, 202, 48, 48, 14, 77, 48, - 66, 14, 14, 16, 65, 14, 93, 16, 16, 202, - 133, 16, 136, 202, 202, 93, 165, 202, 212, 212, - 212, 63, 215, 136, 216, 216, 216, 215, 136, 165, - 147, 147, 147, 61, 212, 133, 133, 167, 167, 148, - 216, 167, 127, 210, 210, 130, 147, 127, 130, 212, - 97, 175, 167, 212, 212, 216, 149, 212, 210, 216, - 216, 147, 9, 216, 175, 147, 147, 167, 150, 147, - 151, 167, 167, 210, 57, 167, 169, 210, 210, 223, - 223, 210, 23, 169, 97, 122, 122, 97, 158, 23, - 5, 163, 119, 119, 223, 119, 9, 5, 47, 9, - 122, 139, 139, 138, 138, 20, 20, 119, 113, 223, - 164, 164, 109, 223, 223, 122, 139, 223, 138, 122, - 122, 107, 119, 122, 118, 164, 119, 119, 118, 118, - 119, 139, 106, 138, 172, 139, 139, 138, 138, 139, - 164, 138, 173, 87, 164, 164, 39, 38, 164, 12, - 12, 12, 174, 12, 87, 182, 95, 39, 38, 87, - 95, 95, 39, 38, 104, 204, 182, 204, 204, 12, - 177, 36, 166, 180, 33, 185, 182, 71, 182, 182, - 12, 182, 182, 166, 182, 12, 182, 188, 182, 178, - 182, 189, 190, 166, 32, 166, 166, 200, 166, 166, - 178, 166, 27, 166, 101, 166, 194, 166, 206, 209, - 178, 24, 178, 178, 100, 178, 178, 194, 178, 80, - 178, 82, 178, 218, 178, 19, 96, 194, 225, 194, - 194, 84, 194, 194, 218, 194, 86, 194, 1, 194, - 227, 194, 115, nil, 218, nil, 218, 218, nil, 218, - 218, 227, 218, nil, 218, nil, 218, 141, 218, nil, - nil, 227, nil, 227, 227, nil, 227, 227, 141, 227, - nil, 227, nil, 227, 236, 227, nil, nil, 141, nil, - 141, 141, nil, 141, 141, 236, 141, nil, 141, nil, - 141, 132, 141, nil, nil, 236, nil, 236, 236, nil, - 236, 236, 132, 236, nil, 236, nil, 236, 237, 236, - nil, nil, 132, nil, 132, 132, nil, 132, 132, 237, - 132, nil, 132, nil, 132, nil, 132, nil, nil, 237, - nil, 237, 237, nil, 237, 237, 22, 237, nil, 237, - nil, 237, nil, 237, nil, nil, 22, nil, 22, 22, - nil, 22, 22, 234, 22, nil, 22, nil, 22, nil, - 22, nil, nil, 234, nil, 234, 234, nil, 234, 234, - 121, 234, nil, 234, nil, 234, nil, 234, nil, nil, - 121, nil, 121, 121, nil, 121, 121, 0, 121, nil, - 121, nil, 121, nil, 121, nil, nil, 0, nil, 0, + 48, 48, 48, 105, 105, 37, 79, 79, 79, 106, + 114, 17, 162, 162, 162, 17, 48, 195, 158, 158, + 158, 120, 79, 114, 56, 56, 56, 73, 162, 106, + 37, 48, 9, 105, 158, 48, 48, 79, 105, 48, + 56, 79, 79, 162, 72, 79, 96, 162, 162, 158, + 71, 162, 129, 158, 158, 56, 9, 158, 130, 56, + 56, 127, 127, 56, 157, 157, 157, 70, 141, 131, + 30, 30, 30, 117, 96, 96, 14, 14, 14, 77, + 157, 136, 16, 16, 16, 113, 30, 70, 211, 211, + 211, 127, 14, 141, 141, 157, 127, 174, 16, 157, + 157, 30, 6, 157, 211, 30, 30, 14, 69, 30, + 174, 14, 14, 16, 67, 14, 100, 16, 16, 211, + 185, 16, 6, 211, 211, 100, 110, 211, 62, 62, + 62, 62, 4, 185, 224, 224, 224, 63, 24, 4, + 220, 220, 220, 133, 62, 24, 133, 146, 146, 61, + 224, 177, 134, 218, 218, 152, 220, 134, 177, 62, + 8, 154, 146, 62, 62, 224, 92, 62, 218, 224, + 224, 220, 155, 224, 156, 220, 220, 146, 58, 220, + 54, 146, 146, 218, 159, 146, 51, 218, 218, 234, + 234, 218, 49, 223, 8, 170, 170, 8, 223, 167, + 92, 147, 147, 92, 234, 213, 168, 213, 213, 109, + 170, 126, 126, 108, 126, 78, 147, 175, 175, 234, + 104, 175, 180, 234, 234, 170, 126, 234, 182, 170, + 170, 147, 175, 170, 183, 147, 147, 44, 184, 147, + 103, 126, 128, 128, 186, 126, 126, 175, 44, 126, + 36, 175, 175, 44, 93, 175, 35, 128, 12, 12, + 12, 33, 12, 76, 245, 93, 46, 46, 144, 197, + 93, 198, 128, 199, 12, 245, 128, 128, 12, 144, + 128, 46, 20, 20, 144, 245, 200, 245, 245, 12, + 245, 245, 160, 245, 12, 245, 46, 245, 205, 245, + 102, 46, 209, 160, 102, 102, 43, 125, 25, 244, + 80, 125, 125, 160, 217, 160, 160, 43, 160, 160, + 244, 160, 43, 160, 83, 160, 188, 160, 21, 81, + 244, 91, 244, 244, 19, 244, 244, 188, 244, 231, + 244, 89, 244, 190, 244, 88, 85, 188, 1, 188, + 188, 116, 188, 188, 190, 188, nil, 188, nil, 188, + 192, 188, nil, nil, 190, nil, 190, 190, nil, 190, + 190, 192, 190, nil, 190, nil, 190, 226, 190, nil, + nil, 192, nil, 192, 192, nil, 192, 192, 226, 192, + nil, 192, nil, 192, 235, 192, nil, nil, 226, nil, + 226, 226, nil, 226, 226, 235, 226, nil, 226, nil, + 226, 137, 226, nil, nil, 235, nil, 235, 235, nil, + 235, 235, 137, 235, nil, 235, nil, 235, 139, 235, + nil, nil, 137, nil, 137, 137, nil, 137, 137, 139, + 137, nil, 137, nil, 137, nil, 137, nil, nil, 139, + nil, 139, 139, nil, 139, 139, 241, 139, nil, 139, + nil, 139, nil, 139, nil, nil, 241, nil, 241, 241, + nil, 241, 241, 23, 241, nil, 241, nil, 241, nil, + 241, nil, nil, 23, nil, 23, 23, nil, 23, 23, + 122, 23, nil, 23, nil, 23, nil, 23, nil, nil, + 122, nil, 122, 122, nil, 122, 122, 0, 122, nil, + 122, nil, 122, nil, 122, nil, nil, 0, nil, 0, 0, nil, 0, 0, nil, 0, nil, 0, nil, 0, nil, 0 ] racc_action_pointer = [ - 479, 335, -9, nil, nil, 162, 13, nil, nil, 168, - nil, nil, 257, nil, 74, nil, 80, 9, nil, 335, - 212, nil, 428, 154, 279, nil, nil, 306, nil, nil, - 62, nil, 298, 278, nil, nil, 246, nil, 235, 234, - nil, nil, nil, nil, -5, nil, 0, 198, 68, nil, - nil, nil, nil, nil, nil, nil, 4, 163, nil, 22, - nil, 122, nil, 110, nil, 93, 89, 71, 64, 77, - nil, 266, 46, nil, 63, -2, 49, 108, nil, nil, - 307, nil, 293, nil, 303, nil, 340, 231, nil, 26, - nil, nil, nil, 101, nil, 222, 330, 156, 71, 58, - 319, 293, nil, nil, 253, nil, 221, 210, 1, 183, - nil, nil, nil, 208, nil, 335, nil, nil, 229, 199, - 64, 462, 192, 16, 35, 40, nil, 119, 52, nil, - 148, nil, 394, 97, nil, nil, 100, nil, 210, 208, - nil, 360, nil, nil, nil, nil, 16, 138, 142, 159, - 140, 142, nil, 10, nil, nil, nil, nil, 189, nil, - nil, nil, nil, 179, 217, 116, 275, 144, nil, 176, - nil, nil, 237, 239, 239, 151, nil, 267, 292, nil, - 245, nil, 258, nil, nil, 264, nil, -4, 276, 280, - 281, nil, nil, nil, 309, nil, nil, nil, nil, nil, - 297, nil, 86, nil, 268, nil, 289, nil, nil, 313, - 150, nil, 126, nil, nil, 99, 132, nil, 326, nil, - nil, nil, nil, 186, nil, 332, nil, 343, nil, nil, - nil, nil, nil, nil, 445, nil, 377, 411, nil, nil ] + 489, 335, nil, nil, 94, nil, 84, nil, 156, 13, + nil, nil, 256, nil, 74, nil, 80, 9, nil, 334, + 279, 322, nil, 455, 100, 266, nil, nil, nil, nil, + 68, nil, nil, 226, nil, 250, 244, -5, nil, nil, + nil, nil, nil, 284, 215, nil, 263, nil, -2, 182, + nil, 176, nil, nil, 178, nil, 22, nil, 176, nil, + nil, 143, 126, 116, nil, nil, nil, 93, nil, 87, + 65, 29, 23, 25, nil, nil, 242, 58, 209, 4, + 272, 329, nil, 286, nil, 324, nil, nil, 339, 303, + nil, 325, 162, 232, nil, nil, 26, nil, nil, nil, + 101, nil, 256, 217, 215, 0, -9, nil, 203, 192, + 105, nil, nil, 64, 1, nil, 330, 52, nil, nil, + -18, nil, 472, nil, nil, 302, 208, 58, 239, 47, + 48, 60, nil, 136, 119, nil, 75, 404, nil, 421, + nil, 45, nil, nil, 246, nil, 144, 198, nil, nil, + nil, nil, 153, nil, 154, 134, 136, 62, 16, 177, + 285, nil, 10, nil, nil, nil, nil, 190, 184, nil, + 192, nil, nil, nil, 87, 214, nil, 141, nil, nil, + 215, nil, 190, 221, 215, 110, 231, nil, 319, nil, + 336, nil, 353, nil, nil, -4, nil, 248, 250, 252, + 265, nil, nil, nil, nil, 288, nil, nil, nil, 273, + nil, 86, nil, 198, nil, nil, nil, 308, 150, nil, + 138, nil, nil, 160, 132, nil, 370, nil, nil, nil, + nil, 333, nil, nil, 186, 387, nil, nil, nil, nil, + nil, 438, nil, nil, 302, 257, nil, nil ] racc_action_default = [ - -126, -146, -146, -16, -5, -146, -146, -6, -7, -146, - -8, -9, -33, -10, -146, -11, -146, -32, -12, -146, - -146, -13, -1, -146, -29, -14, -2, -146, -15, -3, - -146, -28, -146, -146, -120, -119, -126, -31, -126, -126, - -121, -124, -123, -125, -126, -139, -146, -18, -146, -19, - -83, -21, -84, -22, -52, -23, -61, -75, -77, -146, - -79, -146, -91, -74, -85, -78, -73, -52, -76, -53, - -111, -81, -146, -80, -146, -146, -61, -146, -112, -4, - -126, -30, -61, -60, -146, -137, -146, -126, -46, -146, - -45, -37, -39, -146, -36, -146, -146, -146, -146, -146, - -146, -56, -57, -59, -55, -62, -58, -54, -52, -50, - -110, -53, -109, -144, -48, -146, -65, -141, -146, -146, - -146, -146, -146, -146, -146, -144, 240, -127, -146, -128, - -146, -138, -146, -146, -42, -41, -146, -35, -146, -146, - -34, -146, -122, -17, -20, -86, -146, -51, -146, -146, - -145, -61, -140, -146, -142, -143, -106, -105, -146, -108, - -99, -107, -100, -52, -146, -146, -146, -146, -93, -146, - -97, -87, -146, -136, -146, -146, -131, -134, -146, -27, - -146, -116, -146, -40, -38, -69, -71, -68, -72, -67, - -70, -43, -44, -118, -146, -64, -49, -24, -25, -63, - -144, -66, -146, -102, -146, -82, -89, -94, -92, -146, - -146, -26, -146, -129, -130, -146, -146, -114, -146, -115, - -117, -47, -104, -146, -101, -146, -88, -146, -98, -135, - -132, -133, -113, -103, -146, -96, -146, -146, -95, -90 ] + -130, -150, -16, -5, -150, -6, -150, -7, -150, -150, + -8, -9, -37, -10, -150, -11, -150, -36, -12, -150, + -150, -150, -13, -1, -150, -33, -14, -2, -15, -3, + -150, -124, -123, -130, -32, -150, -150, -130, -125, -128, + -127, -129, -35, -130, -130, -143, -150, -18, -150, -19, + -87, -20, -88, -21, -56, -23, -65, -24, -150, -25, + -26, -150, -150, -79, -81, -89, -83, -150, -95, -78, + -56, -82, -77, -57, -115, -84, -80, -85, -150, -150, + -65, -150, -116, -65, -4, -130, -34, -64, -150, -150, + -141, -150, -150, -130, -56, -50, -150, -49, -41, -43, + -150, -40, -150, -150, -150, -150, -150, -52, -148, -150, + -60, -61, -63, -59, -56, -66, -62, -58, -57, -114, + -54, -113, -150, -145, -69, -150, -150, -150, -150, -150, + -148, -150, 248, -150, -131, -132, -150, -150, -142, -150, + -126, -150, -46, -45, -150, -39, -150, -150, -38, -17, + -90, -22, -150, -27, -150, -149, -65, -150, -55, -150, + -150, -144, -150, -146, -147, -110, -109, -150, -56, -112, + -150, -103, -111, -104, -150, -150, -97, -150, -101, -91, + -150, -31, -150, -140, -150, -150, -138, -135, -150, -120, + -150, -122, -150, -44, -42, -73, -75, -72, -76, -71, + -74, -47, -48, -29, -67, -148, -68, -53, -28, -93, + -70, -150, -106, -150, -86, -98, -96, -150, -150, -30, + -150, -133, -134, -150, -150, -118, -150, -119, -121, -51, + -92, -150, -108, -105, -150, -150, -102, -139, -136, -137, + -117, -150, -107, -100, -150, -150, -99, -94 ] racc_goto_table = [ - 22, 79, 51, 162, 102, 47, 113, 55, 62, 40, - 74, 114, 103, 153, 158, 78, 176, 170, 109, 149, - 168, 89, 95, 72, 83, 199, 125, 36, 88, 88, - 86, 172, 130, 191, 192, 226, 51, 167, 96, 98, - 26, 55, 100, 148, 144, 80, 104, 73, 203, 73, - 160, 107, 31, 116, 204, 199, 53, 118, 128, 158, - 37, 44, 170, 73, 184, 207, 174, 175, 19, 123, - 133, nil, nil, nil, nil, nil, 85, 88, nil, nil, - nil, 73, 90, 90, 85, nil, 186, 186, nil, 51, - 53, nil, 73, nil, 55, 102, nil, 142, nil, 223, - 106, 200, 196, 103, 230, 228, 221, 233, 73, 157, - 51, 112, 157, 165, 161, 55, nil, 161, 158, nil, - 129, 166, nil, nil, nil, nil, 88, nil, 187, 187, - nil, 90, 182, 189, 189, nil, nil, 104, nil, nil, - 195, 194, 107, 53, nil, 79, nil, 201, nil, nil, - nil, nil, nil, nil, 157, nil, nil, 157, nil, 161, - 110, 79, 161, 159, 53, 101, 159, nil, nil, nil, - nil, nil, nil, 79, 112, nil, nil, 112, 218, 73, - 90, nil, 188, 188, nil, nil, 73, nil, nil, nil, - nil, 106, nil, 112, 112, nil, 222, 79, nil, nil, - 157, nil, 112, nil, nil, 161, 229, nil, 159, nil, - 231, 159, nil, 157, nil, 79, 79, nil, 161, 112, - nil, nil, 112, 110, nil, nil, 110, 236, 156, nil, - nil, 156, nil, nil, 237, 73, nil, nil, nil, nil, - nil, nil, 190, 190, nil, 73, nil, 185, 185, 73, - nil, 110, nil, nil, 159, nil, 101, nil, nil, nil, - nil, nil, nil, nil, nil, 112, nil, 159, 110, nil, - nil, 110, nil, 156, nil, nil, 156, nil, 112, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 23, 59, 173, 84, 107, 108, 38, 187, 33, 82, + 57, 112, 167, 204, 178, 154, 55, 111, 96, 102, + 176, 88, 175, 162, 47, 91, 201, 202, 85, 130, + 125, 61, 133, 230, 174, 59, 151, 180, 27, 34, + 204, 97, 97, 171, 57, 117, 212, 95, 95, 120, + 55, 213, 159, 68, 116, 78, 167, 136, 103, 42, + 113, 178, 37, 194, 184, 185, 19, 215, 141, 87, + nil, 90, nil, nil, nil, 90, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 104, nil, nil, + 140, 97, nil, nil, 59, 119, 238, 95, nil, nil, + nil, 124, nil, 57, 236, 205, 207, 196, 196, 55, + 242, 234, 229, 112, nil, 172, 59, 172, 129, 111, + 167, nil, 160, 135, 169, 57, 169, nil, nil, nil, + 166, 55, 166, nil, nil, 199, 199, 190, nil, 192, + 84, nil, 97, nil, 198, 198, nil, 117, 95, nil, + 197, 197, nil, 60, nil, 75, 116, 75, 121, 172, + nil, nil, 113, nil, 172, 119, nil, 119, 169, nil, + 84, 75, 84, 169, 166, nil, nil, nil, nil, 166, + nil, nil, nil, nil, nil, 200, 200, 60, 226, 75, + nil, nil, 110, nil, nil, nil, 206, 119, nil, nil, + nil, 210, nil, 75, nil, nil, 84, 172, nil, 119, + nil, nil, nil, nil, 119, nil, 169, nil, nil, nil, + 75, nil, 166, 172, 84, 84, nil, nil, 121, nil, + 121, nil, 169, nil, nil, 244, nil, nil, 166, nil, + nil, 245, nil, nil, nil, nil, nil, 153, 121, 121, + 232, nil, nil, nil, nil, nil, nil, 119, nil, 237, + 121, nil, 165, 239, 165, nil, nil, nil, nil, nil, + nil, nil, 121, 119, nil, nil, nil, 121, nil, nil, + nil, nil, 195, 195, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 110, nil, nil, nil, 75, nil, + nil, nil, nil, 75, nil, nil, 165, nil, nil, nil, + nil, 165, nil, nil, nil, nil, nil, nil, nil, nil, + 121, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 121, 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, 110, nil, nil, nil, nil, 156, - nil, nil, nil, nil, nil, nil, nil, 110, nil, nil, - nil, nil, 156 ] + nil, nil, 75, nil, 165, nil, nil, nil, nil, nil, + nil, 75, nil, nil, nil, 75, nil, nil, nil, nil, + 165 ] racc_goto_check = [ - 2, 4, 19, 54, 39, 17, 24, 21, 41, 60, - 41, 36, 40, 44, 52, 21, 63, 52, 22, 25, - 50, 30, 30, 47, 41, 42, 24, 56, 19, 19, - 58, 25, 24, 35, 35, 48, 19, 49, 58, 17, - 3, 21, 41, 23, 18, 56, 19, 26, 54, 26, - 53, 21, 5, 41, 55, 42, 20, 43, 57, 52, - 29, 59, 52, 26, 31, 50, 61, 62, 1, 41, - 30, nil, nil, nil, nil, nil, 3, 19, nil, nil, - nil, 26, 20, 20, 3, nil, 39, 39, nil, 19, - 20, nil, 26, nil, 21, 39, nil, 60, nil, 44, - 20, 24, 36, 40, 63, 52, 25, 54, 26, 19, - 19, 46, 19, 17, 21, 21, nil, 21, 52, nil, - 3, 2, nil, nil, nil, nil, 19, nil, 19, 19, - nil, 20, 2, 21, 21, nil, nil, 19, nil, nil, - 41, 2, 21, 20, nil, 4, nil, 41, nil, nil, - nil, nil, nil, nil, 19, nil, nil, 19, nil, 21, - 45, 4, 21, 20, 20, 38, 20, nil, nil, nil, - nil, nil, nil, 4, 46, nil, nil, 46, 2, 26, - 20, nil, 20, 20, nil, nil, 26, nil, nil, nil, - nil, 20, nil, 46, 46, nil, 41, 4, nil, nil, - 19, nil, 46, nil, nil, 21, 41, nil, 20, nil, - 41, 20, nil, 19, nil, 4, 4, nil, 21, 46, - nil, nil, 46, 45, nil, nil, 45, 2, 38, nil, - nil, 38, nil, nil, 2, 26, nil, nil, nil, nil, - nil, nil, 45, 45, nil, 26, nil, 38, 38, 26, - nil, 45, nil, nil, 20, nil, 38, nil, nil, nil, - nil, nil, nil, nil, nil, 46, nil, 20, 45, nil, - nil, 45, nil, 38, nil, nil, 38, nil, 46, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 2, 23, 56, 4, 38, 27, 62, 65, 58, 23, + 22, 42, 54, 44, 54, 28, 21, 41, 32, 32, + 52, 60, 51, 46, 17, 60, 37, 37, 58, 27, + 45, 49, 27, 50, 18, 23, 20, 28, 3, 5, + 44, 22, 22, 55, 22, 23, 56, 21, 21, 25, + 21, 57, 26, 43, 22, 43, 54, 59, 17, 31, + 21, 54, 61, 33, 63, 64, 1, 52, 32, 43, + nil, 3, nil, nil, nil, 3, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 43, nil, nil, + 62, 22, nil, nil, 23, 47, 65, 21, nil, nil, + nil, 43, nil, 22, 54, 27, 38, 41, 41, 21, + 56, 46, 28, 42, nil, 23, 23, 23, 43, 41, + 54, nil, 2, 3, 22, 22, 22, nil, nil, nil, + 21, 21, 21, nil, nil, 23, 23, 2, nil, 2, + 4, nil, 22, nil, 22, 22, nil, 23, 21, nil, + 21, 21, nil, 24, nil, 24, 22, 24, 48, 23, + nil, nil, 21, nil, 23, 47, nil, 47, 22, nil, + 4, 24, 4, 22, 21, nil, nil, nil, nil, 21, + nil, nil, nil, nil, nil, 47, 47, 24, 2, 24, + nil, nil, 40, nil, nil, nil, 43, 47, nil, nil, + nil, 43, nil, 24, nil, nil, 4, 23, nil, 47, + nil, nil, nil, nil, 47, nil, 22, nil, nil, nil, + 24, nil, 21, 23, 4, 4, nil, nil, 48, nil, + 48, nil, 22, nil, nil, 2, nil, nil, 21, nil, + nil, 2, nil, nil, nil, nil, nil, 24, 48, 48, + 43, nil, nil, nil, nil, nil, nil, 47, nil, 43, + 48, nil, 40, 43, 40, nil, nil, nil, nil, nil, + nil, nil, 48, 47, nil, nil, nil, 48, nil, nil, + nil, nil, 40, 40, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 40, nil, nil, nil, 24, nil, + nil, nil, nil, 24, nil, nil, 40, nil, nil, nil, + nil, 40, nil, nil, nil, nil, nil, nil, nil, nil, + 48, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 48, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 45, nil, nil, nil, nil, 38, - nil, nil, nil, nil, nil, nil, nil, 45, nil, nil, - nil, nil, 38 ] + nil, nil, 24, nil, 40, nil, nil, nil, nil, nil, + nil, 24, nil, nil, nil, 24, nil, nil, nil, nil, + 40 ] racc_goto_pointer = [ - nil, 68, 0, 40, -21, 50, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, -7, -55, -10, - 44, -5, -38, -66, -50, -94, 33, nil, nil, 54, - -17, -72, nil, nil, nil, -105, -45, nil, 109, -52, - -44, -6, -125, -2, -105, 104, 55, 9, -171, -85, - -102, nil, -105, -69, -116, -110, 22, -22, -6, 52, - 0, -61, -60, -111 ] + nil, 66, 0, 38, -20, 33, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 12, -93, nil, + -69, 4, -2, -11, 141, -7, -68, -51, -93, nil, + nil, 50, -25, -81, nil, nil, nil, -120, -52, nil, + 136, -39, -45, 39, -142, -32, -102, 39, 102, 17, + -176, -106, -108, nil, -114, -83, -124, -119, 4, -28, + -12, 54, -2, -70, -69, -127 ] racc_goto_default = [ - nil, nil, nil, 94, 29, 4, 7, 8, 10, 11, - 13, 15, 18, 21, 25, 28, 3, nil, 49, 63, - 65, 66, nil, nil, nil, nil, 27, 2, 6, nil, - nil, 91, 136, 92, 93, nil, nil, 115, 57, 58, - 60, nil, 105, nil, nil, 68, 71, nil, nil, nil, - nil, 169, 61, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil ] + nil, nil, nil, 101, 29, 3, 5, 7, 10, 11, + 13, 15, 18, 22, 26, 28, 2, nil, 49, 51, + 53, 69, 71, 72, 21, nil, nil, nil, nil, 6, + 9, nil, nil, 98, 144, 99, 100, nil, nil, 109, + 63, 64, 66, nil, 115, nil, nil, 76, 77, nil, + nil, nil, nil, 177, 67, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil ] racc_token_table = { false => 0, @@ -747,16 +763,18 @@ Racc_token_to_s_table = [ 'hostclass', 'nodedef', 'resourceoverride', +'funcvalues', 'namestrings', +'resourcerefs', 'namestring', 'name', 'variable', 'quotedtext', +'resourceref', 'resourceinstances', 'endsemi', 'params', 'endcomma', -'resourceref', 'at', 'collectname', 'collectrhand', @@ -890,8 +908,12 @@ module_eval <<'.,.,', 'grammar.ra', 78 # reduce 19 omitted -module_eval <<'.,.,', 'grammar.ra', 85 - def _reduce_20( val, _values, result ) + # reduce 20 omitted + + # reduce 21 omitted + +module_eval <<'.,.,', 'grammar.ra', 88 + def _reduce_22( val, _values, result ) result = aryfy(val[0], val[2]) result.line = @lexer.line result.file = @lexer.file @@ -899,14 +921,29 @@ module_eval <<'.,.,', 'grammar.ra', 85 end .,., - # reduce 21 omitted + # reduce 23 omitted - # reduce 22 omitted + # reduce 24 omitted - # reduce 23 omitted + # reduce 25 omitted + + # reduce 26 omitted -module_eval <<'.,.,', 'grammar.ra', 113 - def _reduce_24( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 103 + def _reduce_27( val, _values, result ) + unless val[0].is_a?(AST::ASTArray) + val[0] = aryfy(val[0]) + end + + val[0].push(val[2]) + + result = val[0] + result + end +.,., + +module_eval <<'.,.,', 'grammar.ra', 127 + def _reduce_28( val, _values, result ) if val[0].instance_of?(AST::ASTArray) error "Invalid name" end @@ -932,16 +969,16 @@ module_eval <<'.,.,', 'grammar.ra', 113 end .,., -module_eval <<'.,.,', 'grammar.ra', 116 - def _reduce_25( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 130 + def _reduce_29( val, _values, result ) # This is a deprecated syntax. error "All resource specifications require names" result end .,., -module_eval <<'.,.,', 'grammar.ra', 122 - def _reduce_26( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 136 + def _reduce_30( val, _values, result ) # a template setting for a type if val[0].instance_of?(AST::ASTArray) error "Invalid type" @@ -951,15 +988,15 @@ module_eval <<'.,.,', 'grammar.ra', 122 end .,., -module_eval <<'.,.,', 'grammar.ra', 127 - def _reduce_27( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 141 + def _reduce_31( val, _values, result ) result = ast AST::ResourceOverride, :object => val[0], :params => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 154 - def _reduce_28( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 168 + def _reduce_32( val, _values, result ) type = val[0] if type == :exported and ! Puppet[:storeconfigs] @@ -986,22 +1023,22 @@ module_eval <<'.,.,', 'grammar.ra', 154 end .,., -module_eval <<'.,.,', 'grammar.ra', 155 - def _reduce_29( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 169 + def _reduce_33( val, _values, result ) result = :virtual result end .,., -module_eval <<'.,.,', 'grammar.ra', 156 - def _reduce_30( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 170 + def _reduce_34( val, _values, result ) result = :exported result end .,., -module_eval <<'.,.,', 'grammar.ra', 179 - def _reduce_31( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 193 + def _reduce_35( val, _values, result ) if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end @@ -1023,12 +1060,12 @@ module_eval <<'.,.,', 'grammar.ra', 179 end .,., - # reduce 32 omitted + # reduce 36 omitted - # reduce 33 omitted + # reduce 37 omitted -module_eval <<'.,.,', 'grammar.ra', 190 - def _reduce_34( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 204 + def _reduce_38( val, _values, result ) if val[1] result = val[1] result.form = :virtual @@ -1039,8 +1076,8 @@ module_eval <<'.,.,', 'grammar.ra', 190 end .,., -module_eval <<'.,.,', 'grammar.ra', 198 - def _reduce_35( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 212 + def _reduce_39( val, _values, result ) if val[1] result = val[1] result.form = :exported @@ -1051,33 +1088,33 @@ module_eval <<'.,.,', 'grammar.ra', 198 end .,., - # reduce 36 omitted + # reduce 40 omitted - # reduce 37 omitted + # reduce 41 omitted -module_eval <<'.,.,', 'grammar.ra', 206 - def _reduce_38( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 220 + def _reduce_42( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] result end .,., - # reduce 39 omitted + # reduce 43 omitted -module_eval <<'.,.,', 'grammar.ra', 212 - def _reduce_40( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 226 + def _reduce_44( val, _values, result ) result = val[1] result.parens = true result end .,., - # reduce 41 omitted + # reduce 45 omitted - # reduce 42 omitted + # reduce 46 omitted -module_eval <<'.,.,', 'grammar.ra', 220 - def _reduce_43( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 234 + def _reduce_47( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] #result = ast AST::CollExpr #result.push *val @@ -1085,8 +1122,8 @@ module_eval <<'.,.,', 'grammar.ra', 220 end .,., -module_eval <<'.,.,', 'grammar.ra', 225 - def _reduce_44( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 239 + def _reduce_48( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] #result = ast AST::CollExpr #result.push *val @@ -1094,21 +1131,21 @@ module_eval <<'.,.,', 'grammar.ra', 225 end .,., - # reduce 45 omitted + # reduce 49 omitted - # reduce 46 omitted + # reduce 50 omitted -module_eval <<'.,.,', 'grammar.ra', 232 - def _reduce_47( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 246 + def _reduce_51( val, _values, result ) result = ast AST::ResourceInst, :children => [val[0],val[2]] result end .,., - # reduce 48 omitted + # reduce 52 omitted -module_eval <<'.,.,', 'grammar.ra', 242 - def _reduce_49( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 256 + def _reduce_53( val, _values, result ) if val[0].instance_of?(AST::ResourceInst) result = ast AST::ASTArray, :children => [val[0],val[2]] else @@ -1119,38 +1156,38 @@ module_eval <<'.,.,', 'grammar.ra', 242 end .,., - # reduce 50 omitted + # reduce 54 omitted - # reduce 51 omitted + # reduce 55 omitted -module_eval <<'.,.,', 'grammar.ra', 249 - def _reduce_52( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 263 + def _reduce_56( val, _values, result ) result = ast AST::Name, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 253 - def _reduce_53( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 267 + def _reduce_57( val, _values, result ) result = ast AST::Type, :value => val[0] result end .,., - # reduce 54 omitted + # reduce 58 omitted - # reduce 55 omitted + # reduce 59 omitted - # reduce 56 omitted + # reduce 60 omitted - # reduce 57 omitted + # reduce 61 omitted - # reduce 58 omitted + # reduce 62 omitted - # reduce 59 omitted + # reduce 63 omitted -module_eval <<'.,.,', 'grammar.ra', 266 - def _reduce_60( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 280 + def _reduce_64( val, _values, result ) # this is distinct from referencing a variable variable = ast AST::Name, :value => val[0] result = ast AST::VarDef, :name => variable, :value => val[2] @@ -1158,22 +1195,22 @@ module_eval <<'.,.,', 'grammar.ra', 266 end .,., -module_eval <<'.,.,', 'grammar.ra', 271 - def _reduce_61( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 285 + def _reduce_65( val, _values, result ) result = ast AST::ASTArray result end .,., -module_eval <<'.,.,', 'grammar.ra', 271 - def _reduce_62( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 285 + def _reduce_66( val, _values, result ) result = val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 280 - def _reduce_63( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 294 + def _reduce_67( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1184,17 +1221,17 @@ module_eval <<'.,.,', 'grammar.ra', 280 end .,., -module_eval <<'.,.,', 'grammar.ra', 284 - def _reduce_64( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 298 + def _reduce_68( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., - # reduce 65 omitted + # reduce 69 omitted -module_eval <<'.,.,', 'grammar.ra', 293 - def _reduce_66( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 307 + def _reduce_70( val, _values, result ) if val[0].instance_of?(AST::ASTArray) result = val[0].push(val[2]) else @@ -1204,14 +1241,6 @@ module_eval <<'.,.,', 'grammar.ra', 293 end .,., - # reduce 67 omitted - - # reduce 68 omitted - - # reduce 69 omitted - - # reduce 70 omitted - # reduce 71 omitted # reduce 72 omitted @@ -1234,8 +1263,16 @@ module_eval <<'.,.,', 'grammar.ra', 293 # reduce 81 omitted -module_eval <<'.,.,', 'grammar.ra', 319 - def _reduce_82( val, _values, result ) + # reduce 82 omitted + + # reduce 83 omitted + + # reduce 84 omitted + + # reduce 85 omitted + +module_eval <<'.,.,', 'grammar.ra', 333 + def _reduce_86( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0], @@ -1245,44 +1282,44 @@ module_eval <<'.,.,', 'grammar.ra', 319 end .,., -module_eval <<'.,.,', 'grammar.ra', 323 - def _reduce_83( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 337 + def _reduce_87( val, _values, result ) result = ast AST::String, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 325 - def _reduce_84( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 339 + def _reduce_88( val, _values, result ) result = ast AST::FlatString, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 329 - def _reduce_85( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 343 + def _reduce_89( val, _values, result ) result = ast AST::Boolean, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 334 - def _reduce_86( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 348 + def _reduce_90( 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', 336 - def _reduce_87( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 350 + def _reduce_91( val, _values, result ) result = ast AST::ResourceRef, :type => val[0], :title => val[2] result end .,., -module_eval <<'.,.,', 'grammar.ra', 349 - def _reduce_88( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 363 + def _reduce_92( val, _values, result ) args = { :test => val[1], :statements => val[3] @@ -1297,19 +1334,19 @@ module_eval <<'.,.,', 'grammar.ra', 349 end .,., - # reduce 89 omitted + # reduce 93 omitted -module_eval <<'.,.,', 'grammar.ra', 354 - def _reduce_90( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 368 + def _reduce_94( val, _values, result ) result = ast AST::Else, :statements => val[2] result end .,., - # reduce 91 omitted + # reduce 95 omitted -module_eval <<'.,.,', 'grammar.ra', 366 - def _reduce_92( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 380 + def _reduce_96( val, _values, result ) options = val[3] unless options.instance_of?(AST::ASTArray) options = ast AST::ASTArray, :children => [val[3]] @@ -1319,10 +1356,10 @@ module_eval <<'.,.,', 'grammar.ra', 366 end .,., - # reduce 93 omitted + # reduce 97 omitted -module_eval <<'.,.,', 'grammar.ra', 376 - def _reduce_94( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 390 + def _reduce_98( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push val[1] result = val[0] @@ -1333,15 +1370,15 @@ module_eval <<'.,.,', 'grammar.ra', 376 end .,., -module_eval <<'.,.,', 'grammar.ra', 380 - def _reduce_95( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 394 + def _reduce_99( val, _values, result ) result = ast AST::CaseOpt, :value => val[0], :statements => val[3] result end .,., -module_eval <<'.,.,', 'grammar.ra', 385 - def _reduce_96( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 399 + def _reduce_100( val, _values, result ) result = ast(AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) @@ -1350,10 +1387,10 @@ module_eval <<'.,.,', 'grammar.ra', 385 end .,., - # reduce 97 omitted + # reduce 101 omitted -module_eval <<'.,.,', 'grammar.ra', 395 - def _reduce_98( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 409 + def _reduce_102( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1364,26 +1401,26 @@ module_eval <<'.,.,', 'grammar.ra', 395 end .,., -module_eval <<'.,.,', 'grammar.ra', 399 - def _reduce_99( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 413 + def _reduce_103( val, _values, result ) result = ast AST::Selector, :param => val[0], :values => val[2] result end .,., - # reduce 100 omitted + # reduce 104 omitted -module_eval <<'.,.,', 'grammar.ra', 401 - def _reduce_101( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 415 + def _reduce_105( val, _values, result ) result = val[1] result end .,., - # reduce 102 omitted + # reduce 106 omitted -module_eval <<'.,.,', 'grammar.ra', 412 - def _reduce_103( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 426 + def _reduce_107( val, _values, result ) if val[0].instance_of?(AST::ASTArray) val[0].push(val[2]) result = val[0] @@ -1394,34 +1431,34 @@ module_eval <<'.,.,', 'grammar.ra', 412 end .,., -module_eval <<'.,.,', 'grammar.ra', 416 - def _reduce_104( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 430 + def _reduce_108( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., - # reduce 105 omitted + # reduce 109 omitted - # reduce 106 omitted + # reduce 110 omitted - # reduce 107 omitted + # reduce 111 omitted - # reduce 108 omitted + # reduce 112 omitted - # reduce 109 omitted + # reduce 113 omitted - # reduce 110 omitted + # reduce 114 omitted -module_eval <<'.,.,', 'grammar.ra', 426 - def _reduce_111( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 440 + def _reduce_115( val, _values, result ) result = ast AST::Default, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 488 - def _reduce_112( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 502 + def _reduce_116( val, _values, result ) # importing files # yuk, i hate keywords # we'll probably have to have some kind of search path eventually @@ -1485,8 +1522,8 @@ module_eval <<'.,.,', 'grammar.ra', 488 end .,., -module_eval <<'.,.,', 'grammar.ra', 498 - def _reduce_113( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 512 + def _reduce_117( val, _values, result ) interp.newdefine fqname(val[1]), :arguments => val[2], :code => val[4] @lexer.indefine = false result = nil @@ -1496,8 +1533,8 @@ module_eval <<'.,.,', 'grammar.ra', 498 end .,., -module_eval <<'.,.,', 'grammar.ra', 502 - def _reduce_114( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 516 + def _reduce_118( val, _values, result ) interp.newdefine fqname(val[1]), :arguments => val[2] @lexer.indefine = false result = nil @@ -1505,8 +1542,8 @@ module_eval <<'.,.,', 'grammar.ra', 502 end .,., -module_eval <<'.,.,', 'grammar.ra', 510 - def _reduce_115( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 524 + def _reduce_119( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop interp.newclass fqname(val[1]), :code => val[4], :parent => val[2] @@ -1515,8 +1552,8 @@ module_eval <<'.,.,', 'grammar.ra', 510 end .,., -module_eval <<'.,.,', 'grammar.ra', 515 - def _reduce_116( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 529 + def _reduce_120( val, _values, result ) # Our class gets defined in the parent namespace, not our own. @lexer.namepop interp.newclass fqname(val[1]), :parent => val[2] @@ -1525,30 +1562,30 @@ module_eval <<'.,.,', 'grammar.ra', 515 end .,., -module_eval <<'.,.,', 'grammar.ra', 520 - def _reduce_117( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 534 + def _reduce_121( val, _values, result ) interp.newnode val[1], :parent => val[2], :code => val[4] result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 523 - def _reduce_118( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 537 + def _reduce_122( val, _values, result ) interp.newnode val[1], :parent => val[2] result = nil result end .,., - # reduce 119 omitted + # reduce 123 omitted - # reduce 120 omitted + # reduce 124 omitted - # reduce 121 omitted + # reduce 125 omitted -module_eval <<'.,.,', 'grammar.ra', 535 - def _reduce_122( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 549 + def _reduce_126( val, _values, result ) result = val[0] result = [result] unless result.is_a?(Array) result << val[2] @@ -1556,47 +1593,47 @@ module_eval <<'.,.,', 'grammar.ra', 535 end .,., - # reduce 123 omitted + # reduce 127 omitted - # reduce 124 omitted + # reduce 128 omitted - # reduce 125 omitted + # reduce 129 omitted -module_eval <<'.,.,', 'grammar.ra', 543 - def _reduce_126( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 557 + def _reduce_130( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 547 - def _reduce_127( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 561 + def _reduce_131( val, _values, result ) result = ast AST::ASTArray, :children => [] result end .,., - # reduce 128 omitted + # reduce 132 omitted -module_eval <<'.,.,', 'grammar.ra', 552 - def _reduce_129( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 566 + def _reduce_133( val, _values, result ) result = nil result end .,., -module_eval <<'.,.,', 'grammar.ra', 556 - def _reduce_130( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 570 + def _reduce_134( val, _values, result ) result = val[1] result = [result] unless result[0].is_a?(Array) result end .,., - # reduce 131 omitted + # reduce 135 omitted -module_eval <<'.,.,', 'grammar.ra', 563 - def _reduce_132( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 577 + def _reduce_136( val, _values, result ) result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] @@ -1604,54 +1641,54 @@ module_eval <<'.,.,', 'grammar.ra', 563 end .,., -module_eval <<'.,.,', 'grammar.ra', 568 - def _reduce_133( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 582 + def _reduce_137( val, _values, result ) Puppet.warning addcontext("Deprecation notice: #{val[0].value} must now include '$' in prototype") result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 572 - def _reduce_134( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 586 + def _reduce_138( val, _values, result ) Puppet.warning addcontext("Deprecation notice: #{val[0].value} must now include '$' in prototype") result = [val[0]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 574 - def _reduce_135( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 588 + def _reduce_139( val, _values, result ) result = [val[0], val[2]] result end .,., -module_eval <<'.,.,', 'grammar.ra', 576 - def _reduce_136( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 590 + def _reduce_140( val, _values, result ) result = [val[0]] result end .,., - # reduce 137 omitted + # reduce 141 omitted -module_eval <<'.,.,', 'grammar.ra', 581 - def _reduce_138( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 595 + def _reduce_142( val, _values, result ) result = val[1] result end .,., -module_eval <<'.,.,', 'grammar.ra', 585 - def _reduce_139( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 599 + def _reduce_143( val, _values, result ) result = ast AST::Variable, :value => val[0] result end .,., -module_eval <<'.,.,', 'grammar.ra', 593 - def _reduce_140( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 607 + def _reduce_144( val, _values, result ) if val[1].instance_of?(AST::ASTArray) result = val[1] else @@ -1661,21 +1698,21 @@ module_eval <<'.,.,', 'grammar.ra', 593 end .,., -module_eval <<'.,.,', 'grammar.ra', 595 - def _reduce_141( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 609 + def _reduce_145( val, _values, result ) result = ast AST::ASTArray result end .,., - # reduce 142 omitted + # reduce 146 omitted - # reduce 143 omitted + # reduce 147 omitted - # reduce 144 omitted + # reduce 148 omitted -module_eval <<'.,.,', 'grammar.ra', 600 - def _reduce_145( val, _values, result ) +module_eval <<'.,.,', 'grammar.ra', 614 + def _reduce_149( val, _values, result ) result = nil result end diff --git a/test/data/snippets/virtualresources.pp b/test/data/snippets/virtualresources.pp new file mode 100644 index 000000000..a29406b84 --- /dev/null +++ b/test/data/snippets/virtualresources.pp @@ -0,0 +1,14 @@ +class one { + @file { "/tmp/virtualtest1": content => "one" } + @file { "/tmp/virtualtest2": content => "two" } + @file { "/tmp/virtualtest3": content => "three" } + @file { "/tmp/virtualtest4": content => "four" } +} + +class two { + File <| content == "one" |> + realize File["/tmp/virtualtest2"] + realize(File["/tmp/virtualtest3"], File["/tmp/virtualtest4"]) +} + +include one, two diff --git a/test/language/functions.rb b/test/language/functions.rb index 76b32138d..21af606db 100755 --- a/test/language/functions.rb +++ b/test/language/functions.rb @@ -7,9 +7,11 @@ require 'puppet/parser/interpreter' require 'puppet/parser/parser' require 'puppet/client' require 'puppettest' +require 'puppettest/resourcetesting' class TestLangFunctions < Test::Unit::TestCase include PuppetTest::ParserTesting + include PuppetTest::ResourceTesting def test_functions assert_raise(Puppet::ParseError) do Puppet::Parser::AST::Function.new( @@ -302,6 +304,37 @@ class TestLangFunctions < Test::Unit::TestCase assert(Puppet::Parser::Scope.method_defined?(:function_autofunc), "Did not set function correctly") end + + def test_realize + @interp, @scope, @source = mkclassframing + # Make a virtual resource + virtual = mkresource(:type => "file", :title => "/tmp/virtual", + :virtual => true, :params => {:owner => "root"}) + @scope.setresource virtual + + ref = Puppet::Parser::Resource::Reference.new( + :type => "file", :title => "/tmp/virtual", + :scope => @scope + ) + # Now call the realize function + assert_nothing_raised do + @scope.function_realize(ref) + end + + # Now make sure the virtual resource is no longer virtual + assert(! virtual.virtual?, "Did not make virtual resource real") + + # Make sure we puke on any resource that doesn't exist + + none = Puppet::Parser::Resource::Reference.new( + :type => "file", :title => "/tmp/nosuchfile", + :scope => @scope + ) + + assert_raise(Puppet::ParseError) do + @scope.function_realize(none) + end + end end # $Id$ diff --git a/test/language/snippets.rb b/test/language/snippets.rb index 278218e4f..45137f917 100755 --- a/test/language/snippets.rb +++ b/test/language/snippets.rb @@ -478,6 +478,13 @@ class TestSnippets < Test::Unit::TestCase assert(! FileTest.exists?("/tmp/colltest2"), "Incorrectly collected file") end + def snippet_virtualresources(trans) + %w{1 2 3 4}.each do |num| + assert(FileTest.exists?("/tmp/virtualtest#{num}"), + "Did not collect file #{num}") + end + end + def disabled_snippet_dirchmod(trans) dirs = %w{a b}.collect { |letter| "/tmp/dirchmodtest%s" % letter |