summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r--lib/puppet/parser/compile.rb4
-rw-r--r--lib/puppet/parser/interpreter.rb26
-rw-r--r--lib/puppet/parser/parser_support.rb10
3 files changed, 11 insertions, 29 deletions
diff --git a/lib/puppet/parser/compile.rb b/lib/puppet/parser/compile.rb
index 6aeebeaae..992b165e5 100644
--- a/lib/puppet/parser/compile.rb
+++ b/lib/puppet/parser/compile.rb
@@ -16,8 +16,6 @@ class Puppet::Parser::Compile
include Puppet::Util::Errors
attr_reader :topscope, :parser, :node, :facts, :collections, :configuration
- attr_writer :ast_nodes
-
# Add a collection to the global list.
def add_collection(coll)
@collections << coll
@@ -25,7 +23,7 @@ class Puppet::Parser::Compile
# Do we use nodes found in the code, vs. the external node sources?
def ast_nodes?
- defined?(@ast_nodes) and @ast_nodes
+ parser.nodes.length > 0
end
# Store the fact that we've evaluated a class, and store a reference to
diff --git a/lib/puppet/parser/interpreter.rb b/lib/puppet/parser/interpreter.rb
index 0b8c035ba..87513cb18 100644
--- a/lib/puppet/parser/interpreter.rb
+++ b/lib/puppet/parser/interpreter.rb
@@ -14,7 +14,6 @@ class Puppet::Parser::Interpreter
include Puppet::Util
attr_accessor :usenodes
- attr_accessor :code, :file
include Puppet::Util::Errors
@@ -26,21 +25,11 @@ class Puppet::Parser::Interpreter
# evaluate our whole tree
def compile(node)
raise Puppet::ParseError, "Could not parse configuration; cannot compile" unless env_parser = parser(node.environment)
- return Puppet::Parser::Compile.new(node, env_parser, :ast_nodes => usenodes?).compile
+ return Puppet::Parser::Compile.new(node, env_parser).compile
end
# create our interpreter
- def initialize(options = {})
- if @code = options[:Code]
- elsif @file = options[:Manifest]
- end
-
- if options.include?(:UseNodes)
- @usenodes = options[:UseNodes]
- else
- @usenodes = true
- end
-
+ def initialize
# The class won't always be defined during testing.
if Puppet[:storeconfigs]
if Puppet.features.rails?
@@ -53,21 +42,14 @@ class Puppet::Parser::Interpreter
@parsers = {}
end
- # Should we parse ast nodes?
- def usenodes?
- defined?(@usenodes) and @usenodes
- end
-
private
# Create a new parser object and pre-parse the configuration.
def create_parser(environment)
begin
parser = Puppet::Parser::Parser.new(:environment => environment)
- if self.code
- parser.string = self.code
- elsif self.file
- parser.file = self.file
+ if code = Puppet.settings.value(:code, environment) and code != ""
+ parser.string = code
else
file = Puppet.settings.value(:manifest, environment)
parser.file = file
diff --git a/lib/puppet/parser/parser_support.rb b/lib/puppet/parser/parser_support.rb
index 8cf0dcfe8..acf3c9f7c 100644
--- a/lib/puppet/parser/parser_support.rb
+++ b/lib/puppet/parser/parser_support.rb
@@ -366,10 +366,12 @@ class Puppet::Parser::Parser
end
def on_error(token,value,stack)
- #on '%s' at '%s' in\n'%s'" % [token,value,stack]
- #error = "line %s: parse error after '%s'" %
- # [@lexer.line,@lexer.last]
- error = "Syntax error at '%s'" % [value]
+ if token == 0 # denotes end of file
+ value = 'end of file'
+ else
+ value = "'%s'" % value
+ end
+ error = "Syntax error at %s" % [value]
if brace = @lexer.expected
error += "; expected '%s'" % brace