puppet 0.9.2 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +58 -0
- data/README +21 -18
- data/Rakefile +176 -36
- data/bin/puppet +34 -48
- data/bin/puppetca +41 -28
- data/bin/puppetd +87 -65
- data/bin/puppetdoc +99 -23
- data/bin/puppetmasterd +72 -91
- data/conf/redhat/client.init +80 -0
- data/conf/redhat/client.sysconfig +11 -0
- data/conf/redhat/fileserver.conf +12 -0
- data/conf/redhat/puppet.spec +130 -0
- data/conf/redhat/server.init +89 -0
- data/conf/redhat/server.sysconfig +9 -0
- data/examples/code/allatonce +2 -2
- data/examples/code/assignments +1 -1
- data/examples/code/classing +2 -2
- data/examples/code/components +2 -2
- data/examples/code/file.bl +5 -5
- data/examples/code/filedefaults +2 -2
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +2 -2
- data/examples/code/simpletests +5 -5
- data/examples/code/snippets/argumentdefaults +2 -2
- data/examples/code/snippets/casestatement +16 -8
- data/examples/code/snippets/classheirarchy.pp +4 -4
- data/examples/code/snippets/classincludes.pp +4 -4
- data/examples/code/snippets/classpathtest +2 -2
- data/examples/code/snippets/componentmetaparams.pp +11 -0
- data/examples/code/snippets/dirchmod +5 -5
- data/examples/code/snippets/emptyclass.pp +9 -0
- data/examples/code/snippets/failmissingexecpath.pp +1 -1
- data/examples/code/snippets/falsevalues.pp +1 -1
- data/examples/code/snippets/filecreate +5 -5
- data/examples/code/snippets/implicititeration +5 -5
- data/examples/code/snippets/multipleinstances +4 -4
- data/examples/code/snippets/namevartest +3 -3
- data/examples/code/snippets/scopetest +1 -1
- data/examples/code/snippets/selectorvalues.pp +3 -3
- data/examples/code/snippets/simpledefaults +2 -2
- data/examples/code/snippets/simpleselector +5 -5
- data/examples/code/snippets/singleary.pp +19 -0
- data/examples/root/etc/init.d/sleeper +3 -2
- data/ext/emacs/puppet-mode-init.el +6 -0
- data/ext/emacs/puppet-mode.el +189 -0
- data/ext/ldap/puppet.schema +17 -0
- data/ext/{module:puppet → module_puppet} +30 -31
- data/ext/vim/filetype.vim +9 -0
- data/ext/vim/puppet.vim +87 -0
- data/install.rb +63 -30
- data/lib/puppet.rb +216 -122
- data/lib/puppet/client.rb +51 -416
- data/lib/puppet/client/ca.rb +17 -0
- data/lib/puppet/client/dipper.rb +78 -0
- data/lib/puppet/client/file.rb +20 -0
- data/lib/puppet/client/log.rb +17 -0
- data/lib/puppet/client/master.rb +246 -0
- data/lib/puppet/client/proxy.rb +27 -0
- data/lib/puppet/client/status.rb +7 -0
- data/lib/puppet/config.rb +563 -13
- data/lib/puppet/daemon.rb +50 -22
- data/lib/puppet/element.rb +4 -4
- data/lib/puppet/event-loop.rb +1 -0
- data/lib/puppet/event-loop/better-definers.rb +367 -0
- data/lib/puppet/event-loop/event-loop.rb +355 -0
- data/lib/puppet/event-loop/signal-system.rb +220 -0
- data/lib/puppet/event.rb +9 -11
- data/lib/puppet/filetype.rb +195 -0
- data/lib/puppet/log.rb +35 -12
- data/lib/puppet/metric.rb +2 -2
- data/lib/puppet/networkclient.rb +145 -0
- data/lib/puppet/parameter.rb +335 -0
- data/lib/puppet/parser/ast.rb +42 -1453
- data/lib/puppet/parser/ast/astarray.rb +88 -0
- data/lib/puppet/parser/ast/branch.rb +47 -0
- data/lib/puppet/parser/ast/caseopt.rb +66 -0
- data/lib/puppet/parser/ast/casestatement.rb +78 -0
- data/lib/puppet/parser/ast/classdef.rb +78 -0
- data/lib/puppet/parser/ast/compdef.rb +111 -0
- data/lib/puppet/parser/ast/component.rb +105 -0
- data/lib/puppet/parser/ast/hostclass.rb +82 -0
- data/lib/puppet/parser/ast/leaf.rb +86 -0
- data/lib/puppet/parser/ast/node.rb +103 -0
- data/lib/puppet/parser/ast/nodedef.rb +68 -0
- data/lib/puppet/parser/ast/objectdef.rb +336 -0
- data/lib/puppet/parser/ast/objectparam.rb +30 -0
- data/lib/puppet/parser/ast/objectref.rb +76 -0
- data/lib/puppet/parser/ast/selector.rb +60 -0
- data/lib/puppet/parser/ast/typedefaults.rb +45 -0
- data/lib/puppet/parser/ast/vardef.rb +44 -0
- data/lib/puppet/parser/interpreter.rb +31 -14
- data/lib/puppet/parser/lexer.rb +2 -4
- data/lib/puppet/parser/parser.rb +332 -242
- data/lib/puppet/parser/scope.rb +55 -38
- data/lib/puppet/server.rb +43 -44
- data/lib/puppet/server/authstore.rb +3 -6
- data/lib/puppet/server/ca.rb +5 -2
- data/lib/puppet/server/filebucket.rb +2 -4
- data/lib/puppet/server/fileserver.rb +28 -12
- data/lib/puppet/server/logger.rb +15 -4
- data/lib/puppet/server/master.rb +62 -7
- data/lib/puppet/sslcertificates.rb +41 -607
- data/lib/puppet/sslcertificates/ca.rb +291 -0
- data/lib/puppet/sslcertificates/certificate.rb +283 -0
- data/lib/puppet/statechange.rb +6 -1
- data/lib/puppet/storage.rb +67 -56
- data/lib/puppet/transaction.rb +25 -9
- data/lib/puppet/transportable.rb +102 -22
- data/lib/puppet/type.rb +1096 -315
- data/lib/puppet/type/component.rb +30 -21
- data/lib/puppet/type/cron.rb +409 -448
- data/lib/puppet/type/exec.rb +234 -174
- data/lib/puppet/type/group.rb +65 -82
- data/lib/puppet/type/nameservice.rb +247 -3
- data/lib/puppet/type/nameservice/netinfo.rb +29 -40
- data/lib/puppet/type/nameservice/objectadd.rb +52 -66
- data/lib/puppet/type/nameservice/posix.rb +6 -194
- data/lib/puppet/type/package.rb +447 -295
- data/lib/puppet/type/package/apt.rb +51 -50
- data/lib/puppet/type/package/bsd.rb +82 -0
- data/lib/puppet/type/package/dpkg.rb +85 -88
- data/lib/puppet/type/package/rpm.rb +67 -63
- data/lib/puppet/type/package/sun.rb +119 -98
- data/lib/puppet/type/package/yum.rb +41 -37
- data/lib/puppet/type/parsedtype.rb +295 -0
- data/lib/puppet/type/parsedtype/host.rb +143 -0
- data/lib/puppet/type/parsedtype/port.rb +232 -0
- data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
- data/lib/puppet/type/pfile.rb +484 -460
- data/lib/puppet/type/pfile/checksum.rb +237 -181
- data/lib/puppet/type/pfile/content.rb +67 -0
- data/lib/puppet/type/pfile/ensure.rb +212 -0
- data/lib/puppet/type/pfile/group.rb +106 -105
- data/lib/puppet/type/pfile/mode.rb +98 -101
- data/lib/puppet/type/pfile/source.rb +228 -209
- data/lib/puppet/type/pfile/type.rb +18 -21
- data/lib/puppet/type/pfile/uid.rb +127 -130
- data/lib/puppet/type/pfilebucket.rb +68 -63
- data/lib/puppet/type/schedule.rb +341 -0
- data/lib/puppet/type/service.rb +351 -255
- data/lib/puppet/type/service/base.rb +9 -14
- data/lib/puppet/type/service/debian.rb +32 -38
- data/lib/puppet/type/service/init.rb +130 -130
- data/lib/puppet/type/service/smf.rb +48 -20
- data/lib/puppet/type/state.rb +229 -16
- data/lib/puppet/type/symlink.rb +51 -63
- data/lib/puppet/type/tidy.rb +105 -102
- data/lib/puppet/type/user.rb +118 -180
- data/lib/puppet/util.rb +100 -6
- data/test/certmgr/certmgr.rb +0 -1
- data/test/client/client.rb +4 -4
- data/test/executables/puppetbin.rb +7 -14
- data/test/executables/puppetca.rb +18 -24
- data/test/executables/puppetd.rb +7 -16
- data/test/executables/puppetmasterd.rb +7 -9
- data/test/executables/puppetmodule.rb +11 -16
- data/test/language/ast.rb +11 -7
- data/test/language/interpreter.rb +1 -1
- data/test/language/scope.rb +2 -0
- data/test/language/snippets.rb +30 -5
- data/test/language/transportable.rb +77 -0
- data/test/other/config.rb +316 -0
- data/test/other/events.rb +22 -21
- data/test/other/log.rb +14 -14
- data/test/other/metrics.rb +4 -8
- data/test/other/overrides.rb +5 -5
- data/test/other/relationships.rb +4 -2
- data/test/other/storage.rb +64 -3
- data/test/other/transactions.rb +20 -20
- data/test/parser/parser.rb +7 -4
- data/test/puppet/conffiles.rb +12 -12
- data/test/puppet/defaults.rb +13 -11
- data/test/puppet/utiltest.rb +14 -11
- data/test/puppettest.rb +156 -48
- data/test/server/bucket.rb +2 -2
- data/test/server/fileserver.rb +6 -6
- data/test/server/logger.rb +19 -11
- data/test/server/master.rb +33 -4
- data/test/server/server.rb +2 -7
- data/test/types/basic.rb +5 -7
- data/test/types/component.rb +22 -18
- data/test/types/cron.rb +111 -44
- data/test/types/exec.rb +116 -59
- data/test/types/file.rb +262 -137
- data/test/types/filebucket.rb +13 -15
- data/test/types/fileignoresource.rb +12 -16
- data/test/types/filesources.rb +73 -48
- data/test/types/filetype.rb +13 -15
- data/test/types/group.rb +15 -13
- data/test/types/host.rb +146 -0
- data/test/types/package.rb +74 -63
- data/test/types/port.rb +139 -0
- data/test/types/query.rb +8 -8
- data/test/types/schedule.rb +335 -0
- data/test/types/service.rb +137 -21
- data/test/types/sshkey.rb +140 -0
- data/test/types/symlink.rb +3 -5
- data/test/types/tidy.rb +5 -14
- data/test/types/type.rb +67 -11
- data/test/types/user.rb +25 -23
- metadata +186 -122
- data/lib/puppet/type/pfile/create.rb +0 -108
- data/lib/puppet/type/pprocess.rb +0 -97
- data/lib/puppet/type/typegen.rb +0 -149
- data/lib/puppet/type/typegen/filerecord.rb +0 -243
- data/lib/puppet/type/typegen/filetype.rb +0 -316
- data/test/other/state.rb +0 -106
@@ -0,0 +1,30 @@
|
|
1
|
+
class Puppet::Parser::AST
|
2
|
+
# The AST object for the parameters inside ObjectDefs and Selectors.
|
3
|
+
class ObjectParam < AST::Branch
|
4
|
+
attr_accessor :value, :param
|
5
|
+
|
6
|
+
def each
|
7
|
+
[@param,@value].each { |child| yield child }
|
8
|
+
end
|
9
|
+
|
10
|
+
# Return the parameter and the value.
|
11
|
+
def evaluate(scope)
|
12
|
+
param = @param.safeevaluate(scope)
|
13
|
+
value = @value.safeevaluate(scope)
|
14
|
+
return [param, value]
|
15
|
+
end
|
16
|
+
|
17
|
+
def tree(indent = 0)
|
18
|
+
return [
|
19
|
+
@param.tree(indent + 1),
|
20
|
+
((@@indline * indent) + self.typewrap(self.pin)),
|
21
|
+
@value.tree(indent + 1)
|
22
|
+
].join("\n")
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
return "%s => %s" % [@param,@value]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
class Puppet::Parser::AST
|
2
|
+
# A reference to an object. Only valid as an rvalue.
|
3
|
+
class ObjectRef < AST::Branch
|
4
|
+
attr_accessor :name, :type
|
5
|
+
|
6
|
+
def each
|
7
|
+
[@type,@name].flatten.each { |param|
|
8
|
+
#Puppet.debug("yielding param %s" % param)
|
9
|
+
yield param
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
# Evaluate our object, but just return a simple array of the type
|
14
|
+
# and name.
|
15
|
+
def evaluate(scope)
|
16
|
+
objtype = @type.safeevaluate(scope)
|
17
|
+
objnames = @name.safeevaluate(scope)
|
18
|
+
|
19
|
+
# it's easier to always use an array, even for only one name
|
20
|
+
unless objnames.is_a?(Array)
|
21
|
+
objnames = [objnames]
|
22
|
+
end
|
23
|
+
|
24
|
+
# See if we can look the object up in our scope tree.
|
25
|
+
begin
|
26
|
+
object = scope.lookuptype(objtype)
|
27
|
+
rescue Puppet::ParseError => except
|
28
|
+
except.line = self.line
|
29
|
+
except.file = self.file
|
30
|
+
raise except
|
31
|
+
rescue => detail
|
32
|
+
error = Puppet::ParseError.new(detail)
|
33
|
+
error.line = self.line
|
34
|
+
error.file = self.file
|
35
|
+
error.backtrace = detail.backtrace
|
36
|
+
raise error
|
37
|
+
end
|
38
|
+
|
39
|
+
# If the type isn't defined, verify that it's builtin
|
40
|
+
unless object or Puppet::Type.type(objtype)
|
41
|
+
error = Puppet::ParseError.new("Could not find type %s" %
|
42
|
+
objtype.inspect)
|
43
|
+
error.line = self.line
|
44
|
+
error.file = self.file
|
45
|
+
raise error
|
46
|
+
end
|
47
|
+
|
48
|
+
# should we implicitly iterate here?
|
49
|
+
# yes, i believe that we essentially have to...
|
50
|
+
ret = objnames.collect { |objname|
|
51
|
+
if object.is_a?(AST::Component)
|
52
|
+
objname = "%s[%s]" % [objtype,objname]
|
53
|
+
objtype = "component"
|
54
|
+
end
|
55
|
+
[objtype,objname]
|
56
|
+
}.reject { |obj| obj.nil? }
|
57
|
+
|
58
|
+
# Return a flattened array, since we know that we've created an
|
59
|
+
# array
|
60
|
+
return *ret
|
61
|
+
end
|
62
|
+
|
63
|
+
def tree(indent = 0)
|
64
|
+
return [
|
65
|
+
@type.tree(indent + 1),
|
66
|
+
@name.tree(indent + 1),
|
67
|
+
((@@indline * indent) + self.typewrap(self.pin))
|
68
|
+
].join("\n")
|
69
|
+
end
|
70
|
+
|
71
|
+
def to_s
|
72
|
+
return "%s[%s]" % [@name,@type]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
class Puppet::Parser::AST
|
2
|
+
# The inline conditional operator. Unlike CaseStatement, which executes
|
3
|
+
# code, we just return a value.
|
4
|
+
class Selector < AST::Branch
|
5
|
+
attr_accessor :param, :values
|
6
|
+
|
7
|
+
def each
|
8
|
+
[@param,@values].each { |child| yield child }
|
9
|
+
end
|
10
|
+
|
11
|
+
# Find the value that corresponds with the test.
|
12
|
+
def evaluate(scope)
|
13
|
+
retvalue = nil
|
14
|
+
found = nil
|
15
|
+
|
16
|
+
# Get our parameter.
|
17
|
+
paramvalue = @param.safeevaluate(scope)
|
18
|
+
|
19
|
+
default = nil
|
20
|
+
|
21
|
+
# Then look for a match in the options.
|
22
|
+
@values.each { |obj|
|
23
|
+
param = obj.param.safeevaluate(scope)
|
24
|
+
if param == paramvalue
|
25
|
+
# we found a matching option
|
26
|
+
retvalue = obj.value.safeevaluate(scope)
|
27
|
+
found = true
|
28
|
+
break
|
29
|
+
elsif obj.param.is_a?(Default)
|
30
|
+
default = obj
|
31
|
+
end
|
32
|
+
}
|
33
|
+
|
34
|
+
# Unless we found something, look for the default.
|
35
|
+
unless found
|
36
|
+
if default
|
37
|
+
retvalue = default.value.safeevaluate(scope)
|
38
|
+
else
|
39
|
+
error = Puppet::ParseError.new(
|
40
|
+
"No value for selector param '%s'" % paramvalue
|
41
|
+
)
|
42
|
+
error.line = self.line
|
43
|
+
error.file = self.file
|
44
|
+
raise error
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
return retvalue
|
49
|
+
end
|
50
|
+
|
51
|
+
def tree(indent = 0)
|
52
|
+
return [
|
53
|
+
@param.tree(indent + 1),
|
54
|
+
((@@indline * indent) + self.typewrap(self.pin)),
|
55
|
+
@values.tree(indent + 1)
|
56
|
+
].join("\n")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
class Puppet::Parser::AST
|
2
|
+
# A statement syntactically similar to an ObjectDef, but uses a
|
3
|
+
# capitalized object type and cannot have a name.
|
4
|
+
class TypeDefaults < AST::Branch
|
5
|
+
attr_accessor :type, :params
|
6
|
+
|
7
|
+
def each
|
8
|
+
[@type,@params].each { |child| yield child }
|
9
|
+
end
|
10
|
+
|
11
|
+
# As opposed to ObjectDef, this stores each default for the given
|
12
|
+
# object type.
|
13
|
+
def evaluate(scope)
|
14
|
+
type = @type.safeevaluate(scope)
|
15
|
+
params = @params.safeevaluate(scope)
|
16
|
+
|
17
|
+
begin
|
18
|
+
scope.setdefaults(type.downcase,params)
|
19
|
+
rescue Puppet::ParseError => except
|
20
|
+
except.line = self.line
|
21
|
+
except.file = self.file
|
22
|
+
raise except
|
23
|
+
rescue => detail
|
24
|
+
error = Puppet::ParseError.new(detail)
|
25
|
+
error.line = self.line
|
26
|
+
error.file = self.file
|
27
|
+
error.backtrace = detail.backtrace
|
28
|
+
raise error
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def tree(indent = 0)
|
33
|
+
return [
|
34
|
+
@type.tree(indent + 1),
|
35
|
+
((@@indline * 4 * indent) + self.typewrap(self.pin)),
|
36
|
+
@params.tree(indent + 1)
|
37
|
+
].join("\n")
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_s
|
41
|
+
return "%s { %s }" % [@type,@params]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class Puppet::Parser::AST
|
2
|
+
# Define a variable. Stores the value in the current scope.
|
3
|
+
class VarDef < AST::Branch
|
4
|
+
attr_accessor :name, :value
|
5
|
+
|
6
|
+
# Look up our name and value, and store them appropriately. The
|
7
|
+
# lexer strips off the syntax stuff like '$'.
|
8
|
+
def evaluate(scope)
|
9
|
+
name = @name.safeevaluate(scope)
|
10
|
+
value = @value.safeevaluate(scope)
|
11
|
+
|
12
|
+
begin
|
13
|
+
scope.setvar(name,value)
|
14
|
+
rescue Puppet::ParseError => except
|
15
|
+
except.line = self.line
|
16
|
+
except.file = self.file
|
17
|
+
raise except
|
18
|
+
rescue => detail
|
19
|
+
error = Puppet::ParseError.new(detail)
|
20
|
+
error.line = self.line
|
21
|
+
error.file = self.file
|
22
|
+
error.backtrace = detail.backtrace
|
23
|
+
raise error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def each
|
28
|
+
[@name,@value].each { |child| yield child }
|
29
|
+
end
|
30
|
+
|
31
|
+
def tree(indent = 0)
|
32
|
+
return [
|
33
|
+
@name.tree(indent + 1),
|
34
|
+
((@@indline * 4 * indent) + self.typewrap(self.pin)),
|
35
|
+
@value.tree(indent + 1)
|
36
|
+
].join("\n")
|
37
|
+
end
|
38
|
+
|
39
|
+
def to_s
|
40
|
+
return "%s => %s" % [@name,@value]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -10,7 +10,7 @@ require 'puppet/parser/scope'
|
|
10
10
|
module Puppet
|
11
11
|
module Parser
|
12
12
|
class Interpreter
|
13
|
-
attr_accessor :ast
|
13
|
+
attr_accessor :ast, :filetimeout
|
14
14
|
# just shorten the constant path a bit, using what amounts to an alias
|
15
15
|
AST = Puppet::Parser::AST
|
16
16
|
|
@@ -21,6 +21,9 @@ module Puppet
|
|
21
21
|
end
|
22
22
|
|
23
23
|
@file = hash[:Manifest]
|
24
|
+
@filetimeout = hash[:ParseCheck] || 15
|
25
|
+
|
26
|
+
@lastchecked = 0
|
24
27
|
|
25
28
|
if hash.include?(:UseNodes)
|
26
29
|
@usenodes = hash[:UseNodes]
|
@@ -38,6 +41,11 @@ module Puppet
|
|
38
41
|
evaluate
|
39
42
|
end
|
40
43
|
|
44
|
+
def parsedate
|
45
|
+
parsefiles()
|
46
|
+
@parsedate
|
47
|
+
end
|
48
|
+
|
41
49
|
# evaluate our whole tree
|
42
50
|
def run(client, facts)
|
43
51
|
parsefiles()
|
@@ -60,8 +68,7 @@ module Puppet
|
|
60
68
|
end
|
61
69
|
|
62
70
|
# We've already evaluated the AST, in this case
|
63
|
-
|
64
|
-
return retval
|
71
|
+
return @scope.evalnode(names, facts)
|
65
72
|
else
|
66
73
|
# We've already evaluated the AST, in this case
|
67
74
|
@scope = Puppet::Parser::Scope.new() # no parent scope
|
@@ -75,19 +82,15 @@ module Puppet
|
|
75
82
|
#Puppet.err "File %s, line %s: %s" %
|
76
83
|
# [except.file, except.line, except.message]
|
77
84
|
if Puppet[:debug]
|
78
|
-
puts except.
|
79
|
-
end
|
80
|
-
if Puppet[:debug]
|
81
|
-
puts caller
|
85
|
+
puts except.backtrace
|
82
86
|
end
|
83
87
|
#exit(1)
|
84
88
|
raise
|
85
89
|
rescue => except
|
86
90
|
error = Puppet::DevError.new("%s: %s" %
|
87
91
|
[except.class, except.message])
|
88
|
-
error.stack = caller
|
89
92
|
if Puppet[:debug]
|
90
|
-
puts
|
93
|
+
puts except.backtrace
|
91
94
|
end
|
92
95
|
raise error
|
93
96
|
end
|
@@ -104,6 +107,8 @@ module Puppet
|
|
104
107
|
# entire configuration each time we get a connect.
|
105
108
|
def evaluate
|
106
109
|
|
110
|
+
# FIXME When this produces errors, it should specify which
|
111
|
+
# node caused those errors.
|
107
112
|
if @usenodes
|
108
113
|
@scope = Puppet::Parser::Scope.new() # no parent scope
|
109
114
|
@scope.name = "top"
|
@@ -119,26 +124,38 @@ module Puppet
|
|
119
124
|
|
120
125
|
def parsefiles
|
121
126
|
if defined? @parser
|
122
|
-
|
123
|
-
|
127
|
+
# Only check the files every 15 seconds or so, not on
|
128
|
+
# every single connection
|
129
|
+
if (Time.now - @lastchecked).to_i >= @filetimeout.to_i
|
130
|
+
unless @parser.reparse?
|
131
|
+
@lastchecked = Time.now
|
132
|
+
return false
|
133
|
+
end
|
134
|
+
else
|
135
|
+
return
|
124
136
|
end
|
125
137
|
end
|
126
138
|
|
127
139
|
unless FileTest.exists?(@file)
|
128
140
|
if @ast
|
129
|
-
Puppet.warning "Manifest %s has disappeared" % @file
|
130
141
|
return
|
131
142
|
else
|
132
143
|
raise Puppet::Error, "Manifest %s must exist" % @file
|
133
144
|
end
|
134
145
|
end
|
135
146
|
|
136
|
-
|
147
|
+
if defined? @parser
|
148
|
+
Puppet.info "Reloading files"
|
149
|
+
end
|
137
150
|
# should i be creating a new parser each time...?
|
138
151
|
@parser = Puppet::Parser::Parser.new()
|
139
152
|
@parser.file = @file
|
140
153
|
@ast = @parser.parse
|
141
154
|
|
155
|
+
# Mark when we parsed, so we can check freshness
|
156
|
+
@parsedate = Time.now.to_i
|
157
|
+
@lastchecked = Time.now
|
158
|
+
|
142
159
|
# Reevaluate the config. This is what actually replaces the
|
143
160
|
# existing scope.
|
144
161
|
evaluate
|
@@ -147,4 +164,4 @@ module Puppet
|
|
147
164
|
end
|
148
165
|
end
|
149
166
|
|
150
|
-
# $Id: interpreter.rb
|
167
|
+
# $Id: interpreter.rb 858 2006-01-30 19:22:25Z luke $
|
data/lib/puppet/parser/lexer.rb
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
#!/usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
# $Id: lexer.rb 700 2005-09-22 23:24:20Z luke $
|
4
1
|
|
5
2
|
# the scanner/lexer
|
6
3
|
|
@@ -53,7 +50,6 @@ module Puppet
|
|
53
50
|
"default" => :DEFAULT,
|
54
51
|
"define" => :DEFINE,
|
55
52
|
"false" => :BOOLEAN,
|
56
|
-
"host" => :NODE,
|
57
53
|
"import" => :IMPORT,
|
58
54
|
"include" => :INCLUDE,
|
59
55
|
"inherits" => :INHERITS,
|
@@ -224,3 +220,5 @@ module Puppet
|
|
224
220
|
#---------------------------------------------------------------
|
225
221
|
end
|
226
222
|
end
|
223
|
+
|
224
|
+
# $Id: lexer.rb 760 2006-01-03 03:08:05Z luke $
|
data/lib/puppet/parser/parser.rb
CHANGED
@@ -14,10 +14,7 @@ require 'puppet/parser/ast'
|
|
14
14
|
#require 'puppet/parser/interpreter'
|
15
15
|
|
16
16
|
module Puppet
|
17
|
-
|
18
|
-
class ParseError < Puppet::Error
|
19
|
-
attr_accessor :line, :file
|
20
|
-
end
|
17
|
+
class ParseError < Puppet::Error; end
|
21
18
|
|
22
19
|
class ImportError < Racc::ParseError; end
|
23
20
|
end
|
@@ -32,13 +29,13 @@ module Puppet
|
|
32
29
|
|
33
30
|
class Parser < Racc::Parser
|
34
31
|
|
35
|
-
module_eval <<'..end grammar.ra modeval..
|
32
|
+
module_eval <<'..end grammar.ra modeval..id4d297a9dfb', 'grammar.ra', 703
|
36
33
|
attr_reader :file
|
37
34
|
attr_accessor :files
|
38
35
|
|
39
36
|
# Create an AST array out of all of the args
|
40
37
|
def aryfy(*args)
|
41
|
-
if args[0].
|
38
|
+
if args[0].instance_of?(AST::ASTArray)
|
42
39
|
result = args.shift
|
43
40
|
args.each { |arg|
|
44
41
|
result.push arg
|
@@ -103,7 +100,7 @@ def parse
|
|
103
100
|
error = Puppet::ParseError.new(except)
|
104
101
|
error.line = @lexer.line
|
105
102
|
error.file = @lexer.file
|
106
|
-
error.
|
103
|
+
error.backtrace = except.backtrace
|
107
104
|
raise error
|
108
105
|
rescue Puppet::ParseError => except
|
109
106
|
except.line ||= @lexer.line
|
@@ -113,7 +110,6 @@ def parse
|
|
113
110
|
# and this is a framework error
|
114
111
|
except.line ||= @lexer.line
|
115
112
|
except.file ||= @lexer.file
|
116
|
-
except.stack ||= except.stack
|
117
113
|
#if Puppet[:debug]
|
118
114
|
# puts except.stack
|
119
115
|
#end
|
@@ -121,7 +117,6 @@ def parse
|
|
121
117
|
rescue Puppet::DevError => except
|
122
118
|
except.line ||= @lexer.line
|
123
119
|
except.file ||= @lexer.file
|
124
|
-
except.stack ||= caller
|
125
120
|
#if Puppet[:debug]
|
126
121
|
# puts except.stack
|
127
122
|
#end
|
@@ -130,7 +125,7 @@ def parse
|
|
130
125
|
error = Puppet::DevError.new(except.message)
|
131
126
|
error.line = @lexer.line
|
132
127
|
error.file = @lexer.file
|
133
|
-
error.
|
128
|
+
error.backtrace = except.backtrace
|
134
129
|
#if Puppet[:debug]
|
135
130
|
# puts caller
|
136
131
|
#end
|
@@ -148,8 +143,8 @@ def string=(string)
|
|
148
143
|
@lexer.string = string
|
149
144
|
end
|
150
145
|
|
151
|
-
# $Id: parser.rb
|
152
|
-
..end grammar.ra modeval..
|
146
|
+
# $Id: parser.rb 879 2006-02-08 16:00:41Z luke $
|
147
|
+
..end grammar.ra modeval..id4d297a9dfb
|
153
148
|
|
154
149
|
##### racc 1.4.4 generates ###
|
155
150
|
|
@@ -210,186 +205,190 @@ racc_reduce_table = [
|
|
210
205
|
1, 72, :_reduce_none,
|
211
206
|
2, 72, :_reduce_54,
|
212
207
|
5, 73, :_reduce_55,
|
208
|
+
4, 73, :_reduce_56,
|
213
209
|
1, 74, :_reduce_none,
|
214
|
-
3, 74, :
|
215
|
-
3, 64, :
|
210
|
+
3, 74, :_reduce_58,
|
211
|
+
3, 64, :_reduce_59,
|
216
212
|
1, 76, :_reduce_none,
|
217
|
-
3, 76, :
|
213
|
+
3, 76, :_reduce_61,
|
218
214
|
1, 78, :_reduce_none,
|
219
|
-
3, 78, :
|
220
|
-
3, 77, :
|
221
|
-
1, 75, :_reduce_64,
|
215
|
+
3, 78, :_reduce_63,
|
216
|
+
3, 77, :_reduce_64,
|
222
217
|
1, 75, :_reduce_65,
|
223
218
|
1, 75, :_reduce_66,
|
224
219
|
1, 75, :_reduce_67,
|
220
|
+
1, 75, :_reduce_68,
|
225
221
|
1, 75, :_reduce_none,
|
226
|
-
2, 47, :
|
227
|
-
6, 49, :
|
228
|
-
|
229
|
-
6,
|
222
|
+
2, 47, :_reduce_70,
|
223
|
+
6, 49, :_reduce_71,
|
224
|
+
5, 49, :_reduce_72,
|
225
|
+
6, 50, :_reduce_73,
|
226
|
+
5, 50, :_reduce_74,
|
227
|
+
6, 51, :_reduce_75,
|
228
|
+
5, 51, :_reduce_76,
|
230
229
|
1, 81, :_reduce_none,
|
231
|
-
2, 81, :
|
232
|
-
0, 82, :
|
230
|
+
2, 81, :_reduce_78,
|
231
|
+
0, 82, :_reduce_79,
|
233
232
|
1, 79, :_reduce_none,
|
234
|
-
3, 79, :
|
235
|
-
3, 79, :
|
233
|
+
3, 79, :_reduce_81,
|
234
|
+
3, 79, :_reduce_82,
|
236
235
|
1, 83, :_reduce_none,
|
237
|
-
3, 83, :
|
238
|
-
3, 84, :
|
239
|
-
1, 84, :
|
236
|
+
3, 83, :_reduce_84,
|
237
|
+
3, 84, :_reduce_85,
|
238
|
+
1, 84, :_reduce_86,
|
240
239
|
1, 80, :_reduce_none,
|
241
|
-
2, 80, :
|
242
|
-
1, 55, :
|
243
|
-
3, 65, :
|
240
|
+
2, 80, :_reduce_88,
|
241
|
+
1, 55, :_reduce_89,
|
242
|
+
3, 65, :_reduce_90,
|
244
243
|
1, 69, :_reduce_none,
|
245
244
|
1, 69, :_reduce_none,
|
246
245
|
0, 59, :_reduce_none,
|
247
|
-
1, 59, :
|
246
|
+
1, 59, :_reduce_94 ]
|
248
247
|
|
249
|
-
racc_reduce_n =
|
248
|
+
racc_reduce_n = 95
|
250
249
|
|
251
|
-
racc_shift_n =
|
250
|
+
racc_shift_n = 156
|
252
251
|
|
253
252
|
racc_action_table = [
|
254
|
-
88,
|
255
|
-
96, 4, 7, 88, 11, 14,
|
256
|
-
|
257
|
-
35, 86, 87, 86, 87, 90, 35, 90,
|
258
|
-
87, 35,
|
259
|
-
87, 35, 104, 90, 86, 87,
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
nil,
|
274
|
-
|
275
|
-
|
276
|
-
nil,
|
277
|
-
7, nil, 11, 14, nil, 18,
|
278
|
-
5, nil, 9, nil, 15, 4, 7, nil, 11, 14,
|
279
|
-
nil, 18, nil, nil, nil, 2, 5, nil, 9, nil,
|
280
|
-
15, 4, 7, nil, 11, 14, nil, 18, nil, nil,
|
253
|
+
88, 124, 88, 65, 147, 127, 101, 102, 88, 5,
|
254
|
+
96, 4, 7, 88, 11, 14, 121, 18, 88, 31,
|
255
|
+
107, 2, 5, 88, 9, 123, 15, 5, 35, 110,
|
256
|
+
35, 86, 87, 86, 87, 90, 35, 90, 135, 86,
|
257
|
+
87, 35, 55, 90, 86, 87, 35, 112, 90, 86,
|
258
|
+
87, 35, 104, 90, 86, 87, 4, 7, 90, 11,
|
259
|
+
14, 149, 18, 106, 119, 114, 2, 5, 31, 9,
|
260
|
+
118, 15, 28, 29, 58, 61, 5, 50, 117, 4,
|
261
|
+
7, 106, 11, 14, 120, 18, 104, 65, 141, 2,
|
262
|
+
5, 40, 9, 108, 15, 28, 29, 31, 28, 29,
|
263
|
+
55, 35, 129, 54, 2, 5, 4, 7, 131, 11,
|
264
|
+
14, 61, 18, 28, 29, 52, 2, 5, 50, 9,
|
265
|
+
31, 15, 137, 31, 66, 139, 61, 2, 5, 133,
|
266
|
+
2, 72, 48, 5, 28, 29, 28, 29, 31, 100,
|
267
|
+
5, 144, 35, 101, 102, 2, 5, 4, 7, 5,
|
268
|
+
11, 14, 81, 18, 28, 29, 41, 2, 5, 31,
|
269
|
+
9, 31, 15, 35, 40, 35, 2, 5, 2, 5,
|
270
|
+
150, 39, 151, 24, 23, 28, 29, 28, 29, 31,
|
271
|
+
61, 69, nil, 35, nil, nil, 2, 5, 4, 7,
|
272
|
+
nil, 11, 14, 115, 18, nil, nil, nil, 2, 5,
|
273
|
+
31, 9, 31, 15, 35, nil, 35, 2, 5, 2,
|
274
|
+
5, 4, 7, 152, 11, 14, nil, 18, nil, nil,
|
275
|
+
nil, 2, 5, nil, 9, nil, 15, nil, nil, 155,
|
276
|
+
nil, 4, 7, nil, 11, 14, nil, 18, 28, 29,
|
281
277
|
nil, 2, 5, nil, 9, nil, 15, 4, 7, nil,
|
282
278
|
11, 14, nil, 18, nil, nil, nil, 2, 5, nil,
|
283
|
-
9, nil, 15
|
279
|
+
9, nil, 15, 31, nil, nil, nil, 35, nil, nil,
|
280
|
+
2, 5, 4, 7, nil, 11, 14, nil, 18, nil,
|
281
|
+
nil, nil, 2, 5, nil, 9, nil, 15 ]
|
284
282
|
|
285
283
|
racc_action_check = [
|
286
|
-
|
287
|
-
55,
|
288
|
-
|
289
|
-
|
290
|
-
55, 91,
|
291
|
-
96,
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
nil,
|
306
|
-
|
307
|
-
|
308
|
-
nil, nil, nil,
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
20, 20, nil, 20, nil,
|
315
|
-
20, nil, 20 ]
|
284
|
+
54, 93, 146, 46, 126, 97, 126, 126, 55, 46,
|
285
|
+
55, 0, 0, 91, 0, 0, 91, 0, 96, 15,
|
286
|
+
63, 0, 0, 124, 0, 93, 0, 15, 54, 67,
|
287
|
+
146, 54, 54, 146, 146, 54, 55, 146, 110, 55,
|
288
|
+
55, 91, 70, 55, 91, 91, 96, 71, 91, 96,
|
289
|
+
96, 124, 72, 96, 124, 124, 110, 110, 124, 110,
|
290
|
+
110, 134, 110, 73, 83, 76, 110, 110, 66, 110,
|
291
|
+
83, 110, 120, 120, 38, 40, 66, 38, 82, 134,
|
292
|
+
134, 62, 134, 134, 85, 134, 61, 41, 116, 134,
|
293
|
+
134, 33, 134, 65, 134, 112, 112, 120, 50, 50,
|
294
|
+
26, 120, 103, 25, 120, 120, 116, 116, 105, 116,
|
295
|
+
116, 106, 116, 127, 127, 24, 116, 116, 21, 116,
|
296
|
+
112, 116, 111, 50, 43, 113, 114, 112, 112, 107,
|
297
|
+
50, 50, 19, 119, 104, 104, 99, 99, 127, 57,
|
298
|
+
18, 123, 127, 57, 57, 127, 127, 107, 107, 52,
|
299
|
+
107, 107, 51, 107, 28, 28, 14, 107, 107, 104,
|
300
|
+
107, 99, 107, 104, 12, 99, 104, 104, 99, 99,
|
301
|
+
136, 11, 140, 7, 4, 9, 9, 58, 58, 28,
|
302
|
+
151, 48, nil, 28, nil, nil, 28, 28, 136, 136,
|
303
|
+
nil, 136, 136, 81, 136, nil, nil, nil, 136, 136,
|
304
|
+
9, 136, 58, 136, 9, nil, 58, 9, 9, 58,
|
305
|
+
58, 81, 81, 144, 81, 81, nil, 81, nil, nil,
|
306
|
+
nil, 81, 81, nil, 81, nil, 81, nil, nil, 153,
|
307
|
+
nil, 144, 144, nil, 144, 144, nil, 144, 39, 39,
|
308
|
+
nil, 144, 144, nil, 144, nil, 144, 153, 153, nil,
|
309
|
+
153, 153, nil, 153, nil, nil, nil, 153, 153, nil,
|
310
|
+
153, nil, 153, 39, nil, nil, nil, 39, nil, nil,
|
311
|
+
39, 39, 20, 20, nil, 20, 20, nil, 20, nil,
|
312
|
+
nil, nil, 20, 20, nil, 20, nil, 20 ]
|
316
313
|
|
317
314
|
racc_action_pointer = [
|
318
|
-
|
319
|
-
nil,
|
320
|
-
|
321
|
-
nil, nil, nil,
|
322
|
-
|
323
|
-
|
324
|
-
nil,
|
325
|
-
|
326
|
-
nil,
|
327
|
-
nil, 10, nil, -8, nil, nil, 15,
|
328
|
-
nil, nil, nil,
|
329
|
-
|
330
|
-
nil, nil,
|
331
|
-
nil, nil,
|
332
|
-
|
333
|
-
nil, nil ]
|
315
|
+
-13, nil, nil, nil, 171, nil, nil, 138, nil, 173,
|
316
|
+
nil, 159, 159, nil, 121, -8, nil, nil, 105, 132,
|
317
|
+
248, 113, nil, nil, 101, 98, 87, nil, 152, nil,
|
318
|
+
nil, nil, nil, 86, nil, nil, nil, nil, 72, 236,
|
319
|
+
40, 58, nil, 115, nil, nil, -26, nil, 181, nil,
|
320
|
+
96, 147, 114, nil, -3, 5, nil, 135, 175, nil,
|
321
|
+
nil, 78, 72, 15, nil, 58, 41, 24, nil, nil,
|
322
|
+
29, 11, 44, 54, nil, nil, 32, nil, nil, nil,
|
323
|
+
nil, 187, 63, 55, nil, 72, nil, nil, nil, nil,
|
324
|
+
nil, 10, nil, -8, nil, nil, 15, -3, nil, 134,
|
325
|
+
nil, nil, nil, 98, 132, 102, 76, 123, nil, nil,
|
326
|
+
32, 116, 93, 119, 91, nil, 82, nil, nil, 98,
|
327
|
+
70, nil, nil, 136, 20, nil, -2, 111, nil, nil,
|
328
|
+
nil, nil, nil, nil, 55, nil, 164, nil, nil, nil,
|
329
|
+
163, nil, nil, nil, 207, nil, -1, nil, nil, nil,
|
330
|
+
nil, 145, nil, 223, nil, nil ]
|
334
331
|
|
335
332
|
racc_action_default = [
|
336
|
-
-
|
337
|
-
-8, -
|
338
|
-
-1, -
|
339
|
-
-43, -
|
340
|
-
-34, -
|
341
|
-
-34, -
|
342
|
-
-35, -
|
343
|
-
-31, -23, -25, -
|
344
|
-
-28, -
|
345
|
-
-
|
346
|
-
-
|
347
|
-
-
|
348
|
-
-52, -54, -
|
349
|
-
-
|
350
|
-
-
|
351
|
-
-
|
333
|
+
-95, -4, -26, -5, -95, -25, -6, -95, -7, -95,
|
334
|
+
-8, -95, -95, -9, -95, -95, -10, -11, -95, -95,
|
335
|
+
-1, -95, -2, -70, -79, -95, -46, -45, -95, -49,
|
336
|
+
-43, -89, -48, -42, -40, -50, -44, -47, -41, -95,
|
337
|
+
-34, -79, -16, -12, -13, -15, -79, -77, -95, -3,
|
338
|
+
-34, -95, -79, -80, -95, -95, -38, -95, -95, -33,
|
339
|
+
-35, -95, -93, -95, -87, -95, -95, -95, -78, 156,
|
340
|
+
-31, -23, -25, -93, -29, -21, -95, -27, -30, -32,
|
341
|
+
-28, -95, -95, -95, -83, -86, -66, -65, -67, -69,
|
342
|
+
-68, -95, -53, -95, -57, -60, -95, -95, -59, -95,
|
343
|
+
-90, -91, -92, -95, -95, -95, -94, -95, -88, -14,
|
344
|
+
-95, -95, -24, -95, -34, -72, -95, -81, -82, -95,
|
345
|
+
-95, -52, -54, -95, -95, -62, -95, -95, -39, -51,
|
346
|
+
-37, -19, -36, -74, -95, -76, -95, -17, -22, -18,
|
347
|
+
-20, -71, -84, -85, -95, -58, -95, -61, -64, -73,
|
348
|
+
-75, -95, -56, -95, -63, -55 ]
|
352
349
|
|
353
350
|
racc_goto_table = [
|
354
|
-
20, 49,
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
nil,
|
362
|
-
|
363
|
-
nil, nil, 38, nil,
|
364
|
-
27, nil, nil,
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
351
|
+
20, 49, 99, 38, 42, 27, 62, 84, 95, 45,
|
352
|
+
75, 77, 47, 25, 94, 78, 73, 79, 44, 132,
|
353
|
+
92, 126, 38, 105, 27, 53, 89, 89, 111, 98,
|
354
|
+
43, 63, 56, 38, 113, 27, 67, 33, 57, 70,
|
355
|
+
68, 51, 91, 59, 80, 46, 85, 71, 83, 125,
|
356
|
+
19, 94, 38, 82, 27, 42, 33, 122, nil, nil,
|
357
|
+
45, nil, 103, 89, 132, nil, nil, 33, 89, 109,
|
358
|
+
nil, 146, 138, 77, 142, nil, nil, 78, 74, 79,
|
359
|
+
140, 116, nil, nil, 145, nil, 33, nil, nil, nil,
|
360
|
+
nil, nil, nil, 38, nil, 27, 89, 49, 38, 154,
|
361
|
+
27, 70, nil, 128, nil, nil, 80, 134, 130, nil,
|
362
|
+
136, nil, nil, 85, 38, 49, 27, 49, 89, nil,
|
363
|
+
nil, 38, nil, 27, 143, nil, nil, 33, nil, nil,
|
364
|
+
nil, 148, 33, nil, 49, nil, nil, nil, nil, nil,
|
365
|
+
74, nil, nil, nil, 153, nil, nil, nil, 33, nil,
|
366
|
+
nil, nil, nil, nil, nil, 33 ]
|
369
367
|
|
370
368
|
racc_goto_check = [
|
371
|
-
2, 3,
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
nil,
|
379
|
-
|
380
|
-
nil, nil, 14, nil,
|
381
|
-
4,
|
382
|
-
2, 14, 14, 3,
|
383
|
-
|
384
|
-
|
385
|
-
20,
|
369
|
+
2, 3, 29, 14, 15, 4, 18, 44, 37, 14,
|
370
|
+
21, 23, 14, 26, 35, 24, 18, 25, 13, 27,
|
371
|
+
33, 38, 14, 19, 4, 42, 30, 30, 17, 36,
|
372
|
+
12, 40, 26, 14, 19, 4, 40, 20, 28, 15,
|
373
|
+
14, 39, 32, 26, 14, 41, 14, 16, 43, 37,
|
374
|
+
1, 35, 14, 42, 4, 15, 20, 33, nil, nil,
|
375
|
+
14, nil, 26, 30, 27, nil, nil, 20, 30, 13,
|
376
|
+
nil, 29, 21, 23, 44, nil, nil, 24, 20, 25,
|
377
|
+
18, 2, nil, nil, 35, nil, 20, nil, nil, nil,
|
378
|
+
nil, nil, nil, 14, nil, 4, 30, 3, 14, 37,
|
379
|
+
4, 15, nil, 26, nil, nil, 14, 2, 26, nil,
|
380
|
+
2, nil, nil, 14, 14, 3, 4, 3, 30, nil,
|
381
|
+
nil, 14, nil, 4, 26, nil, nil, 20, nil, nil,
|
382
|
+
nil, 26, 20, nil, 3, nil, nil, nil, nil, nil,
|
383
|
+
20, nil, nil, nil, 2, nil, nil, nil, 20, nil,
|
384
|
+
nil, nil, nil, nil, nil, 20 ]
|
386
385
|
|
387
386
|
racc_goto_pointer = [
|
388
|
-
nil,
|
389
|
-
nil, nil,
|
390
|
-
|
391
|
-
-
|
392
|
-
-
|
387
|
+
nil, 50, 0, -19, -4, nil, nil, nil, nil, nil,
|
388
|
+
nil, nil, 15, 3, -6, -11, -3, -43, -34, -39,
|
389
|
+
28, -40, nil, -39, -35, -33, 4, -87, 10, -55,
|
390
|
+
-28, nil, -12, -34, nil, -40, -26, -47, -75, 17,
|
391
|
+
-10, 27, 1, -4, -45 ]
|
393
392
|
|
394
393
|
racc_goto_default = [
|
395
394
|
nil, nil, nil, 22, 1, 3, 6, 8, 10, 13,
|
@@ -586,7 +585,7 @@ module_eval <<'.,.,', 'grammar.ra', 37
|
|
586
585
|
|
587
586
|
module_eval <<'.,.,', 'grammar.ra', 51
|
588
587
|
def _reduce_3( val, _values, result )
|
589
|
-
if val[0].
|
588
|
+
if val[0].instance_of?(AST::ASTArray)
|
590
589
|
val[0].push(val[1])
|
591
590
|
result = val[0]
|
592
591
|
else
|
@@ -661,11 +660,11 @@ module_eval <<'.,.,', 'grammar.ra', 95
|
|
661
660
|
|
662
661
|
module_eval <<'.,.,', 'grammar.ra', 129
|
663
662
|
def _reduce_17( val, _values, result )
|
664
|
-
if val[0].
|
663
|
+
if val[0].instance_of?(AST::ASTArray)
|
665
664
|
raise Puppet::ParseError, "Invalid name"
|
666
665
|
end
|
667
666
|
array = val[2]
|
668
|
-
if array.
|
667
|
+
if array.instance_of?(AST::ObjectInst)
|
669
668
|
array = [array]
|
670
669
|
end
|
671
670
|
result = AST::ASTArray.new(
|
@@ -674,7 +673,7 @@ module_eval <<'.,.,', 'grammar.ra', 129
|
|
674
673
|
)
|
675
674
|
# this iterates across each specified objectinstance
|
676
675
|
array.each { |instance|
|
677
|
-
unless instance.
|
676
|
+
unless instance.instance_of?(AST::ObjectInst)
|
678
677
|
raise Puppet::Dev, "Got something that isn't an instance"
|
679
678
|
end
|
680
679
|
# now, i need to somehow differentiate between those things with
|
@@ -694,7 +693,7 @@ module_eval <<'.,.,', 'grammar.ra', 129
|
|
694
693
|
|
695
694
|
module_eval <<'.,.,', 'grammar.ra', 145
|
696
695
|
def _reduce_18( val, _values, result )
|
697
|
-
if val[0].
|
696
|
+
if val[0].instance_of?(AST::ASTArray)
|
698
697
|
Puppet.notice "invalid name"
|
699
698
|
raise Puppet::ParseError, "Invalid name"
|
700
699
|
end
|
@@ -716,7 +715,7 @@ module_eval <<'.,.,', 'grammar.ra', 145
|
|
716
715
|
module_eval <<'.,.,', 'grammar.ra', 157
|
717
716
|
def _reduce_19( val, _values, result )
|
718
717
|
# a template setting for a type
|
719
|
-
if val[0].
|
718
|
+
if val[0].instance_of?(AST::ASTArray)
|
720
719
|
raise Puppet::ParseError, "Invalid type"
|
721
720
|
end
|
722
721
|
result = AST::TypeDefaults.new(
|
@@ -745,7 +744,7 @@ module_eval <<'.,.,', 'grammar.ra', 165
|
|
745
744
|
|
746
745
|
module_eval <<'.,.,', 'grammar.ra', 179
|
747
746
|
def _reduce_22( val, _values, result )
|
748
|
-
if val[0].
|
747
|
+
if val[0].instance_of?(AST::ObjectInst)
|
749
748
|
result = AST::ASTArray.new(
|
750
749
|
:line => @lexer.line,
|
751
750
|
:file => @lexer.file,
|
@@ -836,7 +835,7 @@ module_eval <<'.,.,', 'grammar.ra', 230
|
|
836
835
|
|
837
836
|
module_eval <<'.,.,', 'grammar.ra', 243
|
838
837
|
def _reduce_36( val, _values, result )
|
839
|
-
if val[0].
|
838
|
+
if val[0].instance_of?(AST::ASTArray)
|
840
839
|
val[0].push(val[2])
|
841
840
|
result = val[0]
|
842
841
|
else
|
@@ -872,7 +871,7 @@ module_eval <<'.,.,', 'grammar.ra', 258
|
|
872
871
|
|
873
872
|
module_eval <<'.,.,', 'grammar.ra', 271
|
874
873
|
def _reduce_39( val, _values, result )
|
875
|
-
if val[0].
|
874
|
+
if val[0].instance_of?(AST::ASTArray)
|
876
875
|
result = val[0].push(val[2])
|
877
876
|
else
|
878
877
|
result = AST::ASTArray.new(
|
@@ -941,7 +940,7 @@ module_eval <<'.,.,', 'grammar.ra', 307
|
|
941
940
|
module_eval <<'.,.,', 'grammar.ra', 324
|
942
941
|
def _reduce_52( val, _values, result )
|
943
942
|
options = val[3]
|
944
|
-
unless options.
|
943
|
+
unless options.instance_of?(AST::ASTArray)
|
945
944
|
options = AST::ASTArray.new(
|
946
945
|
:line => @lexer.line,
|
947
946
|
:file => @lexer.file,
|
@@ -950,7 +949,7 @@ module_eval <<'.,.,', 'grammar.ra', 324
|
|
950
949
|
end
|
951
950
|
result = AST::CaseStatement.new(
|
952
951
|
:test => val[1],
|
953
|
-
:options =>
|
952
|
+
:options => options,
|
954
953
|
:file => @lexer.file,
|
955
954
|
:line => @lexer.line
|
956
955
|
)
|
@@ -962,7 +961,7 @@ module_eval <<'.,.,', 'grammar.ra', 324
|
|
962
961
|
|
963
962
|
module_eval <<'.,.,', 'grammar.ra', 338
|
964
963
|
def _reduce_54( val, _values, result )
|
965
|
-
if val[0].
|
964
|
+
if val[0].instance_of?(AST::ASTArray)
|
966
965
|
val[0].push val[1]
|
967
966
|
result = val[0]
|
968
967
|
else
|
@@ -989,11 +988,28 @@ module_eval <<'.,.,', 'grammar.ra', 348
|
|
989
988
|
end
|
990
989
|
.,.,
|
991
990
|
|
992
|
-
|
991
|
+
module_eval <<'.,.,', 'grammar.ra', 360
|
992
|
+
def _reduce_56( val, _values, result )
|
993
|
+
result = AST::CaseOpt.new(
|
994
|
+
:pin => ":",
|
995
|
+
:value => val[0],
|
996
|
+
:file => @lexer.file,
|
997
|
+
:line => @lexer.line,
|
998
|
+
:statements => AST::ASTArray.new(
|
999
|
+
:line => @lexer.line,
|
1000
|
+
:file => @lexer.file,
|
1001
|
+
:children => []
|
1002
|
+
)
|
1003
|
+
)
|
1004
|
+
result
|
1005
|
+
end
|
1006
|
+
.,.,
|
1007
|
+
|
1008
|
+
# reduce 57 omitted
|
993
1009
|
|
994
|
-
module_eval <<'.,.,', 'grammar.ra',
|
995
|
-
def
|
996
|
-
if val[0].
|
1010
|
+
module_eval <<'.,.,', 'grammar.ra', 374
|
1011
|
+
def _reduce_58( val, _values, result )
|
1012
|
+
if val[0].instance_of?(AST::ASTArray)
|
997
1013
|
val[0].push(val[2])
|
998
1014
|
result = val[0]
|
999
1015
|
else
|
@@ -1007,8 +1023,8 @@ module_eval <<'.,.,', 'grammar.ra', 362
|
|
1007
1023
|
end
|
1008
1024
|
.,.,
|
1009
1025
|
|
1010
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1011
|
-
def
|
1026
|
+
module_eval <<'.,.,', 'grammar.ra', 384
|
1027
|
+
def _reduce_59( val, _values, result )
|
1012
1028
|
result = AST::Selector.new(
|
1013
1029
|
:pin => "?",
|
1014
1030
|
:line => @lexer.line,
|
@@ -1020,20 +1036,20 @@ module_eval <<'.,.,', 'grammar.ra', 372
|
|
1020
1036
|
end
|
1021
1037
|
.,.,
|
1022
1038
|
|
1023
|
-
# reduce
|
1039
|
+
# reduce 60 omitted
|
1024
1040
|
|
1025
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1026
|
-
def
|
1041
|
+
module_eval <<'.,.,', 'grammar.ra', 386
|
1042
|
+
def _reduce_61( val, _values, result )
|
1027
1043
|
result = val[1]
|
1028
1044
|
result
|
1029
1045
|
end
|
1030
1046
|
.,.,
|
1031
1047
|
|
1032
|
-
# reduce
|
1048
|
+
# reduce 62 omitted
|
1033
1049
|
|
1034
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1035
|
-
def
|
1036
|
-
if val[0].
|
1050
|
+
module_eval <<'.,.,', 'grammar.ra', 401
|
1051
|
+
def _reduce_63( val, _values, result )
|
1052
|
+
if val[0].instance_of?(AST::ASTArray)
|
1037
1053
|
val[0].push(val[2])
|
1038
1054
|
result = val[0]
|
1039
1055
|
else
|
@@ -1047,8 +1063,8 @@ module_eval <<'.,.,', 'grammar.ra', 389
|
|
1047
1063
|
end
|
1048
1064
|
.,.,
|
1049
1065
|
|
1050
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1051
|
-
def
|
1066
|
+
module_eval <<'.,.,', 'grammar.ra', 411
|
1067
|
+
def _reduce_64( val, _values, result )
|
1052
1068
|
result = AST::ObjectParam.new(
|
1053
1069
|
:pin => "=>",
|
1054
1070
|
:line => @lexer.line,
|
@@ -1060,8 +1076,8 @@ module_eval <<'.,.,', 'grammar.ra', 399
|
|
1060
1076
|
end
|
1061
1077
|
.,.,
|
1062
1078
|
|
1063
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1064
|
-
def
|
1079
|
+
module_eval <<'.,.,', 'grammar.ra', 419
|
1080
|
+
def _reduce_65( val, _values, result )
|
1065
1081
|
result = AST::String.new(
|
1066
1082
|
:line => @lexer.line,
|
1067
1083
|
:file => @lexer.file,
|
@@ -1071,8 +1087,8 @@ module_eval <<'.,.,', 'grammar.ra', 407
|
|
1071
1087
|
end
|
1072
1088
|
.,.,
|
1073
1089
|
|
1074
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1075
|
-
def
|
1090
|
+
module_eval <<'.,.,', 'grammar.ra', 426
|
1091
|
+
def _reduce_66( val, _values, result )
|
1076
1092
|
result = AST::String.new(
|
1077
1093
|
:line => @lexer.line,
|
1078
1094
|
:file => @lexer.file,
|
@@ -1082,8 +1098,8 @@ module_eval <<'.,.,', 'grammar.ra', 414
|
|
1082
1098
|
end
|
1083
1099
|
.,.,
|
1084
1100
|
|
1085
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1086
|
-
def
|
1101
|
+
module_eval <<'.,.,', 'grammar.ra', 433
|
1102
|
+
def _reduce_67( val, _values, result )
|
1087
1103
|
result = AST::String.new(
|
1088
1104
|
:line => @lexer.line,
|
1089
1105
|
:file => @lexer.file,
|
@@ -1093,8 +1109,8 @@ module_eval <<'.,.,', 'grammar.ra', 421
|
|
1093
1109
|
end
|
1094
1110
|
.,.,
|
1095
1111
|
|
1096
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1097
|
-
def
|
1112
|
+
module_eval <<'.,.,', 'grammar.ra', 440
|
1113
|
+
def _reduce_68( val, _values, result )
|
1098
1114
|
result = AST::Default.new(
|
1099
1115
|
:line => @lexer.line,
|
1100
1116
|
:file => @lexer.file,
|
@@ -1104,10 +1120,10 @@ module_eval <<'.,.,', 'grammar.ra', 428
|
|
1104
1120
|
end
|
1105
1121
|
.,.,
|
1106
1122
|
|
1107
|
-
# reduce
|
1123
|
+
# reduce 69 omitted
|
1108
1124
|
|
1109
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1110
|
-
def
|
1125
|
+
module_eval <<'.,.,', 'grammar.ra', 478
|
1126
|
+
def _reduce_70( val, _values, result )
|
1111
1127
|
# importing files
|
1112
1128
|
# yuk, i hate keywords
|
1113
1129
|
# we'll probably have to have some kind of search path eventually
|
@@ -1146,30 +1162,50 @@ module_eval <<'.,.,', 'grammar.ra', 466
|
|
1146
1162
|
end
|
1147
1163
|
.,.,
|
1148
1164
|
|
1149
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1150
|
-
def
|
1165
|
+
module_eval <<'.,.,', 'grammar.ra', 489
|
1166
|
+
def _reduce_71( val, _values, result )
|
1151
1167
|
result = AST::CompDef.new(
|
1152
1168
|
:name => AST::Name.new(:value => val[1], :line => @lexer.line),
|
1153
1169
|
:args => val[2],
|
1154
1170
|
:file => @lexer.file,
|
1155
1171
|
:line => @lexer.line,
|
1172
|
+
:keyword => val[0],
|
1156
1173
|
:code => val[4]
|
1157
1174
|
)
|
1158
1175
|
result
|
1159
1176
|
end
|
1160
1177
|
.,.,
|
1161
1178
|
|
1162
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1163
|
-
def
|
1179
|
+
module_eval <<'.,.,', 'grammar.ra', 502
|
1180
|
+
def _reduce_72( val, _values, result )
|
1181
|
+
result = AST::CompDef.new(
|
1182
|
+
:name => AST::Name.new(:value => val[1], :line => @lexer.line),
|
1183
|
+
:args => val[2],
|
1184
|
+
:file => @lexer.file,
|
1185
|
+
:line => @lexer.line,
|
1186
|
+
:keyword => val[0],
|
1187
|
+
:code => AST::ASTArray.new(
|
1188
|
+
:line => @lexer.line,
|
1189
|
+
:file => @lexer.file,
|
1190
|
+
:children => []
|
1191
|
+
)
|
1192
|
+
)
|
1193
|
+
result
|
1194
|
+
end
|
1195
|
+
.,.,
|
1196
|
+
|
1197
|
+
module_eval <<'.,.,', 'grammar.ra', 519
|
1198
|
+
def _reduce_73( val, _values, result )
|
1164
1199
|
#:args => val[2],
|
1165
1200
|
args = {
|
1166
1201
|
:name => AST::Name.new(:value => val[1], :line => @lexer.line),
|
1167
1202
|
:file => @lexer.file,
|
1168
1203
|
:line => @lexer.line,
|
1204
|
+
:keyword => val[0],
|
1169
1205
|
:code => val[4]
|
1170
1206
|
}
|
1171
1207
|
# It'll be an ASTArray if we didn't get a parent
|
1172
|
-
if val[2].
|
1208
|
+
if val[2].instance_of?(AST::Name)
|
1173
1209
|
args[:parentclass] = val[2]
|
1174
1210
|
end
|
1175
1211
|
result = AST::ClassDef.new(args)
|
@@ -1177,9 +1213,31 @@ module_eval <<'.,.,', 'grammar.ra', 492
|
|
1177
1213
|
end
|
1178
1214
|
.,.,
|
1179
1215
|
|
1180
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1181
|
-
def
|
1182
|
-
|
1216
|
+
module_eval <<'.,.,', 'grammar.ra', 536
|
1217
|
+
def _reduce_74( val, _values, result )
|
1218
|
+
args = {
|
1219
|
+
:name => AST::Name.new(:value => val[1], :line => @lexer.line),
|
1220
|
+
:file => @lexer.file,
|
1221
|
+
:line => @lexer.line,
|
1222
|
+
:keyword => val[0],
|
1223
|
+
:code => AST::ASTArray.new(
|
1224
|
+
:line => @lexer.line,
|
1225
|
+
:file => @lexer.file,
|
1226
|
+
:children => []
|
1227
|
+
)
|
1228
|
+
}
|
1229
|
+
# It'll be an ASTArray if we didn't get a parent
|
1230
|
+
if val[2].instance_of?(AST::Name)
|
1231
|
+
args[:parentclass] = val[2]
|
1232
|
+
end
|
1233
|
+
result = AST::ClassDef.new(args)
|
1234
|
+
result
|
1235
|
+
end
|
1236
|
+
.,.,
|
1237
|
+
|
1238
|
+
module_eval <<'.,.,', 'grammar.ra', 557
|
1239
|
+
def _reduce_75( val, _values, result )
|
1240
|
+
unless val[1].instance_of?(AST::ASTArray)
|
1183
1241
|
val[1] = AST::ASTArray.new(
|
1184
1242
|
:line => val[1].line,
|
1185
1243
|
:file => val[1].file,
|
@@ -1190,9 +1248,10 @@ module_eval <<'.,.,', 'grammar.ra', 512
|
|
1190
1248
|
:file => @lexer.file,
|
1191
1249
|
:line => @lexer.line,
|
1192
1250
|
:names => val[1],
|
1251
|
+
:keyword => val[0],
|
1193
1252
|
:code => val[4]
|
1194
1253
|
}
|
1195
|
-
if val[2].
|
1254
|
+
if val[2].instance_of?(AST::Name)
|
1196
1255
|
args[:parentclass] = val[2]
|
1197
1256
|
end
|
1198
1257
|
result = AST::NodeDef.new(args)
|
@@ -1200,11 +1259,39 @@ module_eval <<'.,.,', 'grammar.ra', 512
|
|
1200
1259
|
end
|
1201
1260
|
.,.,
|
1202
1261
|
|
1203
|
-
|
1262
|
+
module_eval <<'.,.,', 'grammar.ra', 580
|
1263
|
+
def _reduce_76( val, _values, result )
|
1264
|
+
unless val[1].instance_of?(AST::ASTArray)
|
1265
|
+
val[1] = AST::ASTArray.new(
|
1266
|
+
:line => val[1].line,
|
1267
|
+
:file => val[1].file,
|
1268
|
+
:children => [val[1]]
|
1269
|
+
)
|
1270
|
+
end
|
1271
|
+
args = {
|
1272
|
+
:file => @lexer.file,
|
1273
|
+
:line => @lexer.line,
|
1274
|
+
:keyword => val[0],
|
1275
|
+
:names => val[1],
|
1276
|
+
:code => AST::ASTArray.new(
|
1277
|
+
:line => @lexer.line,
|
1278
|
+
:file => @lexer.file,
|
1279
|
+
:children => []
|
1280
|
+
)
|
1281
|
+
}
|
1282
|
+
if val[2].instance_of?(AST::Name)
|
1283
|
+
args[:parentclass] = val[2]
|
1284
|
+
end
|
1285
|
+
result = AST::NodeDef.new(args)
|
1286
|
+
result
|
1287
|
+
end
|
1288
|
+
.,.,
|
1204
1289
|
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1290
|
+
# reduce 77 omitted
|
1291
|
+
|
1292
|
+
module_eval <<'.,.,', 'grammar.ra', 594
|
1293
|
+
def _reduce_78( val, _values, result )
|
1294
|
+
if val[0].instance_of?(AST::ASTArray)
|
1208
1295
|
result = val[0]
|
1209
1296
|
result.push val[1]
|
1210
1297
|
else
|
@@ -1218,8 +1305,8 @@ module_eval <<'.,.,', 'grammar.ra', 526
|
|
1218
1305
|
end
|
1219
1306
|
.,.,
|
1220
1307
|
|
1221
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1222
|
-
def
|
1308
|
+
module_eval <<'.,.,', 'grammar.ra', 602
|
1309
|
+
def _reduce_79( val, _values, result )
|
1223
1310
|
result = AST::ASTArray.new(
|
1224
1311
|
:line => @lexer.line,
|
1225
1312
|
:file => @lexer.file,
|
@@ -1229,34 +1316,34 @@ module_eval <<'.,.,', 'grammar.ra', 534
|
|
1229
1316
|
end
|
1230
1317
|
.,.,
|
1231
1318
|
|
1232
|
-
# reduce
|
1319
|
+
# reduce 80 omitted
|
1233
1320
|
|
1234
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1235
|
-
def
|
1321
|
+
module_eval <<'.,.,', 'grammar.ra', 607
|
1322
|
+
def _reduce_81( val, _values, result )
|
1236
1323
|
result = val[1]
|
1237
1324
|
result
|
1238
1325
|
end
|
1239
1326
|
.,.,
|
1240
1327
|
|
1241
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1242
|
-
def
|
1243
|
-
if val[1].
|
1328
|
+
module_eval <<'.,.,', 'grammar.ra', 618
|
1329
|
+
def _reduce_82( val, _values, result )
|
1330
|
+
if val[1].instance_of?(AST::ASTArray)
|
1244
1331
|
result = val[1]
|
1245
1332
|
else
|
1246
1333
|
result = AST::ASTArray.new(
|
1247
1334
|
:line => @lexer.line,
|
1248
1335
|
:file => @lexer.file,
|
1249
|
-
:children => [val[
|
1336
|
+
:children => [val[1]]
|
1250
1337
|
)
|
1251
1338
|
end
|
1252
1339
|
result
|
1253
1340
|
end
|
1254
1341
|
.,.,
|
1255
1342
|
|
1256
|
-
# reduce
|
1343
|
+
# reduce 83 omitted
|
1257
1344
|
|
1258
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1259
|
-
def
|
1345
|
+
module_eval <<'.,.,', 'grammar.ra', 632
|
1346
|
+
def _reduce_84( val, _values, result )
|
1260
1347
|
if val[0].instance_of?(AST::ASTArray)
|
1261
1348
|
val[0].push(val[2])
|
1262
1349
|
result = val[0]
|
@@ -1271,8 +1358,8 @@ module_eval <<'.,.,', 'grammar.ra', 564
|
|
1271
1358
|
end
|
1272
1359
|
.,.,
|
1273
1360
|
|
1274
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1275
|
-
def
|
1361
|
+
module_eval <<'.,.,', 'grammar.ra', 640
|
1362
|
+
def _reduce_85( val, _values, result )
|
1276
1363
|
result = AST::CompArgument.new(
|
1277
1364
|
:line => @lexer.line,
|
1278
1365
|
:file => @lexer.file,
|
@@ -1282,8 +1369,8 @@ module_eval <<'.,.,', 'grammar.ra', 572
|
|
1282
1369
|
end
|
1283
1370
|
.,.,
|
1284
1371
|
|
1285
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1286
|
-
def
|
1372
|
+
module_eval <<'.,.,', 'grammar.ra', 647
|
1373
|
+
def _reduce_86( val, _values, result )
|
1287
1374
|
result = AST::CompArgument.new(
|
1288
1375
|
:line => @lexer.line,
|
1289
1376
|
:file => @lexer.file,
|
@@ -1293,10 +1380,10 @@ module_eval <<'.,.,', 'grammar.ra', 579
|
|
1293
1380
|
end
|
1294
1381
|
.,.,
|
1295
1382
|
|
1296
|
-
# reduce
|
1383
|
+
# reduce 87 omitted
|
1297
1384
|
|
1298
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1299
|
-
def
|
1385
|
+
module_eval <<'.,.,', 'grammar.ra', 656
|
1386
|
+
def _reduce_88( val, _values, result )
|
1300
1387
|
result = AST::Name.new(
|
1301
1388
|
:value => val[1],
|
1302
1389
|
:file => @lexer.file,
|
@@ -1306,8 +1393,8 @@ module_eval <<'.,.,', 'grammar.ra', 588
|
|
1306
1393
|
end
|
1307
1394
|
.,.,
|
1308
1395
|
|
1309
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1310
|
-
def
|
1396
|
+
module_eval <<'.,.,', 'grammar.ra', 665
|
1397
|
+
def _reduce_89( val, _values, result )
|
1311
1398
|
name = val[0].sub(/^\$/,'')
|
1312
1399
|
result = AST::Variable.new(
|
1313
1400
|
:line => @lexer.line,
|
@@ -1318,26 +1405,29 @@ module_eval <<'.,.,', 'grammar.ra', 597
|
|
1318
1405
|
end
|
1319
1406
|
.,.,
|
1320
1407
|
|
1321
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1322
|
-
def
|
1323
|
-
if val[1].
|
1408
|
+
module_eval <<'.,.,', 'grammar.ra', 677
|
1409
|
+
def _reduce_90( val, _values, result )
|
1410
|
+
if val[1].instance_of?(AST::ASTArray)
|
1324
1411
|
result = val[1]
|
1325
1412
|
else
|
1326
|
-
result = AST::ASTArray.new
|
1327
|
-
|
1413
|
+
result = AST::ASTArray.new(
|
1414
|
+
:line => @lexer.line,
|
1415
|
+
:file => @lexer.file,
|
1416
|
+
:children => [val[1]]
|
1417
|
+
)
|
1328
1418
|
end
|
1329
1419
|
result
|
1330
1420
|
end
|
1331
1421
|
.,.,
|
1332
1422
|
|
1333
|
-
# reduce
|
1423
|
+
# reduce 91 omitted
|
1334
1424
|
|
1335
|
-
# reduce
|
1425
|
+
# reduce 92 omitted
|
1336
1426
|
|
1337
|
-
# reduce
|
1427
|
+
# reduce 93 omitted
|
1338
1428
|
|
1339
|
-
module_eval <<'.,.,', 'grammar.ra',
|
1340
|
-
def
|
1429
|
+
module_eval <<'.,.,', 'grammar.ra', 682
|
1430
|
+
def _reduce_94( val, _values, result )
|
1341
1431
|
result = nil
|
1342
1432
|
result
|
1343
1433
|
end
|