From 290aa257de41c579dc8b66dc84b0629f1f080786 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Wed, 16 Dec 2009 22:42:53 -0500 Subject: [PATCH] completely reorganized for a gem and the 'coffee-script' command --- LICENSE | 22 + Rakefile | 15 + WISHLIST => TODO | 5 +- bin/coffee-script | 5 + code.cs => examples/code.cs | 2 - documents.cs => examples/documents.cs | 0 poignant.cs => examples/poignant.cs | 0 underscore.cs => examples/underscore.cs | 0 lib/coffee-script.rb | 16 + lib/coffee_script/command_line.rb | 99 ++ grammar.y => lib/coffee_script/grammar.y | 4 - lexer.rb => lib/coffee_script/lexer.rb | 0 nodes.rb => lib/coffee_script/nodes.rb | 0 parser.rb | 1475 ---------------------- lexer_test.rb => test/lexer_test.rb | 0 parser_test.rb => test/parser_test.rb | 0 16 files changed, 161 insertions(+), 1482 deletions(-) create mode 100644 LICENSE create mode 100644 Rakefile rename WISHLIST => TODO (86%) create mode 100755 bin/coffee-script rename code.cs => examples/code.cs (95%) rename documents.cs => examples/documents.cs (100%) rename poignant.cs => examples/poignant.cs (100%) rename underscore.cs => examples/underscore.cs (100%) create mode 100644 lib/coffee-script.rb create mode 100644 lib/coffee_script/command_line.rb rename grammar.y => lib/coffee_script/grammar.y (99%) rename lexer.rb => lib/coffee_script/lexer.rb (100%) rename nodes.rb => lib/coffee_script/nodes.rb (100%) delete mode 100644 parser.rb rename lexer_test.rb => test/lexer_test.rb (100%) rename parser_test.rb => test/parser_test.rb (100%) diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..7f5ff55d --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2009 Jeremy Ashkenas + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Rakefile b/Rakefile new file mode 100644 index 00000000..2d2fd8d3 --- /dev/null +++ b/Rakefile @@ -0,0 +1,15 @@ +desc "Recompile the Racc parser (pass -v and -g for verbose debugging)" +task :build, :extra_args do |t, args| + sh "racc #{args[:extra_args]} -o lib/coffee_script/parser.rb lib/coffee_script/grammar.y" +end + + +# # Pipe compiled JS through JSLint. +# puts "\n\n" +# require 'open3' +# stdin, stdout, stderr = Open3.popen3('jsl -nologo -stdin') +# stdin.write(js) +# stdin.close +# puts stdout.read +# stdout.close +# stderr.close \ No newline at end of file diff --git a/WISHLIST b/TODO similarity index 86% rename from WISHLIST rename to TODO index 6630b1f4..93dbd7f7 100644 --- a/WISHLIST +++ b/TODO @@ -1,6 +1,9 @@ +TODO: + * Is it possible to close blocks (functions, ifs, trys) without an explicit block delimiter or significant whitespace? * Is it possible to pass comments through cleanly and have them show up on the other end? This includes comments in the middle of array and object - literals, and argument lists. \ No newline at end of file + literals, and argument lists. + \ No newline at end of file diff --git a/bin/coffee-script b/bin/coffee-script new file mode 100755 index 00000000..51184c42 --- /dev/null +++ b/bin/coffee-script @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby + +require "#{File.dirname(__FILE__)}/../lib/coffee_script/command_line.rb" + +CoffeeScript::CommandLine.new \ No newline at end of file diff --git a/code.cs b/examples/code.cs similarity index 95% rename from code.cs rename to examples/code.cs index a0299bd4..756ee24a 100644 --- a/code.cs +++ b/examples/code.cs @@ -1,5 +1,3 @@ -# TODO: Add range indexing: array[5..7] => array.slice(5, 7) - # Functions: square: x => x * x. diff --git a/documents.cs b/examples/documents.cs similarity index 100% rename from documents.cs rename to examples/documents.cs diff --git a/poignant.cs b/examples/poignant.cs similarity index 100% rename from poignant.cs rename to examples/poignant.cs diff --git a/underscore.cs b/examples/underscore.cs similarity index 100% rename from underscore.cs rename to examples/underscore.cs diff --git a/lib/coffee-script.rb b/lib/coffee-script.rb new file mode 100644 index 00000000..09be81f7 --- /dev/null +++ b/lib/coffee-script.rb @@ -0,0 +1,16 @@ +$LOAD_PATH.unshift(File.dirname(__FILE__)) +require "coffee_script/lexer" +require "coffee_script/parser" +require "coffee_script/nodes" + +# Namespace for all CoffeeScript internal classes. +module CoffeeScript + + VERSION = '0.1.0' + + def self.compile(script) + script = script.read if script.respond_to?(:read) + Parser.new.parse(script).compile + end + +end diff --git a/lib/coffee_script/command_line.rb b/lib/coffee_script/command_line.rb new file mode 100644 index 00000000..ecf81da4 --- /dev/null +++ b/lib/coffee_script/command_line.rb @@ -0,0 +1,99 @@ +require 'optparse' +require 'fileutils' +require 'open3' +require File.expand_path(File.dirname(__FILE__) + '/../coffee-script') + +module CoffeeScript + + class CommandLine + + BANNER = <<-EOS +coffee-script compiles CoffeeScript files into JavaScript. + +Usage: + coffee-script path/to/script.cs + EOS + + def initialize + parse_options + check_sources + compile_javascript + end + + def usage + puts "\n#{@option_parser}\n" + exit + end + + + private + + def compile_javascript + @sources.each do |source| + contents = CoffeeScript.compile(File.open(source)) + next puts(contents) if @options[:print] + next lint(contents) if @options[:lint] + File.open(path_for(source), 'w+') {|f| f.write(contents) } + end + end + + def check_sources + usage if @sources.empty? + missing = @sources.detect {|s| !File.exists?(s) } + if missing + STDERR.puts("File not found: '#{missing}'") + exit(1) + end + end + + # Pipe compiled JS through JSLint. + def lint(js) + stdin, stdout, stderr = Open3.popen3('jsl -nologo -stdin') + stdin.write(js) + stdin.close + print stdout.read + stdout.close and stderr.close + end + + # Write out JavaScript alongside CoffeeScript unless an output directory + # is specified. + def path_for(source) + filename = File.basename(source, File.extname(source)) + '.js' + dir = @options[:output] || File.dirname(source) + File.join(dir, filename) + end + + def parse_options + @options = {} + @option_parser = OptionParser.new do |opts| + opts.on('-o', '--output [DIR]', 'set the directory for compiled javascript') do |d| + @options[:output] = d + FileUtils.mkdir_p(d) unless File.exists?(d) + end + opts.on('-p', '--print', 'print the compiled javascript to stdout') do |d| + @options[:print] = true + end + opts.on('-l', '--lint', 'pipe the compiled javascript through JSLint') do |l| + @options[:lint] = true + end + opts.on_tail('-v', '--version', 'display coffee-script version') do + puts "coffee-script version #{CoffeeScript::VERSION}" + exit + end + opts.on_tail('-h', '--help', 'display this help message') do + usage + end + end + @option_parser.banner = BANNER + begin + @option_parser.parse!(ARGV) + rescue OptionParser::InvalidOption => e + puts e.message + exit(1) + end + @sources = ARGV + end + + end + +end diff --git a/grammar.y b/lib/coffee_script/grammar.y similarity index 99% rename from grammar.y rename to lib/coffee_script/grammar.y index 1eba1d0c..2ff987d3 100644 --- a/grammar.y +++ b/lib/coffee_script/grammar.y @@ -281,10 +281,6 @@ rule end ----- header - require "lexer" - require "nodes" - ---- inner def parse(code, show_tokens=false) # @yydebug = true diff --git a/lexer.rb b/lib/coffee_script/lexer.rb similarity index 100% rename from lexer.rb rename to lib/coffee_script/lexer.rb diff --git a/nodes.rb b/lib/coffee_script/nodes.rb similarity index 100% rename from nodes.rb rename to lib/coffee_script/nodes.rb diff --git a/parser.rb b/parser.rb deleted file mode 100644 index 48e2e9c7..00000000 --- a/parser.rb +++ /dev/null @@ -1,1475 +0,0 @@ -# -# DO NOT MODIFY!!!! -# This file is automatically generated by Racc 1.4.6 -# from Racc grammer file "". -# - -require 'racc/parser.rb' - - require "lexer" - require "nodes" - -class Parser < Racc::Parser - -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 294) - def parse(code, show_tokens=false) - # @yydebug = true - @tokens = Lexer.new.tokenize(code) - puts @tokens.inspect if show_tokens - do_parse - end - - def next_token - @tokens.shift - end -...end grammar.y/module_eval... -##### State transition tables begin ### - -clist = [ -'12,7,195,56,29,35,39,43,48,4,7,174,135,18,21,28,33,171,184,47,3,9,198', -'56,16,20,23,30,115,44,56,2,8,179,123,118,189,27,129,23,30,194,23,30', -'181,23,30,56,183,175,199,23,30,42,59,1,126,11,23,30,34,-2,42,12,1,72', -'11,29,35,39,43,48,4,7,59,113,18,21,28,33,52,59,47,3,9,55,58,16,20,180', -'23,30,44,52,2,8,127,128,59,171,27,52,55,88,91,93,96,98,100,101,103,105', -'81,83,87,90,92,95,97,99,172,23,30,34,112,42,12,1,110,11,29,35,39,43', -'48,4,7,23,30,18,21,28,33,23,30,47,3,9,23,30,16,20,,23,30,44,158,2,8', -'200,23,30,163,27,88,91,93,96,98,100,101,103,105,81,83,87,90,23,30,,158', -',159,167,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,23,30,18,21,28,33', -'66,67,47,3,9,,,16,20,205,23,30,44,,2,8,88,91,93,,27,88,91,93,96,98,100', -'101,103,105,81,83,87,90,88,91,93,96,98,,,23,30,34,,42,12,1,,11,29,35', -'39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,88,91,93,44,,2,8,187,23', -'30,,27,88,91,93,96,98,100,101,103,105,81,83,87,90,88,91,93,96,98,,,', -',34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,', -',,44,,2,8,,,,,27,88,91,93,96,98,100,101,103,105,81,83,87,90,88,91,93', -'96,98,,,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47', -'3,9,,,16,20,,,,44,,2,8,,,,,27,88,91,93,96,98,100,101,103,105,81,83,87', -'90,88,91,93,96,98,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28', -'33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,88,91,93,96,98,100,101,103,105', -'81,83,87,90,,,,,,,,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,88,91,93,96,98,100,101,103', -'105,81,83,87,90,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,88,91,93,96,98,100,101,103', -'105,81,83,87,90,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34', -',42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44', -',2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7', -',,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,', -',,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20', -',,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43', -'48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,', -',,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9', -',,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34,,42,12,1,,11', -'29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27', -',,,,,,,,,,,,,,,,,,,,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34', -',42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44', -',2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34,,42,12,1,,11,29,35,39,43,48', -'4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,', -',,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16', -'20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39', -'43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,', -',,,,,,,,,,,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,', -'47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,', -'11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,', -'27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42', -'12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2', -'8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,', -'18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23', -'30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20', -',,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43', -'48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,', -',,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9', -',,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34,,42,12,1,,11', -'29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27', -',,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28', -'33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,23,30,34,', -'42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44', -',2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7', -',,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,', -',,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20', -',,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43', -'48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,', -',,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9', -',,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35', -'39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,', -',,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47', -'3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11', -'29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27', -',,,,,,,,,,,,,,,,,,,,23,30,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42', -'12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2', -'8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,', -'18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,', -',34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,', -',,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48', -'4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,', -',,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16', -'20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39', -'43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,', -',,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3', -'9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29', -'35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,', -',,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33', -',,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1', -',11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,', -',27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21', -'28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42', -'12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2', -'8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,', -'18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,', -',34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,', -',,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48', -'4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,', -',,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16', -'20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39', -'43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,', -',,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33,,,47,3', -'9,,,16,20,,,,44,,2,8,,,,,27,,,,,,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29', -'35,39,43,48,4,7,,,18,21,28,33,,,47,3,9,,,16,20,,,,44,,2,8,,,,,27,,,', -',,,,,,,,,,,,,,,,,,,34,,42,12,1,,11,29,35,39,43,48,4,7,,,18,21,28,33', -',,47,3,9,,,16,20,,,,44,,2,8,,,85,,27,94,,,,,,,,,,,,,,,,,,,84,,,34,,42', -',1,,11,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102', -'104,80,82,86,89,85,,,94,164,,165,,,,,,,,,,,,,,,,84,,,,,,,,,,,88,91,93', -'96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104,80,82,86,89,85', -',120,94,,,190,,,,,,,,,,,,,,,,84,,,,,,85,,120,94,,88,91,93,96,98,100', -'101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82,86,89,,23,30,,88', -'91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104,80,82,86', -'89,,23,30,85,,120,94,,,,,,,,,,,,,,,,,,,84,,,,,,85,,120,94,,88,91,93', -'96,98,100,101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82,86,89', -',23,30,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102', -'104,80,82,86,89,207,23,30,94,,,,,,,,,,,,,,,,,,,84,,,,,,196,,,94,,88', -'91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82', -'86,89,208,,,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99', -',102,104,80,82,86,89,197,85,,,94,,,,,,,,,,,,,,,,,,,84,,,,,,85,,,94,', -'88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,84,102,104,80', -'82,86,89,,,,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99', -',102,104,80,82,86,89,85,,,94,,,,,,,,,,,,,,,,,,,84,,,,,,85,,,94,,88,91', -'93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82,86', -'89,85,,,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102', -'104,80,82,86,89,85,,,94,,88,91,93,96,98,100,101,103,105,81,83,87,90', -'92,95,97,99,84,102,104,80,82,86,89,-112,,,,88,91,93,96,98,100,101,103', -'105,81,83,87,90,92,95,97,99,,102,104,80,82,86,89,85,,,94,,88,91,93,96', -'98,100,101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82,86,89,-112', -',,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104,80', -'82,86,89,85,,,94,,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97', -'99,84,102,104,80,82,86,89,-112,,,,88,91,93,96,98,100,101,103,105,81', -'83,87,90,92,95,97,99,,102,104,80,82,86,89,85,,,94,,88,91,93,96,98,100', -'101,103,105,81,83,87,90,92,95,97,99,84,102,104,80,82,86,89,,,,,88,91', -'93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104,80,82,86,89', -'88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104,80,82', -'86,89,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,,102,104', -'80,82,86,89,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95,97,99,', -'102,104,80,82,86,89,88,91,93,96,98,100,101,103,105,81,83,87,90,92,95', -'97,99,,102,104,80,82,86,89,88,91,93,96,98,100,101,103,105,81,83,87,90', -'92,95,97,99,,102,104,80,82,86,89,88,91,93,96,98,100,101,103,105,81,83', -'87,90,92,95,97,99,,102,104,80,82,86,89' ] - racc_action_table = arr = Array.new(4730, nil) - idx = 0 - clist.each do |str| - str.split(',', -1).each do |i| - arr[idx] = i.to_i unless i.empty? - idx += 1 - end - end - -clist = [ -'0,21,186,38,0,0,0,0,0,0,0,135,84,0,0,0,0,169,169,0,0,0,189,71,0,0,64', -'64,56,0,70,0,0,166,67,64,175,0,76,76,76,186,186,186,168,168,168,6,169', -'135,191,191,191,21,38,21,72,21,0,0,0,32,0,207,0,25,0,207,207,207,207', -'207,207,207,71,52,207,207,207,207,111,70,207,207,207,70,6,207,207,166', -'166,166,207,112,207,207,75,75,6,125,207,1,6,116,116,116,116,116,116', -'116,116,116,116,116,116,116,116,116,116,116,127,51,51,207,51,207,2,207', -'51,207,2,2,2,2,2,2,2,75,75,2,2,2,2,37,37,2,2,2,201,201,2,2,,114,114', -'2,114,2,2,192,192,192,114,2,138,138,138,138,138,138,138,138,138,138', -'138,138,138,106,106,,106,,106,122,122,122,2,,2,124,2,,2,124,124,124', -'124,124,124,124,108,108,124,124,124,124,14,14,124,124,124,,,124,124', -'202,202,202,124,,124,124,149,149,149,,124,148,148,148,148,148,148,148', -'148,148,148,148,148,148,154,154,154,154,154,,,124,124,124,,124,8,124', -',124,8,8,8,8,8,8,8,,,8,8,8,8,,,8,8,8,,,8,8,147,147,147,8,,8,8,173,173', -'173,,8,141,141,141,141,141,141,141,141,141,141,141,141,141,151,151,151', -'151,151,,,,,8,,8,11,8,,8,11,11,11,11,11,11,11,,,11,11,11,11,,,11,11', -'11,,,11,11,,,,11,,11,11,,,,,11,150,150,150,150,150,150,150,150,150,150', -'150,150,150,152,152,152,152,152,,,11,11,11,,11,12,11,,11,12,12,12,12', -'12,12,12,,,12,12,12,12,,,12,12,12,,,12,12,,,,12,,12,12,,,,,12,146,146', -'146,146,146,146,146,146,146,146,146,146,146,156,156,156,156,156,,,,', -'12,,12,119,12,,12,119,119,119,119,119,119,119,,,119,119,119,119,,,119', -'119,119,,,119,119,,,,119,,119,119,,,,,119,132,132,132,132,132,132,132', -'132,132,132,132,132,132,,,,,,,,119,119,119,,119,16,119,,119,16,16,16', -'16,16,16,16,,,16,16,16,16,,,16,16,16,,,16,16,,,,16,,16,16,,,,,16,134', -'134,134,134,134,134,134,134,134,134,134,134,134,,,,,,,,,,16,,16,20,16', -',16,20,20,20,20,20,20,20,,,20,20,20,20,,,20,20,20,,,20,20,,,,20,,20', -'20,,,,,20,143,143,143,143,143,143,143,143,143,143,143,143,143,,,,,,', -',,,20,,20,128,20,,20,128,128,128,128,128,128,128,,,128,128,128,128,', -',128,128,128,,,128,128,,,,128,,128,128,,,,,128,,,,,,,,,,,,,,,,,,,,,128', -'128,128,,128,198,128,,128,198,198,198,198,198,198,198,,,198,198,198', -'198,,,198,198,198,,,198,198,,,,198,,198,198,,,,,198,,,,,,,,,,,,,,,,', -',,,,,,198,,198,27,198,,198,27,27,27,27,27,27,27,,,27,27,27,27,,,27,27', -'27,,,27,27,,,,27,,27,27,,,,,27,,,,,,,,,,,,,,,,,,,,,,,27,,27,28,27,,27', -'28,28,28,28,28,28,28,,,28,28,28,28,,,28,28,28,,,28,28,,,,28,,28,28,', -',,,28,,,,,,,,,,,,,,,,,,,,,,,28,,28,196,28,,28,196,196,196,196,196,196', -'196,,,196,196,196,196,,,196,196,196,,,196,196,,,,196,,196,196,,,,,196', -',,,,,,,,,,,,,,,,,,,,,,196,,196,33,196,,196,33,33,33,33,33,33,33,,,33', -'33,33,33,,,33,33,33,,,33,33,,,,33,,33,33,,,,,33,,,,,,,,,,,,,,,,,,,,', -'33,33,33,,33,34,33,,33,34,34,34,34,34,34,34,,,34,34,34,34,,,34,34,34', -',,34,34,,,,34,,34,34,,,,,34,,,,,,,,,,,,,,,,,,,,,34,34,34,,34,195,34', -',34,195,195,195,195,195,195,195,,,195,195,195,195,,,195,195,195,,,195', -'195,,,,195,,195,195,,,,,195,,,,,,,,,,,,,,,,,,,,,195,195,195,,195,193', -'195,,195,193,193,193,193,193,193,193,,,193,193,193,193,,,193,193,193', -',,193,193,,,,193,,193,193,,,,,193,,,,,,,,,,,,,,,,,,,,,193,193,193,,193', -'113,193,,193,113,113,113,113,113,113,113,,,113,113,113,113,,,113,113', -'113,,,113,113,,,,113,,113,113,,,,,113,,,,,,,,,,,,,,,,,,,,,,,113,,113', -'42,113,,113,42,42,42,42,42,42,42,,,42,42,42,42,,,42,42,42,,,42,42,,', -',42,,42,42,,,,,42,,,,,,,,,,,,,,,,,,,,,,,42,,42,46,42,,42,46,46,46,46', -'46,46,46,,,46,46,46,46,,,46,46,46,,,46,46,,,,46,,46,46,,,,,46,,,,,,', -',,,,,,,,,,,,,,46,46,46,,46,47,46,,46,47,47,47,47,47,47,47,,,47,47,47', -'47,,,47,47,47,,,47,47,,,,47,,47,47,,,,,47,,,,,,,,,,,,,,,,,,,,,,,47,', -'47,157,47,,47,157,157,157,157,157,157,157,,,157,157,157,157,,,157,157', -'157,,,157,157,,,,157,,157,157,,,,,157,,,,,,,,,,,,,,,,,,,,,,,157,,157', -'158,157,,157,158,158,158,158,158,158,158,,,158,158,158,158,,,158,158', -'158,,,158,158,,,,158,,158,158,,,,,158,,,,,,,,,,,,,,,,,,,,,,,158,,158', -'55,158,,158,55,55,55,55,55,55,55,,,55,55,55,55,,,55,55,55,,,55,55,,', -',55,,55,55,,,,,55,,,,,,,,,,,,,,,,,,,,,,,55,,55,184,55,,55,184,184,184', -'184,184,184,184,,,184,184,184,184,,,184,184,184,,,184,184,,,,184,,184', -'184,,,,,184,,,,,,,,,,,,,,,,,,,,,184,184,184,,184,58,184,,184,58,58,58', -'58,58,58,58,,,58,58,58,58,,,58,58,58,,,58,58,,,,58,,58,58,,,,,58,,,', -',,,,,,,,,,,,,,,,,,,58,,58,59,58,,58,59,59,59,59,59,59,59,,,59,59,59', -'59,,,59,59,59,,,59,59,,,,59,,59,59,,,,,59,,,,,,,,,,,,,,,,,,,,,,,59,', -'59,179,59,,59,179,179,179,179,179,179,179,,,179,179,179,179,,,179,179', -'179,,,179,179,,,,179,,179,179,,,,,179,,,,,,,,,,,,,,,,,,,,,179,179,179', -',179,164,179,,179,164,164,164,164,164,164,164,,,164,164,164,164,,,164', -'164,164,,,164,164,,,,164,,164,164,,,,,164,,,,,,,,,,,,,,,,,,,,,,,164', -',164,66,164,,164,66,66,66,66,66,66,66,,,66,66,66,66,,,66,66,66,,,66', -'66,,,,66,,66,66,,,,,66,,,,,,,,,,,,,,,,,,,,,66,66,66,,66,105,66,,66,105', -'105,105,105,105,105,105,,,105,105,105,105,,,105,105,105,,,105,105,,', -',105,,105,105,,,,,105,,,,,,,,,,,,,,,,,,,,,,,105,,105,104,105,,105,104', -'104,104,104,104,104,104,,,104,104,104,104,,,104,104,104,,,104,104,,', -',104,,104,104,,,,,104,,,,,,,,,,,,,,,,,,,,,,,104,,104,103,104,,104,103', -'103,103,103,103,103,103,,,103,103,103,103,,,103,103,103,,,103,103,,', -',103,,103,103,,,,,103,,,,,,,,,,,,,,,,,,,,,,,103,,103,102,103,,103,102', -'102,102,102,102,102,102,,,102,102,102,102,,,102,102,102,,,102,102,,', -',102,,102,102,,,,,102,,,,,,,,,,,,,,,,,,,,,,,102,,102,101,102,,102,101', -'101,101,101,101,101,101,,,101,101,101,101,,,101,101,101,,,101,101,,', -',101,,101,101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,101,,101,174,101,,101,174', -'174,174,174,174,174,174,,,174,174,174,174,,,174,174,174,,,174,174,,', -',174,,174,174,,,,,174,,,,,,,,,,,,,,,,,,,,,,,174,,174,100,174,,174,100', -'100,100,100,100,100,100,,,100,100,100,100,,,100,100,100,,,100,100,,', -',100,,100,100,,,,,100,,,,,,,,,,,,,,,,,,,,,,,100,,100,172,100,,100,172', -'172,172,172,172,172,172,,,172,172,172,172,,,172,172,172,,,172,172,,', -',172,,172,172,,,,,172,,,,,,,,,,,,,,,,,,,,,172,172,172,,172,171,172,', -'172,171,171,171,171,171,171,171,,,171,171,171,171,,,171,171,171,,,171', -'171,,,,171,,171,171,,,,,171,,,,,,,,,,,,,,,,,,,,,,,171,,171,77,171,,171', -'77,77,77,77,77,77,77,,,77,77,77,77,,,77,77,77,,,77,77,,,,77,,77,77,', -',,,77,,,,,,,,,,,,,,,,,,,,,,,77,,77,80,77,,77,80,80,80,80,80,80,80,,', -'80,80,80,80,,,80,80,80,,,80,80,,,,80,,80,80,,,,,80,,,,,,,,,,,,,,,,,', -',,,,,80,,80,81,80,,80,81,81,81,81,81,81,81,,,81,81,81,81,,,81,81,81', -',,81,81,,,,81,,81,81,,,,,81,,,,,,,,,,,,,,,,,,,,,,,81,,81,82,81,,81,82', -'82,82,82,82,82,82,,,82,82,82,82,,,82,82,82,,,82,82,,,,82,,82,82,,,,', -'82,,,,,,,,,,,,,,,,,,,,,,,82,,82,83,82,,82,83,83,83,83,83,83,83,,,83', -'83,83,83,,,83,83,83,,,83,83,,,,83,,83,83,,,,,83,,,,,,,,,,,,,,,,,,,,', -',,83,,83,98,83,,83,98,98,98,98,98,98,98,,,98,98,98,98,,,98,98,98,,,98', -'98,,,,98,,98,98,,,,,98,,,,,,,,,,,,,,,,,,,,,,,98,,98,85,98,,98,85,85', -'85,85,85,85,85,,,85,85,85,85,,,85,85,85,,,85,85,,,,85,,85,85,,,,,85', -',,,,,,,,,,,,,,,,,,,,,,85,,85,86,85,,85,86,86,86,86,86,86,86,,,86,86', -'86,86,,,86,86,86,,,86,86,,,,86,,86,86,,,,,86,,,,,,,,,,,,,,,,,,,,,,,86', -',86,87,86,,86,87,87,87,87,87,87,87,,,87,87,87,87,,,87,87,87,,,87,87', -',,,87,,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,,87,,87,88,87,,87,88,88,88', -'88,88,88,88,,,88,88,88,88,,,88,88,88,,,88,88,,,,88,,88,88,,,,,88,,,', -',,,,,,,,,,,,,,,,,,,88,,88,89,88,,88,89,89,89,89,89,89,89,,,89,89,89', -'89,,,89,89,89,,,89,89,,,,89,,89,89,,,,,89,,,,,,,,,,,,,,,,,,,,,,,89,', -'89,90,89,,89,90,90,90,90,90,90,90,,,90,90,90,90,,,90,90,90,,,90,90,', -',,90,,90,90,,,,,90,,,,,,,,,,,,,,,,,,,,,,,90,,90,91,90,,90,91,91,91,91', -'91,91,91,,,91,91,91,91,,,91,91,91,,,91,91,,,,91,,91,91,,,,,91,,,,,,', -',,,,,,,,,,,,,,,,91,,91,92,91,,91,92,92,92,92,92,92,92,,,92,92,92,92', -',,92,92,92,,,92,92,,,,92,,92,92,,,,,92,,,,,,,,,,,,,,,,,,,,,,,92,,92', -'93,92,,92,93,93,93,93,93,93,93,,,93,93,93,93,,,93,93,93,,,93,93,,,,93', -',93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,,93,,93,94,93,,93,94,94,94,94,94', -'94,94,,,94,94,94,94,,,94,94,94,,,94,94,,,,94,,94,94,,,,,94,,,,,,,,,', -',,,,,,,,,,,,,94,,94,95,94,,94,95,95,95,95,95,95,95,,,95,95,95,95,,,95', -'95,95,,,95,95,,,,95,,95,95,,,,,95,,,,,,,,,,,,,,,,,,,,,,,95,,95,96,95', -',95,96,96,96,96,96,96,96,,,96,96,96,96,,,96,96,96,,,96,96,,,,96,,96', -'96,,,,,96,,,,,,,,,,,,,,,,,,,,,,,96,,96,97,96,,96,97,97,97,97,97,97,97', -',,97,97,97,97,,,97,97,97,,,97,97,,,,97,,97,97,,,,,97,,,,,,,,,,,,,,,', -',,,,,,,97,,97,99,97,,97,99,99,99,99,99,99,99,,,99,99,99,99,,,99,99,99', -',,99,99,,,,99,,99,99,,,117,,99,117,,,,,,,,,,,,,,,,,,,117,,,99,,99,,99', -',99,,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117', -'117,,117,117,117,117,117,117,178,,,178,117,,117,,,,,,,,,,,,,,,,178,', -',,,,,,,,,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178', -'178,178,,178,178,178,178,178,178,185,,185,185,,,178,,,,,,,,,,,,,,,,185', -',,,,,65,,65,65,,185,185,185,185,185,185,185,185,185,185,185,185,185', -'185,185,185,185,65,185,185,185,185,185,185,,185,185,,65,65,65,65,65', -'65,65,65,65,65,65,65,65,65,65,65,65,,65,65,65,65,65,65,,65,65,68,,68', -'68,,,,,,,,,,,,,,,,,,,68,,,,,,69,,69,69,,68,68,68,68,68,68,68,68,68,68', -'68,68,68,68,68,68,68,69,68,68,68,68,68,68,,68,68,,69,69,69,69,69,69', -'69,69,69,69,69,69,69,69,69,69,69,,69,69,69,69,69,69,204,69,69,204,,', -',,,,,,,,,,,,,,,,204,,,,,,188,,,188,,204,204,204,204,204,204,204,204', -'204,204,204,204,204,204,204,204,204,188,204,204,204,204,204,204,204', -',,,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188', -',188,188,188,188,188,188,188,109,,,109,,,,,,,,,,,,,,,,,,,109,,,,,,162', -',,162,,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109', -'109,162,109,109,109,109,109,109,,,,,162,162,162,162,162,162,162,162', -'162,162,162,162,162,162,162,162,162,,162,162,162,162,162,162,107,,,107', -',,,,,,,,,,,,,,,,,,107,,,,,,177,,,177,,107,107,107,107,107,107,107,107', -'107,107,107,107,107,107,107,107,107,177,107,107,107,107,107,107,145', -',,,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177', -',177,177,177,177,177,177,41,,,41,,145,145,145,145,145,145,145,145,145', -'145,145,145,145,145,145,145,145,41,145,145,145,145,145,145,203,,,,41', -'41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,,41,41,41,41,41,41,176', -',,176,,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203', -'203,176,203,203,203,203,203,203,136,,,,176,176,176,176,176,176,176,176', -'176,176,176,176,176,176,176,176,176,,176,176,176,176,176,176,74,,,74', -',136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136', -'74,136,136,136,136,136,136,209,,,,74,74,74,74,74,74,74,74,74,74,74,74', -'74,74,74,74,74,,74,74,74,74,74,74,130,,,130,,209,209,209,209,209,209', -'209,209,209,209,209,209,209,209,209,209,209,130,209,209,209,209,209', -'209,,,,,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130', -'130,130,,130,130,130,130,130,130,137,137,137,137,137,137,137,137,137', -'137,137,137,137,137,137,137,137,,137,137,137,137,137,137,133,133,133', -'133,133,133,133,133,133,133,133,133,133,133,133,133,133,,133,133,133', -'133,133,133,140,140,140,140,140,140,140,140,140,140,140,140,140,140', -'140,140,140,,140,140,140,140,140,140,131,131,131,131,131,131,131,131', -'131,131,131,131,131,131,131,131,131,,131,131,131,131,131,131,153,153', -'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,,153,153', -'153,153,153,153,155,155,155,155,155,155,155,155,155,155,155,155,155', -'155,155,155,155,,155,155,155,155,155,155' ] - racc_action_check = arr = Array.new(4730, nil) - idx = 0 - clist.each do |str| - str.split(',', -1).each do |i| - arr[idx] = i.to_i unless i.empty? - idx += 1 - end - end - -racc_action_pointer = [ - -2, 89, 124, nil, nil, nil, 34, nil, 250, nil, - nil, 313, 376, nil, 144, nil, 502, nil, nil, nil, - 565, -11, nil, nil, nil, 65, nil, 754, 817, nil, - nil, nil, 61, 943, 1006, nil, nil, 83, -10, nil, - nil, 4356, 1258, nil, nil, nil, 1321, 1384, nil, nil, - nil, 61, 23, nil, nil, 1573, 16, nil, 1699, 1762, - nil, nil, nil, nil, -34, 3955, 1951, 19, 4015, 4043, - 17, 10, 56, nil, 4470, 77, -21, 2581, nil, nil, - 2644, 2707, 2770, 2833, 0, 2959, 3022, 3085, 3148, 3211, - 3274, 3337, 3400, 3463, 3526, 3589, 3652, 3715, 2896, 3778, - 2392, 2266, 2203, 2140, 2077, 2014, 117, 4271, 140, 4186, - nil, 68, 81, 1195, 93, nil, 68, 3813, nil, 439, - nil, nil, 124, nil, 187, 71, nil, 108, 628, nil, - 4527, 4623, 444, 4575, 507, -14, 4442, 4551, 129, nil, - 4599, 255, nil, 570, nil, 4328, 381, 243, 192, 187, - 318, 268, 331, 4647, 205, 4671, 394, 1447, 1510, nil, - nil, nil, 4214, nil, 1888, nil, 30, nil, -15, -11, - nil, 2518, 2455, 226, 2329, 24, 4413, 4299, 3870, 1825, - nil, nil, nil, nil, 1636, 3927, -18, nil, 4128, -3, - nil, -9, 100, 1132, nil, 1069, 880, nil, 691, nil, - nil, 88, 156, 4385, 4100, nil, nil, 61, nil, 4499, - nil ] - -racc_action_default = [ - -1, -81, -112, -34, -33, -20, -9, -69, -112, -35, - -10, -112, -112, -11, -112, -12, -112, -70, -67, -13, - -112, -112, -71, -21, -14, -112, -72, -112, -112, -27, - -22, -15, -26, -112, -112, -28, -16, -3, -85, -30, - -17, -4, -89, -31, -29, -18, -112, -112, -32, -19, - -8, -112, -112, -82, -41, -89, -112, -73, -112, -112, - -76, -77, -39, -26, -112, -112, -112, -112, -112, -112, - -112, -86, -112, -40, -38, -112, -112, -26, -6, -74, - -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, - -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, - -112, -112, -112, -112, -112, -112, -112, -90, -7, -100, - -80, -112, -112, -112, -112, -75, -36, -112, -101, -112, - -23, -24, -112, -68, -112, -112, 211, -112, -112, -66, - -5, -61, -51, -62, -52, -112, -95, -63, -53, -42, - -64, -54, -43, -55, -44, -96, -56, -45, -57, -46, - -58, -47, -48, -59, -49, -60, -50, -112, -112, -88, - -84, -83, -37, -87, -112, -78, -112, -65, -112, -112, - -109, -112, -112, -112, -112, -112, -92, -91, -112, -112, - -93, -102, -110, -107, -112, -112, -112, -98, -112, -112, - -79, -112, -112, -112, -97, -112, -112, -103, -112, -94, - -108, -25, -112, -95, -112, -99, -105, -112, -104, -95, - -106 ] - -racc_goto_table = [ - 54, 79, 53, 170, 32, 119, 62, 106, 124, 125, - 65, 51, 71, 70, 68, 63, 169, 25, 69, nil, - 114, nil, nil, nil, nil, 73, 74, nil, nil, nil, - nil, nil, nil, nil, 79, nil, nil, 63, 63, nil, - 107, nil, nil, nil, nil, 109, nil, 182, nil, nil, - 63, nil, nil, 107, nil, 111, 116, 117, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 121, - 63, nil, 121, 121, nil, 130, nil, nil, 131, 132, - 133, 134, 78, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 37, nil, nil, nil, nil, 78, - 157, 162, 160, 161, nil, 64, nil, nil, 157, nil, - 78, 78, nil, 63, nil, 193, nil, nil, 63, nil, - nil, nil, 63, nil, nil, nil, nil, 75, 76, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 108, nil, nil, 78, nil, 176, 177, nil, nil, nil, - nil, nil, 178, nil, nil, nil, nil, 78, nil, 185, - 122, nil, 188, nil, nil, nil, 63, nil, nil, nil, - nil, nil, nil, 63, nil, nil, nil, nil, 63, 121, - nil, nil, nil, nil, 203, nil, 204, 63, nil, 63, - nil, nil, nil, nil, nil, 209, nil, nil, nil, nil, - nil, 78, nil, 78, nil, nil, nil, nil, 78, nil, - nil, nil, nil, 166, nil, nil, nil, nil, 168, nil, - nil, 78, 173, nil, nil, nil, 78, 78, nil, nil, - nil, nil, nil, nil, nil, nil, 78, 78, 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, nil, 186, nil, nil, nil, - nil, nil, nil, 191, nil, nil, nil, nil, 192, nil, - nil, nil, nil, nil, nil, nil, nil, 201, nil, 202 ] - -racc_goto_check = [ - 4, 25, 20, 32, 2, 19, 4, 30, 19, 19, - 4, 29, 26, 7, 4, 2, 31, 1, 4, nil, - 30, nil, nil, nil, nil, 4, 4, nil, nil, nil, - nil, nil, nil, nil, 25, nil, nil, 2, 2, nil, - 4, nil, nil, nil, nil, 4, nil, 32, nil, nil, - 2, nil, nil, 4, nil, 2, 4, 4, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 2, - 2, nil, 2, 2, nil, 4, nil, nil, 4, 4, - 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 3, nil, nil, nil, nil, 5, - 2, 4, 20, 20, nil, 3, nil, nil, 2, nil, - 5, 5, nil, 2, nil, 19, nil, nil, 2, nil, - nil, nil, 2, nil, nil, nil, nil, 3, 3, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 3, nil, nil, 5, nil, 4, 4, nil, nil, nil, - nil, nil, 4, nil, nil, nil, nil, 5, nil, 4, - 3, nil, 4, nil, nil, nil, 2, nil, nil, nil, - nil, nil, nil, 2, nil, nil, nil, nil, 2, 2, - nil, nil, nil, nil, 4, nil, 4, 2, nil, 2, - nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, - nil, 5, nil, 5, nil, nil, nil, nil, 5, nil, - nil, nil, nil, 3, nil, nil, nil, nil, 3, nil, - nil, 5, 3, nil, nil, nil, 5, 5, nil, nil, - nil, nil, nil, nil, nil, nil, 5, 5, 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, nil, 3, nil, nil, nil, - nil, nil, nil, 3, nil, nil, nil, nil, 3, nil, - nil, nil, nil, nil, nil, nil, nil, 3, nil, 3 ] - -racc_goto_pointer = [ - nil, 17, 4, 104, -2, 45, nil, -8, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, -60, - 1, nil, nil, nil, nil, -37, -9, nil, nil, 10, - -35, -109, -122 ] - -racc_goto_default = [ - nil, nil, 77, nil, 41, 46, 50, 6, 10, 13, - 15, 19, 24, 31, 36, 40, 45, 49, 5, nil, - nil, 14, 17, 22, 26, 57, 38, 60, 61, nil, - nil, nil, nil ] - -racc_reduce_table = [ - 0, 0, :racc_error, - 0, 71, :_reduce_1, - 1, 71, :_reduce_2, - 1, 71, :_reduce_3, - 1, 73, :_reduce_4, - 3, 73, :_reduce_5, - 2, 73, :_reduce_6, - 2, 73, :_reduce_7, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 74, :_reduce_none, - 1, 72, :_reduce_none, - 1, 72, :_reduce_none, - 1, 89, :_reduce_none, - 1, 89, :_reduce_none, - 0, 75, :_reduce_none, - 1, 75, :_reduce_none, - 1, 76, :_reduce_27, - 1, 76, :_reduce_28, - 1, 76, :_reduce_29, - 1, 76, :_reduce_30, - 1, 76, :_reduce_31, - 1, 76, :_reduce_32, - 1, 76, :_reduce_33, - 1, 76, :_reduce_34, - 1, 76, :_reduce_35, - 3, 79, :_reduce_36, - 3, 90, :_reduce_37, - 2, 85, :_reduce_38, - 2, 81, :_reduce_39, - 2, 81, :_reduce_40, - 2, 81, :_reduce_41, - 3, 81, :_reduce_42, - 3, 81, :_reduce_43, - 3, 81, :_reduce_44, - 3, 81, :_reduce_45, - 3, 81, :_reduce_46, - 3, 81, :_reduce_47, - 3, 81, :_reduce_48, - 3, 81, :_reduce_49, - 3, 81, :_reduce_50, - 3, 81, :_reduce_51, - 3, 81, :_reduce_52, - 3, 81, :_reduce_53, - 3, 81, :_reduce_54, - 3, 81, :_reduce_55, - 3, 81, :_reduce_56, - 3, 81, :_reduce_57, - 3, 81, :_reduce_58, - 3, 81, :_reduce_59, - 3, 81, :_reduce_60, - 3, 81, :_reduce_61, - 3, 81, :_reduce_62, - 3, 81, :_reduce_63, - 3, 81, :_reduce_64, - 4, 80, :_reduce_65, - 3, 80, :_reduce_66, - 1, 91, :_reduce_67, - 3, 91, :_reduce_68, - 1, 77, :_reduce_69, - 1, 77, :_reduce_70, - 1, 77, :_reduce_71, - 1, 77, :_reduce_72, - 2, 77, :_reduce_73, - 2, 77, :_reduce_74, - 2, 95, :_reduce_75, - 1, 95, :_reduce_76, - 1, 95, :_reduce_77, - 3, 97, :_reduce_78, - 5, 98, :_reduce_79, - 3, 93, :_reduce_80, - 0, 99, :_reduce_81, - 1, 99, :_reduce_82, - 3, 99, :_reduce_83, - 3, 99, :_reduce_84, - 1, 78, :_reduce_85, - 2, 78, :_reduce_86, - 4, 96, :_reduce_87, - 3, 92, :_reduce_88, - 0, 100, :_reduce_89, - 1, 100, :_reduce_90, - 3, 100, :_reduce_91, - 3, 100, :_reduce_92, - 5, 82, :_reduce_93, - 7, 82, :_reduce_94, - 3, 82, :_reduce_95, - 3, 82, :_reduce_96, - 6, 83, :_reduce_97, - 5, 83, :_reduce_98, - 8, 83, :_reduce_99, - 2, 84, :_reduce_100, - 3, 94, :_reduce_101, - 5, 86, :_reduce_102, - 6, 87, :_reduce_103, - 8, 87, :_reduce_104, - 8, 87, :_reduce_105, - 10, 87, :_reduce_106, - 5, 88, :_reduce_107, - 7, 88, :_reduce_108, - 1, 101, :_reduce_109, - 2, 101, :_reduce_110, - 4, 102, :_reduce_111 ] - -racc_reduce_n = 112 - -racc_shift_n = 211 - -racc_token_table = { - false => 0, - :error => 1, - :IF => 2, - :ELSE => 3, - :THEN => 4, - :UNLESS => 5, - :NUMBER => 6, - :STRING => 7, - :REGEX => 8, - :TRUE => 9, - :FALSE => 10, - :NULL => 11, - :IDENTIFIER => 12, - :PROPERTY_ACCESS => 13, - :CODE => 14, - :PARAM => 15, - :NEW => 16, - :RETURN => 17, - :TRY => 18, - :CATCH => 19, - :FINALLY => 20, - :THROW => 21, - :BREAK => 22, - :CONTINUE => 23, - :FOR => 24, - :IN => 25, - :WHILE => 26, - :SWITCH => 27, - :CASE => 28, - :DEFAULT => 29, - :NEWLINE => 30, - :JS => 31, - :UMINUS => 32, - :NOT => 33, - "!" => 34, - "*" => 35, - "/" => 36, - "%" => 37, - "+" => 38, - "-" => 39, - "<=" => 40, - "<" => 41, - ">" => 42, - ">=" => 43, - "==" => 44, - "!=" => 45, - :IS => 46, - :AINT => 47, - "&&" => 48, - "||" => 49, - :AND => 50, - :OR => 51, - ":" => 52, - "-=" => 53, - "+=" => 54, - "/=" => 55, - "*=" => 56, - "||=" => 57, - "&&=" => 58, - "." => 59, - "\n" => 60, - ";" => 61, - "=>" => 62, - "," => 63, - "[" => 64, - "]" => 65, - "{" => 66, - "}" => 67, - "(" => 68, - ")" => 69 } - -racc_nt_base = 70 - -racc_use_result_var = true - -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", - "IF", - "ELSE", - "THEN", - "UNLESS", - "NUMBER", - "STRING", - "REGEX", - "TRUE", - "FALSE", - "NULL", - "IDENTIFIER", - "PROPERTY_ACCESS", - "CODE", - "PARAM", - "NEW", - "RETURN", - "TRY", - "CATCH", - "FINALLY", - "THROW", - "BREAK", - "CONTINUE", - "FOR", - "IN", - "WHILE", - "SWITCH", - "CASE", - "DEFAULT", - "NEWLINE", - "JS", - "UMINUS", - "NOT", - "\"!\"", - "\"*\"", - "\"/\"", - "\"%\"", - "\"+\"", - "\"-\"", - "\"<=\"", - "\"<\"", - "\">\"", - "\">=\"", - "\"==\"", - "\"!=\"", - "IS", - "AINT", - "\"&&\"", - "\"||\"", - "AND", - "OR", - "\":\"", - "\"-=\"", - "\"+=\"", - "\"/=\"", - "\"*=\"", - "\"||=\"", - "\"&&=\"", - "\".\"", - "\"\\n\"", - "\";\"", - "\"=>\"", - "\",\"", - "\"[\"", - "\"]\"", - "\"{\"", - "\"}\"", - "\"(\"", - "\")\"", - "$start", - "Root", - "Terminator", - "Expressions", - "Expression", - "OptTerminator", - "Literal", - "Value", - "Call", - "Assign", - "Code", - "Operation", - "If", - "Try", - "Throw", - "Return", - "While", - "For", - "Switch", - "Then", - "AssignObj", - "ParamList", - "Array", - "Object", - "Parenthetical", - "Accessor", - "Invocation", - "Index", - "Slice", - "AssignList", - "ArgList", - "Cases", - "Case" ] - -Racc_debug_parser = false - -##### State transition tables end ##### - -# reduce 0 omitted - -module_eval(<<'.,.,', 'grammar.y', 39) - def _reduce_1(val, _values, result) - result = Nodes.new([]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 40) - def _reduce_2(val, _values, result) - result = Nodes.new([]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 41) - def _reduce_3(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 46) - def _reduce_4(val, _values, result) - result = Nodes.new(val) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 47) - def _reduce_5(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 48) - def _reduce_6(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 49) - def _reduce_7(val, _values, result) - result = val[1] - result - end -.,., - -# reduce 8 omitted - -# reduce 9 omitted - -# reduce 10 omitted - -# reduce 11 omitted - -# reduce 12 omitted - -# reduce 13 omitted - -# reduce 14 omitted - -# reduce 15 omitted - -# reduce 16 omitted - -# reduce 17 omitted - -# reduce 18 omitted - -# reduce 19 omitted - -# reduce 20 omitted - -# reduce 21 omitted - -# reduce 22 omitted - -# reduce 23 omitted - -# reduce 24 omitted - -# reduce 25 omitted - -# reduce 26 omitted - -module_eval(<<'.,.,', 'grammar.y', 88) - def _reduce_27(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 89) - def _reduce_28(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 90) - def _reduce_29(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 91) - def _reduce_30(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 92) - def _reduce_31(val, _values, result) - result = LiteralNode.new(true) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 93) - def _reduce_32(val, _values, result) - result = LiteralNode.new(false) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 94) - def _reduce_33(val, _values, result) - result = LiteralNode.new(nil) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 95) - def _reduce_34(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 96) - def _reduce_35(val, _values, result) - result = LiteralNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 101) - def _reduce_36(val, _values, result) - result = AssignNode.new(val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 106) - def _reduce_37(val, _values, result) - result = AssignNode.new(val[0], val[2], :object) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 111) - def _reduce_38(val, _values, result) - result = ReturnNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 118) - def _reduce_39(val, _values, result) - result = OpNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 119) - def _reduce_40(val, _values, result) - result = OpNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 120) - def _reduce_41(val, _values, result) - result = OpNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 123) - def _reduce_42(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 124) - def _reduce_43(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 125) - def _reduce_44(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 127) - def _reduce_45(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 128) - def _reduce_46(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 130) - def _reduce_47(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 131) - def _reduce_48(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 132) - def _reduce_49(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 133) - def _reduce_50(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 135) - def _reduce_51(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 136) - def _reduce_52(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 137) - def _reduce_53(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 138) - def _reduce_54(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 140) - def _reduce_55(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 141) - def _reduce_56(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 142) - def _reduce_57(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 143) - def _reduce_58(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 145) - def _reduce_59(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 146) - def _reduce_60(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 147) - def _reduce_61(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 148) - def _reduce_62(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 149) - def _reduce_63(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 150) - def _reduce_64(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 156) - def _reduce_65(val, _values, result) - result = CodeNode.new(val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 157) - def _reduce_66(val, _values, result) - result = CodeNode.new([], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 161) - def _reduce_67(val, _values, result) - result = val - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 162) - def _reduce_68(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 166) - def _reduce_69(val, _values, result) - result = ValueNode.new(val) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 167) - def _reduce_70(val, _values, result) - result = ValueNode.new(val) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 168) - def _reduce_71(val, _values, result) - result = ValueNode.new(val) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 169) - def _reduce_72(val, _values, result) - result = ValueNode.new(val) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 170) - def _reduce_73(val, _values, result) - result = val[0] << val[1] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 171) - def _reduce_74(val, _values, result) - result = ValueNode.new(val[0], [val[1]]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 175) - def _reduce_75(val, _values, result) - result = AccessorNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 176) - def _reduce_76(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 177) - def _reduce_77(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 181) - def _reduce_78(val, _values, result) - result = IndexNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 185) - def _reduce_79(val, _values, result) - result = SliceNode.new(val[1], val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 189) - def _reduce_80(val, _values, result) - result = ObjectNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 193) - def _reduce_81(val, _values, result) - result = [] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 194) - def _reduce_82(val, _values, result) - result = val - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 195) - def _reduce_83(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 196) - def _reduce_84(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 201) - def _reduce_85(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 202) - def _reduce_86(val, _values, result) - result = val[1].new_instance - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 206) - def _reduce_87(val, _values, result) - result = CallNode.new(val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 211) - def _reduce_88(val, _values, result) - result = ArrayNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 216) - def _reduce_89(val, _values, result) - result = [] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 217) - def _reduce_90(val, _values, result) - result = val - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 218) - def _reduce_91(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 219) - def _reduce_92(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 224) - def _reduce_93(val, _values, result) - result = IfNode.new(val[1], val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 227) - def _reduce_94(val, _values, result) - result = IfNode.new(val[1], val[3], val[5]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 228) - def _reduce_95(val, _values, result) - result = IfNode.new(val[2], Nodes.new([val[0]])) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 229) - def _reduce_96(val, _values, result) - result = IfNode.new(val[2], Nodes.new([val[0]]), nil, :invert) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 234) - def _reduce_97(val, _values, result) - result = TryNode.new(val[1], val[3], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 236) - def _reduce_98(val, _values, result) - result = TryNode.new(val[1], nil, nil, val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 239) - def _reduce_99(val, _values, result) - result = TryNode.new(val[1], val[3], val[4], val[6]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 243) - def _reduce_100(val, _values, result) - result = ThrowNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 247) - def _reduce_101(val, _values, result) - result = ParentheticalNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 252) - def _reduce_102(val, _values, result) - result = WhileNode.new(val[1], val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 257) - def _reduce_103(val, _values, result) - result = ForNode.new(val[0], val[4], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 260) - def _reduce_104(val, _values, result) - result = ForNode.new(val[0], val[6], val[2], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 263) - def _reduce_105(val, _values, result) - result = ForNode.new(IfNode.new(val[6], Nodes.new([val[0]])), val[4], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 267) - def _reduce_106(val, _values, result) - result = ForNode.new(IfNode.new(val[8], Nodes.new([val[0]])), val[6], val[2], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 272) - def _reduce_107(val, _values, result) - result = val[3].rewrite_condition(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 274) - def _reduce_108(val, _values, result) - result = val[3].rewrite_condition(val[1]).add_default(val[5]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 278) - def _reduce_109(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 279) - def _reduce_110(val, _values, result) - result = val[0] << val[1] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 283) - def _reduce_111(val, _values, result) - result = IfNode.new(val[1], val[3]) - result - end -.,., - -def _reduce_none(val, _values, result) - val[0] -end - -end # class Parser diff --git a/lexer_test.rb b/test/lexer_test.rb similarity index 100% rename from lexer_test.rb rename to test/lexer_test.rb diff --git a/parser_test.rb b/test/parser_test.rb similarity index 100% rename from parser_test.rb rename to test/parser_test.rb