summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/parser/parser.rb')
-rw-r--r--lib/puppet/parser/parser.rb1264
1 files changed, 1264 insertions, 0 deletions
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
new file mode 100644
index 000000000..3b42bd8d7
--- /dev/null
+++ b/lib/puppet/parser/parser.rb
@@ -0,0 +1,1264 @@
+#
+# DO NOT MODIFY!!!!
+# This file is automatically generated by racc 1.4.4
+# from racc grammer file "grammar.ra".
+#
+
+require 'racc/parser'
+
+
+require 'puppet'
+require 'puppet/parser/lexer'
+require 'puppet/parser/ast'
+#require 'puppet/parser/interpreter'
+
+module Puppet
+ # this exception class already has a :stack accessor
+ class ParseError < Puppet::Error
+ attr_accessor :line, :file
+ end
+
+ class ImportError < Racc::ParseError; end
+end
+
+Puppet[:typecheck] = true
+Puppet[:paramcheck] = true
+
+
+module Puppet
+
+ module Parser
+
+ class Parser < Racc::Parser
+
+module_eval <<'..end grammar.ra modeval..ida89b5273aa', 'grammar.ra', 573
+attr_writer :stack
+attr_reader :file
+
+def file=(file)
+ if self.stack.include?(file)
+ raise Puppet::ImportError.new("Import loop detected")
+ else
+ @lexer.file = file
+ end
+end
+
+def initialize
+ @lexer = Puppet::Parser::Lexer.new()
+ if Puppet[:debug]
+ @yydebut = true
+ end
+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 = "an error was found"
+
+ if Puppet[:debug]
+ puts stack.inspect
+ puts stack
+ end
+ if @lexer.file
+ error += (" in '%s'" % @lexer.file)
+ end
+
+ except = Puppet::ParseError.new(error)
+ except.line = @lexer.line
+ if @lexer.file
+ except.file = @lexer.file
+ end
+
+ raise except
+end
+
+# how should I do error handling here?
+def parse
+ begin
+ yyparse(@lexer,:scan)
+ rescue Racc::ParseError => except
+ error = Puppet::ParseError.new(except)
+ error.line = @lexer.line
+ error.file = @lexer.file
+ error.stack = caller
+ raise error
+ rescue Puppet::ParseError => except
+ except.line ||= @lexer.line
+ except.file ||= @lexer.file
+ raise except
+ rescue Puppet::Error => except
+ # and this is a framework error
+ except.line ||= @lexer.line
+ except.file ||= @lexer.file
+ except.stack ||= except.stack
+ raise except
+ rescue Puppet::DevError => except
+ except.line ||= @lexer.line
+ except.file ||= @lexer.file
+ except.stack ||= caller
+ if Puppet[:debug]
+ puts except.stack
+ end
+ raise except
+ rescue => except
+ error = Puppet::DevError.new(except.message)
+ error.line = @lexer.line
+ error.file = @lexer.file
+ error.stack = caller
+ if Puppet[:debug]
+ puts caller
+ end
+ raise error
+ end
+end
+
+def stack
+ if defined? @stack and ! @stack.nil?
+ if @lexer.file
+ return [@stack,@lexer.file].flatten
+ else
+ return @stack
+ end
+ else
+ if @lexer.file
+ return [@lexer.file]
+ else
+ return []
+ end
+ end
+end
+
+def string=(string)
+ @lexer.string = string
+end
+..end grammar.ra modeval..ida89b5273aa
+
+##### racc 1.4.4 generates ###
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 1, 38, :_reduce_1,
+ 1, 39, :_reduce_none,
+ 2, 39, :_reduce_3,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 1, 40, :_reduce_none,
+ 5, 41, :_reduce_11,
+ 5, 41, :_reduce_12,
+ 5, 41, :_reduce_13,
+ 3, 54, :_reduce_14,
+ 1, 49, :_reduce_none,
+ 3, 49, :_reduce_16,
+ 0, 50, :_reduce_none,
+ 1, 50, :_reduce_none,
+ 1, 48, :_reduce_19,
+ 1, 53, :_reduce_20,
+ 1, 55, :_reduce_none,
+ 1, 55, :_reduce_none,
+ 1, 55, :_reduce_none,
+ 1, 55, :_reduce_none,
+ 1, 55, :_reduce_none,
+ 3, 42, :_reduce_26,
+ 0, 51, :_reduce_27,
+ 1, 51, :_reduce_28,
+ 3, 51, :_reduce_29,
+ 3, 60, :_reduce_30,
+ 1, 61, :_reduce_none,
+ 3, 61, :_reduce_32,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 59, :_reduce_none,
+ 1, 56, :_reduce_42,
+ 1, 63, :_reduce_43,
+ 4, 64, :_reduce_44,
+ 5, 44, :_reduce_45,
+ 10, 44, :_reduce_46,
+ 9, 44, :_reduce_47,
+ 5, 66, :_reduce_48,
+ 6, 66, :_reduce_49,
+ 1, 65, :_reduce_none,
+ 3, 65, :_reduce_51,
+ 1, 67, :_reduce_none,
+ 1, 67, :_reduce_none,
+ 1, 67, :_reduce_none,
+ 1, 67, :_reduce_none,
+ 1, 67, :_reduce_none,
+ 1, 67, :_reduce_none,
+ 3, 43, :_reduce_58,
+ 1, 68, :_reduce_none,
+ 3, 68, :_reduce_60,
+ 1, 70, :_reduce_none,
+ 3, 70, :_reduce_62,
+ 3, 69, :_reduce_63,
+ 1, 71, :_reduce_none,
+ 1, 71, :_reduce_none,
+ 1, 71, :_reduce_none,
+ 2, 45, :_reduce_67,
+ 6, 46, :_reduce_68,
+ 7, 47, :_reduce_69,
+ 0, 74, :_reduce_70,
+ 1, 72, :_reduce_none,
+ 3, 72, :_reduce_72,
+ 3, 72, :_reduce_73,
+ 1, 75, :_reduce_none,
+ 3, 75, :_reduce_75,
+ 3, 76, :_reduce_76,
+ 1, 76, :_reduce_77,
+ 1, 73, :_reduce_none,
+ 2, 73, :_reduce_79,
+ 1, 57, :_reduce_80,
+ 3, 58, :_reduce_81,
+ 1, 62, :_reduce_none,
+ 1, 62, :_reduce_none,
+ 0, 52, :_reduce_none,
+ 1, 52, :_reduce_85 ]
+
+racc_reduce_n = 86
+
+racc_shift_n = 153
+
+racc_action_table = [
+ 22, 24, 22, 24, 1, 54, 5, 9, 39, 12,
+ 14, 22, 24, 22, 24, 82, 3, 7, 116, 84,
+ 85, 59, 22, 24, 115, 28, 126, 28, 96, 31,
+ 108, 31, 3, 7, 3, 7, 28, 59, 28, 62,
+ 31, 7, 31, 3, 7, 3, 7, 28, 22, 24,
+ 89, 31, 56, 57, 3, 7, 97, 22, 24, 22,
+ 24, 22, 24, 128, 22, 24, 129, 113, 56, 57,
+ 22, 24, 114, 28, 98, 22, 24, 31, 59, 103,
+ 3, 7, 28, 80, 28, 80, 28, 63, 31, 28,
+ 7, 3, 7, 31, 69, 28, 3, 7, 133, 31,
+ 28, 121, 3, 7, 31, 22, 24, 3, 7, 56,
+ 57, 122, 136, 80, 1, 137, 5, 9, 124, 12,
+ 14, 125, 111, 109, 84, 85, 3, 7, 102, 102,
+ 28, 78, 63, 55, 31, 44, 134, 3, 7, 1,
+ 140, 5, 9, 99, 12, 14, 98, 138, 37, 80,
+ 37, 3, 7, 141, 152, 44, 1, 42, 5, 9,
+ 144, 12, 14, 41, 146, 40, 39, 38, 3, 7,
+ 1, 151, 5, 9, 37, 12, 14, 36, 7, nil,
+ nil, nil, 3, 7, nil, 149, nil, 1, nil, 5,
+ 9, nil, 12, 14, nil, nil, nil, nil, nil, 3,
+ 7, 1, 147, 5, 9, nil, 12, 14, nil, nil,
+ nil, nil, nil, 3, 7, nil, nil, nil, 1, nil,
+ 5, 9, nil, 12, 14, nil, nil, nil, nil, nil,
+ 3, 7, 1, nil, 5, 9, nil, 12, 14, nil,
+ nil, nil, nil, nil, 3, 7, 1, nil, 5, 9,
+ nil, 12, 14, nil, nil, nil, nil, nil, 3, 7,
+ 1, nil, 5, 9, nil, 12, 14, nil, nil, nil,
+ nil, nil, 3, 7, 1, nil, 5, 9, nil, 12,
+ 14, nil, nil, nil, nil, nil, 3, 7, 1, nil,
+ 5, 9, nil, 12, 14, nil, nil, nil, nil, nil,
+ 3, 7, 1, nil, 5, 9, nil, 12, 14, nil,
+ nil, nil, nil, nil, 3, 7, 1, nil, 5, 9,
+ nil, 12, 14, nil, nil, nil, nil, nil, 3, 7,
+ 1, nil, 5, 9, nil, 12, 14, nil, nil, nil,
+ nil, nil, 3, 7, 48, 49, 50, 51, 52, 53 ]
+
+racc_action_check = [
+ 1, 1, 83, 83, 96, 27, 96, 96, 27, 96,
+ 96, 89, 89, 54, 54, 46, 96, 96, 94, 46,
+ 46, 112, 47, 47, 94, 1, 106, 83, 64, 1,
+ 87, 83, 1, 1, 83, 83, 89, 37, 54, 37,
+ 89, 63, 54, 89, 89, 54, 54, 47, 98, 98,
+ 61, 47, 112, 112, 47, 47, 66, 99, 99, 129,
+ 129, 39, 39, 109, 113, 113, 109, 92, 37, 37,
+ 137, 137, 93, 98, 80, 22, 22, 98, 62, 79,
+ 98, 98, 99, 97, 129, 44, 39, 42, 129, 113,
+ 99, 129, 129, 113, 39, 137, 113, 113, 117, 137,
+ 22, 100, 137, 137, 22, 40, 40, 22, 22, 62,
+ 62, 101, 127, 102, 117, 127, 117, 117, 103, 117,
+ 117, 104, 91, 88, 91, 91, 117, 117, 81, 74,
+ 40, 41, 38, 34, 40, 33, 118, 40, 40, 88,
+ 135, 88, 88, 73, 88, 88, 69, 128, 68, 134,
+ 23, 88, 88, 136, 150, 18, 135, 14, 135, 135,
+ 139, 135, 135, 13, 142, 12, 11, 9, 135, 135,
+ 150, 148, 150, 150, 6, 150, 150, 5, 116, nil,
+ nil, nil, 150, 150, nil, 145, nil, 148, nil, 148,
+ 148, nil, 148, 148, nil, nil, nil, nil, nil, 148,
+ 148, 145, 143, 145, 145, nil, 145, 145, nil, nil,
+ nil, nil, nil, 145, 145, nil, nil, nil, 143, nil,
+ 143, 143, nil, 143, 143, nil, nil, nil, nil, nil,
+ 143, 143, 144, nil, 144, 144, nil, 144, 144, nil,
+ nil, nil, nil, nil, 144, 144, 141, nil, 141, 141,
+ nil, 141, 141, nil, nil, nil, nil, nil, 141, 141,
+ 146, nil, 146, 146, nil, 146, 146, nil, nil, nil,
+ nil, nil, 146, 146, 55, nil, 55, 55, nil, 55,
+ 55, nil, nil, nil, nil, nil, 55, 55, 138, nil,
+ 138, 138, nil, 138, 138, nil, nil, nil, nil, nil,
+ 138, 138, 15, nil, 15, 15, nil, 15, 15, nil,
+ nil, nil, nil, nil, 15, 15, 125, nil, 125, 125,
+ nil, 125, 125, nil, nil, nil, nil, nil, 125, 125,
+ 0, nil, 0, 0, nil, 0, 0, nil, nil, nil,
+ nil, nil, 0, 0, 26, 26, 26, 26, 26, 26 ]
+
+racc_action_pointer = [
+ 308, -2, nil, nil, nil, 174, 161, nil, nil, 132,
+ nil, 161, 153, 163, 122, 280, nil, nil, 150, nil,
+ nil, nil, 73, 137, nil, nil, 328, 3, nil, nil,
+ nil, nil, nil, 130, 128, nil, nil, 34, 118, 59,
+ 103, 131, 73, nil, 50, nil, 11, 20, nil, nil,
+ nil, nil, nil, nil, 11, 252, nil, nil, nil, nil,
+ nil, 42, 75, 6, 23, nil, 23, nil, 135, 138,
+ nil, nil, nil, 107, 120, nil, nil, nil, nil, 50,
+ 66, 119, nil, 0, nil, nil, nil, 26, 117, 9,
+ nil, 116, 55, 57, 9, nil, -18, 48, 46, 55,
+ 95, 105, 78, 83, 116, nil, 20, nil, nil, 40,
+ nil, nil, 18, 62, nil, nil, 143, 92, 127, nil,
+ nil, nil, nil, nil, nil, 294, nil, 89, 142, 57,
+ nil, nil, nil, nil, 114, 134, 148, 68, 266, 155,
+ nil, 224, 159, 196, 210, 179, 238, nil, 165, nil,
+ 148, nil, nil ]
+
+racc_action_default = [
+ -86, -86, -7, -20, -8, -86, -86, -19, -9, -86,
+ -10, -86, -80, -86, -86, -1, -2, -4, -86, -5,
+ -6, -33, -86, -39, -42, -40, -50, -34, -80, -38,
+ -36, -43, -41, -35, -86, -37, -67, -86, -70, -27,
+ -86, -86, -70, -3, -27, -31, -86, -86, -52, -53,
+ -54, -55, -56, -57, -86, -86, -65, -64, -58, -66,
+ -59, -86, -86, -70, -86, -71, -86, -21, -24, -19,
+ -25, -22, -28, -17, -84, -23, -15, -26, 153, -70,
+ -86, -84, -81, -86, -82, -83, -51, -86, -86, -86,
+ -61, -86, -77, -86, -86, -74, -86, -27, -86, -18,
+ -86, -86, -85, -86, -86, -78, -86, -32, -44, -45,
+ -63, -60, -86, -86, -72, -73, -86, -86, -14, -30,
+ -16, -11, -12, -29, -79, -86, -13, -86, -86, -86,
+ -62, -76, -75, -68, -86, -86, -86, -86, -86, -86,
+ -69, -86, -86, -86, -86, -86, -86, -47, -86, -46,
+ -86, -48, -49 ]
+
+racc_goto_table = [
+ 15, 29, 76, 33, 60, 70, 23, 34, 67, 123,
+ 93, 74, 83, 95, 45, 64, 81, 58, 101, 79,
+ 47, 127, 29, 73, 33, 106, 105, 23, 91, 90,
+ 100, 104, 77, 46, 43, 94, 13, nil, nil, 86,
+ 29, 123, 33, nil, 68, 23, 87, 29, nil, 33,
+ nil, nil, 23, nil, 29, 88, 33, 112, nil, 23,
+ nil, nil, 120, 35, nil, 70, 132, nil, 67, 118,
+ nil, nil, nil, nil, nil, 107, nil, nil, nil, 130,
+ nil, 110, nil, 29, 35, 33, nil, nil, 23, 29,
+ 119, 33, nil, nil, 23, nil, 117, nil, 29, nil,
+ 33, 75, 35, 23, 68, 131, nil, 43, nil, 35,
+ nil, nil, nil, 29, nil, 33, 35, nil, 23, 27,
+ nil, nil, nil, nil, nil, 135, nil, nil, nil, 29,
+ nil, 33, nil, nil, 23, 139, 43, 29, 143, 33,
+ 27, 145, 23, 142, 148, 35, 150, nil, nil, nil,
+ nil, 35, nil, nil, 43, nil, nil, 71, 27, nil,
+ 35, 75, 43, nil, 43, 27, nil, 43, nil, 43,
+ nil, nil, 27, nil, nil, 35, nil, nil, nil, nil,
+ nil, 92, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 35, nil, nil, nil, nil, nil, nil, nil, 35,
+ nil, 27, nil, nil, nil, nil, nil, 27, nil, nil,
+ nil, nil, nil, nil, nil, nil, 27, 71, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 27, nil, nil, 92, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 27, nil, nil,
+ nil, nil, nil, nil, nil, 27 ]
+
+racc_goto_check = [
+ 2, 4, 17, 16, 32, 21, 20, 28, 19, 23,
+ 37, 14, 25, 39, 22, 35, 14, 31, 15, 35,
+ 30, 29, 4, 12, 16, 15, 37, 20, 33, 32,
+ 13, 36, 22, 24, 3, 38, 1, nil, nil, 22,
+ 4, 23, 16, nil, 20, 20, 22, 4, nil, 16,
+ nil, nil, 20, nil, 4, 2, 16, 25, nil, 20,
+ nil, nil, 17, 6, nil, 21, 39, nil, 19, 14,
+ nil, nil, nil, nil, nil, 22, nil, nil, nil, 32,
+ nil, 22, nil, 4, 6, 16, nil, nil, 20, 4,
+ 22, 16, nil, nil, 20, nil, 2, nil, 4, nil,
+ 16, 6, 6, 20, 20, 22, nil, 3, nil, 6,
+ nil, nil, nil, 4, nil, 16, 6, nil, 20, 11,
+ nil, nil, nil, nil, nil, 2, nil, nil, nil, 4,
+ nil, 16, nil, nil, 20, 28, 3, 4, 2, 16,
+ 11, 2, 20, 28, 2, 6, 2, nil, nil, nil,
+ nil, 6, nil, nil, 3, nil, nil, 11, 11, nil,
+ 6, 6, 3, nil, 3, 11, nil, 3, nil, 3,
+ nil, nil, 11, nil, nil, 6, nil, nil, nil, nil,
+ nil, 11, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 6, nil, nil, nil, nil, nil, nil, nil, 6,
+ nil, 11, nil, nil, nil, nil, nil, 11, nil, nil,
+ nil, nil, nil, nil, nil, nil, 11, 11, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, 11, nil, nil, 11, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 11, nil, nil,
+ nil, nil, nil, nil, nil, 11 ]
+
+racc_goto_pointer = [
+ nil, 36, 0, 19, 0, nil, 62, nil, nil, nil,
+ nil, 118, -16, -43, -28, -56, 2, -37, nil, -31,
+ 5, -34, -8, -93, 11, -34, nil, nil, 6, -88,
+ -6, -20, -33, -34, nil, -23, -48, -53, -28, -50 ]
+
+racc_goto_default = [
+ nil, nil, nil, 16, 17, 19, 20, 2, 4, 8,
+ 10, 11, nil, nil, nil, nil, 18, nil, 66, 21,
+ 6, 25, 26, 72, nil, nil, 30, 32, nil, nil,
+ nil, nil, nil, nil, 61, nil, nil, 65, nil, nil ]
+
+racc_token_table = {
+ false => 0,
+ Object.new => 1,
+ :LBRACK => 2,
+ :QTEXT => 3,
+ :RBRACK => 4,
+ :LBRACE => 5,
+ :RBRACE => 6,
+ :SYMBOL => 7,
+ :FARROW => 8,
+ :COMMA => 9,
+ :TRUE => 10,
+ :FALSE => 11,
+ :EQUALS => 12,
+ :QMARK => 13,
+ :LPAREN => 14,
+ :RPAREN => 15,
+ :ISEQUAL => 16,
+ :GREATEREQUAL => 17,
+ :GREATERTHAN => 18,
+ :LESSTHAN => 19,
+ :LESSEQUAL => 20,
+ :NOTEQUAL => 21,
+ :IF => 22,
+ :ELSE => 23,
+ :IMPORT => 24,
+ :DEFINE => 25,
+ :ELSIF => 26,
+ :VARIABLE => 27,
+ :CLASS => 28,
+ :INHERITS => 29,
+ :NODE => 30,
+ :BOOLEAN => 31,
+ :DOT => 32,
+ :COLON => 33,
+ :TYPE => 34,
+ :NAME => 35,
+ :SEMIC => 36 }
+
+racc_use_result_var = true
+
+racc_nt_base = 37
+
+Racc_arg = [
+ racc_action_table,
+ racc_action_check,
+ racc_action_default,
+ racc_action_pointer,
+ racc_goto_table,
+ racc_goto_check,
+ racc_goto_default,
+ racc_goto_pointer,
+ racc_nt_base,
+ racc_reduce_table,
+ racc_token_table,
+ racc_shift_n,
+ racc_reduce_n,
+ racc_use_result_var ]
+
+Racc_token_to_s_table = [
+'$end',
+'error',
+'LBRACK',
+'QTEXT',
+'RBRACK',
+'LBRACE',
+'RBRACE',
+'SYMBOL',
+'FARROW',
+'COMMA',
+'TRUE',
+'FALSE',
+'EQUALS',
+'QMARK',
+'LPAREN',
+'RPAREN',
+'ISEQUAL',
+'GREATEREQUAL',
+'GREATERTHAN',
+'LESSTHAN',
+'LESSEQUAL',
+'NOTEQUAL',
+'IF',
+'ELSE',
+'IMPORT',
+'DEFINE',
+'ELSIF',
+'VARIABLE',
+'CLASS',
+'INHERITS',
+'NODE',
+'BOOLEAN',
+'DOT',
+'COLON',
+'TYPE',
+'NAME',
+'SEMIC',
+'$start',
+'program',
+'statements',
+'statement',
+'object',
+'assignment',
+'selector',
+'iftest',
+'import',
+'definition',
+'hostclass',
+'name',
+'objectinstances',
+'endsemi',
+'params',
+'endcomma',
+'type',
+'objectinst',
+'objectname',
+'quotedtext',
+'variable',
+'array',
+'rvalue',
+'param',
+'rvalues',
+'comma',
+'boolean',
+'objectref',
+'test',
+'elsifs',
+'testop',
+'svalues',
+'selectval',
+'sintvalues',
+'selectlhand',
+'argumentlist',
+'parent',
+'nothing',
+'arguments',
+'argument']
+
+Racc_debug_parser = false
+
+##### racc system variables end #####
+
+ # reduce 0 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 40
+ def _reduce_1( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :children => [val[0]]
+ )
+ end
+
+ # this is mainly so we can test the parser separately from the
+ # interpreter
+ if Puppet[:parseonly]
+ begin
+ if Puppet[:debug]
+ puts result.tree(0)
+ end
+ rescue NoMethodError => detail
+ Puppet.err detail
+ #exit(78)
+ end
+ #require 'puppet/parser/interpreter'
+ #result = Puppet::Server.new(result)
+ end
+ result
+ end
+.,.,
+
+ # reduce 2 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 54
+ def _reduce_3( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ val[0].push(val[1])
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :children => [val[0],val[1]]
+ )
+ end
+ result
+ end
+.,.,
+
+ # reduce 4 omitted
+
+ # reduce 5 omitted
+
+ # reduce 6 omitted
+
+ # reduce 7 omitted
+
+ # reduce 8 omitted
+
+ # reduce 9 omitted
+
+ # reduce 10 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 89
+ def _reduce_11( val, _values, result )
+ ary = val[2]
+ if val[0].is_a?(AST::ASTArray)
+ Puppet.notice "invalid name"
+ raise Puppet::ParseError, "Invalid name"
+ end
+ if ary[0].is_a?(AST::Leaf)
+ ary = [ary]
+ end
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file
+ )
+ ary.each { |instance|
+ Puppet.debug "Adding %s with name %s" % [val[0].value, instance[0].value]
+ result.push AST::ObjectDef.new(
+ :pin => "{}",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :type => val[0],
+ :name => instance[0],
+ :params => instance[1]
+ )
+ }
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 113
+ def _reduce_12( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ Puppet.notice "invalid name"
+ raise Puppet::ParseError, "Invalid name"
+ end
+ # an object but without a name
+ # this cannot be an instance of a library type
+
+ Puppet.debug "Adding %s" % val[0].value
+ # make a unique name for bookkeeping purposes
+ name = AST::Name.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => [val[0].value, "-", val[0].object_id].join('')
+ )
+
+ result = AST::ObjectDef.new(
+ :pin => "{}",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :type => val[0],
+ :name => name,
+ :params => val[2]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 126
+ def _reduce_13( val, _values, result )
+ # a template setting for a type
+ if val[0].is_a?(AST::ASTArray)
+ Puppet.notice "invalid type"
+ raise Puppet::ParseError, "Invalid type"
+ end
+ result = AST::TypeDefaults.new(
+ :pin => "{}",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :type => val[0],
+ :params => val[2]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 134
+ def _reduce_14( val, _values, result )
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ result
+ end
+.,.,
+
+ # reduce 15 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 148
+ def _reduce_16( val, _values, result )
+ if val[0][0].is_a?(AST::ASTArray)
+ val[0].push val[2]
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ end
+ result
+ end
+.,.,
+
+ # reduce 17 omitted
+
+ # reduce 18 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 159
+ def _reduce_19( val, _values, result )
+ result = AST::Name.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 167
+ def _reduce_20( val, _values, result )
+ result = AST::Type.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result
+ end
+.,.,
+
+ # reduce 21 omitted
+
+ # reduce 22 omitted
+
+ # reduce 23 omitted
+
+ # reduce 24 omitted
+
+ # reduce 25 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 189
+ def _reduce_26( val, _values, result )
+ # this is distinct from referencing a variable
+ variable = AST::Name.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0].sub(/^\$/,'')
+ )
+ result = AST::VarDef.new(
+ :pin => "=",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :name => variable,
+ :value => val[2]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 198
+ def _reduce_27( val, _values, result )
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => []
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 198
+ def _reduce_28( val, _values, result )
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 211
+ def _reduce_29( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ val[0].push(val[2])
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ end
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 226
+ def _reduce_30( val, _values, result )
+ leaf = AST::String.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result = AST::ObjectParam.new(
+ :pin => "=>",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :param => leaf,
+ :value => val[2]
+ )
+ result
+ end
+.,.,
+
+ # reduce 31 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 239
+ def _reduce_32( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ result = val[0].push(val[2])
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ end
+ result
+ end
+.,.,
+
+ # reduce 33 omitted
+
+ # reduce 34 omitted
+
+ # reduce 35 omitted
+
+ # reduce 36 omitted
+
+ # reduce 37 omitted
+
+ # reduce 38 omitted
+
+ # reduce 39 omitted
+
+ # reduce 40 omitted
+
+ # reduce 41 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 257
+ def _reduce_42( val, _values, result )
+ result = AST::String.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 265
+ def _reduce_43( val, _values, result )
+ result = AST::Boolean.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 275
+ def _reduce_44( val, _values, result )
+ result = AST::ObjectRef.new(
+ :pin => '[]',
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :type => val[0],
+ :name => val[2]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 285
+ def _reduce_45( val, _values, result )
+ result = AST::If.new(
+ :pin => "if",
+ :test => val[1],
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :statements => val[3]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 307
+ def _reduce_46( val, _values, result )
+ # make sure our elsifs are an array, as it will save lots of
+ # effort later
+ unless val[5].is_a?(AST::ASTArray)
+ val[5] = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[5]]
+ )
+ end
+
+ result = AST::If.new(
+ :pin => "if",
+ :test => val[1],
+ :statements => val[3],
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :else => val[8],
+ :elsif => val[5]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 318
+ def _reduce_47( val, _values, result )
+ result = AST::If.new(
+ :pin => "if",
+ :test => val[1],
+ :statements => val[3],
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :else => val[7]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 328
+ def _reduce_48( val, _values, result )
+ result = AST::If.new(
+ :pin => "elseif",
+ :test => val[1],
+ :file => @lexer.file,
+ :statements => val[3],
+ :line => @lexer.line
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 348
+ def _reduce_49( val, _values, result )
+ second = AST::If.new(
+ :pin => "elsif",
+ :test => val[2],
+ :statements => val[4],
+ :file => @lexer.file,
+ :line => @lexer.line
+ )
+
+ if val[0].is_a?(AST::ASTArray)
+ val[0].push(second)
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],second]
+ )
+ end
+ result
+ end
+.,.,
+
+ # reduce 50 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 359
+ def _reduce_51( val, _values, result )
+ result = AST::Test.new(
+ :pin => val[1],
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :lhs => val[0],
+ :rhs => val[2]
+ )
+ result
+ end
+.,.,
+
+ # reduce 52 omitted
+
+ # reduce 53 omitted
+
+ # reduce 54 omitted
+
+ # reduce 55 omitted
+
+ # reduce 56 omitted
+
+ # reduce 57 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 376
+ def _reduce_58( val, _values, result )
+ result = AST::Selector.new(
+ :pin => "?",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :param => val[0],
+ :value => val[2]
+ )
+ result
+ end
+.,.,
+
+ # reduce 59 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 378
+ def _reduce_60( val, _values, result )
+ result = val[1]
+ result
+ end
+.,.,
+
+ # reduce 61 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 393
+ def _reduce_62( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ val[0].push(val[2])
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ end
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 408
+ def _reduce_63( val, _values, result )
+ leaf = AST::String.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => val[0]
+ )
+ result = AST::ObjectParam.new(
+ :pin => "=>",
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :param => leaf,
+ :value => val[2]
+ )
+ result
+ end
+.,.,
+
+ # reduce 64 omitted
+
+ # reduce 65 omitted
+
+ # reduce 66 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 437
+ def _reduce_67( val, _values, result )
+ # importing files
+ # yuk, i hate keywords
+ # we'll probably have to have some kind of search path eventually
+ # but for now, just use a path relative to the file doing the importing
+ path = @lexer.file.sub(%r{[^/]+$},val[1])
+ parser = Puppet::Parser::Parser.new()
+ parser.stack = self.stack
+ Puppet.debug("importing %s" % path)
+ noimport = false
+ begin
+ parser.file = path
+ rescue Puppet::ImportError
+ Puppet.warning("Importing %s would result in an import loop" % path)
+ result = AST::ASTArray.new(
+ :file => @lexer.file,
+ :line => @lexer.line
+ )
+ noimport = true
+ end
+ unless noimport
+ result = parser.parse
+ end
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 447
+ def _reduce_68( val, _values, result )
+ result = AST::CompDef.new(
+ :name => AST::Name.new(:value => val[1], :line => @lexer.line),
+ :args => val[2],
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :code => val[4]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 458
+ def _reduce_69( val, _values, result )
+ result = AST::ClassDef.new(
+ :name => AST::Name.new(:value => val[1], :line => @lexer.line),
+ :args => val[2],
+ :parentclass => val[3],
+ :file => @lexer.file,
+ :line => @lexer.line,
+ :code => val[5]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 473
+ def _reduce_70( val, _values, result )
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => []
+ )
+ result
+ end
+.,.,
+
+ # reduce 71 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 478
+ def _reduce_72( val, _values, result )
+ result = val[1]
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 489
+ def _reduce_73( val, _values, result )
+ if val[1].is_a?(AST::ASTArray)
+ result = val[1]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0]]
+ )
+ end
+ result
+ end
+.,.,
+
+ # reduce 74 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 503
+ def _reduce_75( val, _values, result )
+ if val[0].is_a?(AST::ASTArray)
+ val[0].push(val[2])
+ result = val[0]
+ else
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ end
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 511
+ def _reduce_76( val, _values, result )
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0],val[2]]
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 518
+ def _reduce_77( val, _values, result )
+ result = AST::ASTArray.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :children => [val[0]]
+ )
+ result
+ end
+.,.,
+
+ # reduce 78 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 527
+ def _reduce_79( val, _values, result )
+ result = AST::Name.new(
+ :value => val[1],
+ :file => @lexer.file,
+ :line => @lexer.line
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 536
+ def _reduce_80( val, _values, result )
+ name = val[0].sub(/^\$/,'')
+ result = AST::Variable.new(
+ :line => @lexer.line,
+ :file => @lexer.file,
+ :value => name
+ )
+ result
+ end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 545
+ def _reduce_81( val, _values, result )
+ if val[1].is_a?(AST::ASTArray)
+ result = val[1]
+ else
+ result = AST::ASTArray.new
+ result.push val[1]
+ end
+ result
+ end
+.,.,
+
+ # reduce 82 omitted
+
+ # reduce 83 omitted
+
+ # reduce 84 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 550
+ def _reduce_85( val, _values, result )
+ result = nil
+ result
+ end
+.,.,
+
+ def _reduce_none( val, _values, result )
+ result
+ end
+
+ end # class Parser
+
+ end # module Parser
+
+end # module Puppet