summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/lexer.rb
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-23 06:26:39 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-23 06:26:39 +0000
commit2742995c0396beb9de9598b43ecde6b20b203d32 (patch)
treec188fc3991e450a98dde09394d39ad48cdfaa851 /lib/puppet/parser/lexer.rb
parent85b19c4815c4e605bcfa561298786ca3c1f68de0 (diff)
downloadpuppet-2742995c0396beb9de9598b43ecde6b20b203d32.tar.gz
puppet-2742995c0396beb9de9598b43ecde6b20b203d32.tar.xz
puppet-2742995c0396beb9de9598b43ecde6b20b203d32.zip
Fixing #343. Collections and definition evaluation both now happen on every iterative evaluation, with collections being evaluated first. This way collections can find resources that either are inside defined types or are the types themselves.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1967 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/parser/lexer.rb')
-rw-r--r--lib/puppet/parser/lexer.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/puppet/parser/lexer.rb b/lib/puppet/parser/lexer.rb
index 39fef8668..7f537eafc 100644
--- a/lib/puppet/parser/lexer.rb
+++ b/lib/puppet/parser/lexer.rb
@@ -81,6 +81,8 @@ module Puppet
array = []
self.scan { |token,str|
+ # Ignore any definition nesting problems
+ @indefine = false
#Puppet.debug("got token '%s' => '%s'" % [token,str])
if token.nil?
return array
@@ -252,12 +254,12 @@ module Puppet
if @lasttoken == :DEFINE
if indefine?
+ msg = "Cannot nest definition %s inside %s" % [value, @indefine]
self.indefine = false
- raise Puppet::ParseError,
- "Definitions cannot nest"
+ raise Puppet::ParseError, msg
end
- @indefine = true
+ @indefine = value
end
@last = value