diff options
Diffstat (limited to 'tool/lrama/lib/lrama/parser.rb')
-rw-r--r-- | tool/lrama/lib/lrama/parser.rb | 1431 |
1 files changed, 651 insertions, 780 deletions
diff --git a/tool/lrama/lib/lrama/parser.rb b/tool/lrama/lib/lrama/parser.rb index 24db131c70..6a35dba290 100644 --- a/tool/lrama/lib/lrama/parser.rb +++ b/tool/lrama/lib/lrama/parser.rb @@ -1,6 +1,6 @@ # # DO NOT MODIFY!!!! -# This file is automatically generated by Racc 1.7.3 +# This file is automatically generated by Racc 1.8.1 # from Racc grammar file "parser.y". # @@ -23,7 +23,7 @@ unless $".find {|p| p.end_with?('/racc/info.rb')} $".push "#{__dir__}/racc/info.rb" module Racc - VERSION = '1.7.3' + VERSION = '1.8.1' Version = VERSION Copyright = 'Copyright (c) 1999-2006 Minero Aoki' end @@ -31,10 +31,6 @@ end end -unless defined?(NotImplementedError) - NotImplementedError = NotImplementError # :nodoc: -end - module Racc class ParseError < StandardError; end end @@ -42,7 +38,7 @@ unless defined?(::ParseError) ParseError = Racc::ParseError # :nodoc: end -# Racc is a LALR(1) parser generator. +# Racc is an LALR(1) parser generator. # It is written in Ruby itself, and generates Ruby programs. # # == Command-line Reference @@ -658,7 +654,7 @@ end module Lrama class Parser < Racc::Parser -module_eval(<<'...end parser.y/module_eval...', 'parser.y', 536) +module_eval(<<'...end parser.y/module_eval...', 'parser.y', 417) include Lrama::Report::Duration @@ -732,322 +728,297 @@ end ##### State transition tables begin ### racc_action_table = [ - 98, 51, 99, 163, 88, 79, 51, 51, 179, 163, - 79, 79, 51, 162, 179, 156, 79, 165, 157, 51, - 3, 50, 180, 165, 70, 51, 8, 50, 180, 79, - 75, 51, 6, 50, 7, 161, 82, 47, 51, 51, - 50, 50, 89, 82, 82, 166, 41, 51, 100, 50, - 181, 166, 82, 51, 48, 50, 181, 23, 25, 26, + 94, 48, 95, 166, 48, 77, 172, 48, 77, 166, + 48, 77, 172, 48, 77, 47, 6, 85, 69, 48, + 48, 47, 47, 77, 74, 81, 48, 48, 47, 47, + 40, 81, 81, 48, 41, 47, 92, 48, 81, 47, + 44, 77, 103, 168, 169, 45, 175, 169, 96, 168, + 169, 52, 175, 169, 86, 20, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 92, 48, 4, 47, 5, 77, 103, 48, 48, + 47, 47, 77, 103, 116, 48, 4, 47, 5, 77, + 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 52, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 47, 51, 51, 50, 50, 93, 79, 196, - 51, 51, 50, 50, 79, 196, 51, 51, 50, 50, - 79, 196, 23, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 9, 51, 54, - 50, 14, 15, 16, 17, 18, 19, 54, 54, 20, - 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 51, 51, - 50, 50, 79, 196, 51, 51, 50, 50, 79, 196, - 51, 51, 50, 50, 79, 196, 51, 51, 50, 50, - 79, 79, 51, 51, 50, 50, 79, 79, 51, 51, - 50, 50, 79, 79, 51, 51, 50, 206, 79, 79, - 51, 51, 206, 206, 79, 79, 51, 51, 50, 50, - 79, 186, 187, 188, 96, 186, 187, 188, 96, 216, - 220, 227, 217, 217, 217, 51, 51, 50, 50, 186, - 187, 188, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 90, 94, 96, 101, 101, 101, 103, - 109, 113, 114, 117, 117, 117, 117, 120, 47, 124, - 125, 127, 129, 130, 131, 132, 133, 136, 140, 141, - 142, 143, 146, 147, 148, 150, 160, 168, 170, 171, - 172, 173, 174, 175, 176, 177, 146, 183, 191, 192, - 160, 160, 203, 210, 211, 177, 214, 215, 210, 225, - 226, 96, 96, 210 ] + 37, 38, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 43, 20, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 48, 48, + 47, 47, 77, 103, 48, 48, 47, 47, 77, 77, + 48, 48, 47, 47, 77, 77, 48, 48, 196, 196, + 77, 77, 48, 48, 47, 196, 77, 77, 148, 170, + 52, 149, 149, 180, 181, 182, 131, 180, 181, 182, + 131, 203, 208, 215, 204, 204, 204, 48, 48, 47, + 47, 48, 48, 47, 47, 48, 48, 47, 47, 180, + 181, 182, 119, 120, 55, 52, 52, 52, 52, 52, + 61, 62, 63, 64, 65, 87, 52, 52, 106, 109, + 111, 118, 125, 126, 128, 131, 132, 77, 140, 141, + 142, 143, 145, 146, 153, 140, 155, 153, 159, 160, + 161, 163, 164, 171, 176, 153, 183, 131, 187, 153, + 189, 131, 153, 198, 153, 131, 161, 164, 205, 164, + 161, 161, 213, 131, 161 ] racc_action_check = [ - 49, 145, 49, 145, 39, 145, 159, 182, 159, 182, - 159, 182, 200, 144, 200, 139, 200, 145, 139, 33, - 1, 33, 159, 182, 33, 34, 3, 34, 200, 34, - 34, 35, 2, 35, 2, 144, 35, 9, 36, 37, - 36, 37, 39, 36, 37, 145, 7, 38, 49, 38, - 159, 182, 38, 15, 14, 15, 200, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 42, 69, 172, 69, 172, 42, 172, 172, - 173, 70, 173, 70, 173, 173, 174, 81, 174, 81, - 174, 174, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 4, 82, 16, - 82, 4, 4, 4, 4, 4, 4, 17, 18, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 193, 109, - 193, 109, 193, 193, 197, 111, 197, 111, 197, 197, - 198, 117, 198, 117, 198, 198, 74, 75, 74, 75, - 74, 75, 114, 116, 114, 116, 114, 116, 137, 166, - 137, 166, 137, 166, 181, 183, 181, 183, 181, 183, - 203, 215, 203, 215, 203, 215, 217, 119, 217, 119, - 217, 164, 164, 164, 164, 178, 178, 178, 178, 207, - 213, 222, 207, 213, 222, 134, 138, 134, 138, 208, - 208, 208, 19, 20, 23, 25, 26, 27, 28, 29, - 30, 31, 32, 40, 45, 46, 53, 55, 56, 57, - 68, 72, 73, 80, 85, 86, 87, 88, 89, 95, - 96, 102, 104, 105, 106, 107, 108, 112, 120, 121, - 122, 123, 124, 125, 126, 128, 141, 149, 151, 152, - 153, 154, 155, 156, 157, 158, 161, 163, 167, 169, - 175, 177, 179, 185, 189, 199, 204, 206, 216, 219, - 221, 225, 226, 228 ] + 46, 151, 46, 151, 157, 151, 157, 177, 157, 177, + 188, 177, 188, 32, 188, 32, 1, 38, 32, 33, + 34, 33, 34, 33, 33, 34, 35, 36, 35, 36, + 5, 35, 36, 37, 6, 37, 44, 58, 37, 58, + 9, 58, 58, 151, 151, 11, 157, 157, 46, 177, + 177, 13, 188, 188, 38, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 88, 59, 0, 59, 0, 59, 59, 60, 79, + 60, 79, 60, 60, 79, 72, 2, 72, 2, 72, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 14, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 100, 12, + 100, 12, 100, 100, 74, 111, 74, 111, 74, 111, + 168, 175, 168, 175, 168, 175, 183, 189, 183, 189, + 183, 189, 204, 205, 204, 205, 204, 205, 139, 154, + 15, 139, 154, 165, 165, 165, 165, 173, 173, 173, + 173, 195, 200, 212, 195, 200, 212, 67, 69, 67, + 69, 81, 106, 81, 106, 114, 116, 114, 116, 197, + 197, 197, 86, 86, 16, 17, 20, 24, 25, 26, + 27, 28, 29, 30, 31, 39, 50, 55, 66, 70, + 71, 85, 89, 90, 91, 92, 98, 110, 118, 119, + 120, 121, 130, 131, 141, 142, 144, 145, 146, 147, + 148, 149, 150, 156, 162, 164, 166, 167, 170, 171, + 172, 174, 176, 186, 187, 191, 192, 194, 196, 199, + 201, 203, 207, 208, 214 ] racc_action_pointer = [ - nil, 20, 22, 26, 98, nil, nil, 39, nil, 33, - nil, nil, nil, nil, 48, 50, 90, 98, 99, 207, - 194, nil, nil, 195, nil, 196, 197, 198, 213, 214, - 215, 216, 217, 16, 22, 28, 35, 36, 44, -1, - 221, nil, 68, nil, nil, 201, 174, nil, nil, -5, - nil, nil, nil, 207, nil, 208, 209, 210, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 222, 70, - 78, nil, 225, 224, 153, 154, nil, nil, nil, nil, - 225, 84, 105, nil, nil, 226, 227, 228, 197, 234, - nil, nil, nil, nil, nil, 197, 235, nil, nil, nil, - nil, nil, 239, nil, 240, 241, 242, 243, 244, 136, - nil, 142, 240, nil, 159, nil, 160, 148, nil, 184, - 243, 207, 239, 249, 206, 201, 252, nil, 253, nil, - nil, nil, nil, nil, 202, nil, nil, 165, 203, -26, - nil, 210, nil, nil, -10, -2, nil, nil, nil, 237, - nil, 238, 239, 240, 241, 242, 221, 259, 220, 3, - nil, 220, nil, 227, 143, nil, 166, 248, nil, 249, - nil, nil, 71, 77, 83, 224, nil, 225, 147, 232, - nil, 171, 4, 172, nil, 265, nil, nil, nil, 272, - nil, nil, nil, 135, nil, nil, nil, 141, 147, 230, - 9, nil, nil, 177, 274, nil, 237, 158, 161, nil, - nil, nil, nil, 159, nil, 178, 270, 183, nil, 259, - nil, 260, 160, nil, nil, 230, 231, nil, 275, nil, - nil ] + 63, 16, 76, 93, nil, 23, 34, nil, 119, 31, + nil, 39, 156, 5, 69, 144, 219, 179, nil, nil, + 180, nil, nil, nil, 181, 182, 183, 225, 226, 227, + 228, 229, 10, 16, 17, 23, 24, 30, 12, 233, + nil, nil, nil, nil, 32, nil, -5, nil, nil, nil, + 190, nil, nil, nil, nil, 191, nil, nil, 34, 69, + 75, nil, nil, nil, nil, nil, 230, 204, nil, 205, + 233, 232, 82, nil, 161, nil, nil, nil, nil, 76, + nil, 208, nil, nil, nil, 202, 218, nil, 67, 233, + 221, 222, 194, nil, nil, nil, nil, nil, 244, nil, + 155, nil, nil, nil, nil, nil, 209, nil, nil, nil, + 240, 162, nil, nil, 212, nil, 213, nil, 243, 208, + 211, 240, nil, nil, nil, nil, nil, nil, nil, nil, + 211, 248, nil, nil, nil, nil, nil, nil, nil, 148, + nil, 200, 250, nil, 254, 203, 206, 212, 252, 256, + 218, -2, nil, nil, 149, nil, 219, 1, nil, nil, + nil, nil, 223, nil, 211, 145, 227, 216, 167, nil, + 227, 215, 231, 149, 220, 168, 218, 4, nil, nil, + nil, nil, nil, 173, nil, nil, 271, 220, 7, 174, + nil, 224, 268, nil, 233, 161, 239, 171, nil, 235, + 162, 272, nil, 273, 179, 180, nil, 235, 232, nil, + nil, nil, 163, nil, 276, nil, nil ] racc_action_default = [ - -2, -138, -8, -138, -138, -3, -4, -138, 231, -138, - -9, -10, -11, -12, -138, -138, -138, -138, -138, -138, - -138, -24, -25, -138, -29, -138, -138, -138, -138, -138, - -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, - -138, -7, -123, -96, -98, -138, -120, -122, -13, -127, - -94, -95, -126, -15, -85, -16, -17, -138, -21, -26, - -30, -33, -36, -39, -40, -41, -42, -43, -44, -50, - -138, -53, -71, -45, -75, -138, -78, -80, -81, -135, - -46, -88, -138, -91, -93, -47, -48, -49, -138, -138, - -5, -1, -97, -124, -99, -138, -138, -14, -128, -129, - -130, -82, -138, -18, -138, -138, -138, -138, -138, -138, - -54, -51, -73, -72, -138, -79, -76, -138, -92, -89, - -138, -138, -138, -138, -104, -138, -138, -86, -138, -22, - -27, -31, -34, -37, -52, -55, -74, -77, -90, -138, - -58, -62, -6, -125, -100, -101, -105, -121, -83, -138, - -19, -138, -138, -138, -138, -138, -138, -138, -57, -60, - -63, -104, -103, -94, -120, -109, -138, -138, -87, -138, - -23, -28, -138, -138, -138, -62, -59, -62, -120, -94, - -67, -138, -102, -138, -106, -136, -113, -114, -115, -138, - -112, -84, -20, -32, -131, -133, -134, -35, -38, -56, - -61, -64, -65, -138, -138, -70, -94, -138, -116, -107, - -137, -110, -132, -138, -68, -138, -136, -138, -118, -138, - -66, -138, -138, -108, -117, -120, -120, -119, -136, -69, - -111 ] + -1, -127, -1, -3, -10, -127, -127, -2, -3, -127, + -16, -127, -127, -127, -127, -127, -127, -127, -24, -25, + -127, -30, -31, -32, -127, -127, -127, -127, -127, -127, + -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, + -13, 217, -4, -26, -127, -17, -118, -89, -90, -117, + -14, -19, -81, -20, -21, -127, -23, -29, -127, -127, + -127, -36, -37, -38, -39, -40, -41, -47, -49, -127, + -52, -42, -74, -76, -127, -79, -80, -126, -43, -84, + -86, -127, -44, -45, -46, -127, -127, -11, -5, -7, + -91, -127, -64, -18, -119, -120, -121, -15, -127, -22, + -27, -33, -122, -123, -34, -35, -127, -48, -50, -53, + -72, -127, -75, -77, -84, -85, -127, -87, -127, -127, + -127, -127, -6, -8, -9, -115, -92, -93, -94, -65, + -127, -127, -82, -28, -51, -54, -73, -78, -88, -127, + -60, -124, -127, -12, -127, -124, -127, -127, -55, -127, + -58, -62, -66, -125, -127, -116, -95, -96, -98, -114, + -83, -56, -127, -61, -124, -64, -89, -64, -127, -111, + -127, -124, -89, -64, -64, -127, -124, -63, -67, -68, + -104, -105, -106, -127, -70, -71, -127, -124, -97, -127, + -99, -64, -55, -103, -57, -127, -89, -107, -112, -59, + -127, -55, -102, -55, -127, -127, -109, -127, -64, -100, + -69, -108, -127, -113, -55, -110, -101 ] racc_goto_table = [ - 76, 74, 69, 52, 209, 95, 110, 118, 185, 145, - 158, 207, 1, 2, 119, 212, 4, 43, 42, 212, - 212, 72, 202, 84, 84, 84, 84, 80, 85, 86, - 87, 213, 53, 55, 56, 223, 193, 197, 198, 111, - 115, 76, 116, 222, 199, 118, 182, 230, 110, 138, - 92, 91, 218, 5, 40, 122, 10, 72, 72, 11, - 12, 13, 49, 97, 118, 128, 169, 104, 151, 84, - 84, 110, 105, 152, 106, 153, 107, 154, 134, 108, - 76, 137, 115, 155, 68, 73, 112, 135, 139, 121, - 200, 204, 221, 126, 167, 102, 149, 72, 144, 72, - 189, 219, 123, 115, nil, 84, nil, 84, nil, nil, - nil, 164, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 72, 184, nil, 178, 84, nil, nil, nil, - nil, nil, 190, nil, nil, nil, nil, 201, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 205, 164, 208, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 178, nil, nil, 208, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 208, nil, 224, 228, 229 ] + 102, 102, 102, 49, 130, 73, 68, 89, 162, 91, + 150, 139, 101, 104, 105, 1, 9, 174, 51, 53, + 54, 42, 115, 70, 117, 79, 79, 79, 79, 56, + 123, 3, 57, 7, 124, 154, 58, 59, 60, 179, + 158, 107, 102, 108, 112, 194, 113, 191, 174, 157, + 39, 122, 202, 91, 133, 97, 199, 115, 70, 138, + 70, 209, 195, 210, 121, 46, 158, 99, 200, 93, + 114, 206, 114, 66, 216, 188, 71, 178, 135, 184, + 134, 110, 177, 137, 212, 190, 192, 78, 82, 83, + 84, 136, 98, 165, 147, 127, 156, 70, 186, 173, + 207, 144, nil, 201, nil, 114, nil, 114, nil, nil, + 185, nil, nil, nil, nil, nil, nil, 193, nil, 165, + 214, nil, nil, nil, nil, 197, nil, nil, nil, nil, + 173, 197, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 211, 197 ] racc_goto_check = [ - 42, 48, 33, 35, 60, 43, 34, 55, 44, 59, - 39, 45, 1, 2, 54, 64, 3, 56, 4, 64, - 64, 35, 44, 35, 35, 35, 35, 32, 32, 32, - 32, 45, 15, 15, 15, 60, 21, 21, 21, 33, - 42, 42, 48, 45, 39, 55, 59, 60, 34, 54, - 56, 5, 44, 6, 7, 8, 9, 35, 35, 10, - 11, 12, 13, 14, 55, 16, 17, 18, 19, 35, - 35, 34, 22, 23, 24, 25, 26, 27, 33, 28, - 42, 48, 42, 29, 30, 31, 36, 37, 38, 40, - 41, 46, 47, 50, 51, 52, 53, 35, 58, 35, - 61, 62, 63, 42, nil, 35, nil, 35, nil, nil, - nil, 42, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 35, 43, nil, 42, 35, nil, nil, nil, - nil, nil, 42, nil, nil, nil, nil, 43, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 42, 42, 42, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 42, nil, nil, 42, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 42, nil, 42, 43, 43 ] + 35, 35, 35, 27, 40, 42, 26, 8, 32, 12, + 31, 30, 21, 21, 21, 1, 7, 39, 16, 16, + 16, 7, 45, 27, 45, 27, 27, 27, 27, 15, + 5, 6, 15, 6, 9, 30, 15, 15, 15, 37, + 34, 26, 35, 26, 42, 31, 42, 37, 39, 49, + 10, 8, 32, 12, 21, 16, 31, 45, 27, 45, + 27, 32, 38, 32, 11, 13, 34, 15, 38, 14, + 27, 37, 27, 22, 32, 49, 23, 40, 28, 40, + 26, 29, 33, 42, 38, 40, 40, 24, 24, 24, + 24, 41, 43, 35, 44, 47, 48, 27, 50, 35, + 51, 52, nil, 40, nil, 27, nil, 27, nil, nil, + 35, nil, nil, nil, nil, nil, nil, 35, nil, 35, + 40, nil, nil, nil, nil, 35, nil, nil, nil, nil, + 35, 35, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 35, 35 ] racc_goto_pointer = [ - nil, 12, 13, 14, 9, 9, 51, 48, -35, 52, - 55, 56, 57, 47, 14, 16, -38, -84, 9, -61, - nil, -136, 13, -57, 14, -56, 15, -55, 17, -50, - 51, 51, -8, -31, -63, -12, 14, -25, -32, -131, - 0, -87, -34, -41, -156, -172, -89, -122, -33, nil, - -8, -54, 41, -31, -68, -74, 8, nil, -26, -115, - -181, -65, -110, 9, -178 ] + nil, 15, nil, nil, nil, -59, 31, 13, -37, -55, + 46, -23, -35, 53, 23, 12, 5, nil, nil, nil, + nil, -46, 41, 43, 53, nil, -26, -9, -32, 11, + -107, -131, -140, -82, -105, -58, nil, -126, -121, -140, + -88, -19, -28, 40, -38, -57, nil, 5, -49, -96, + -71, -98, -24 ] racc_goto_default = [ - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 45, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 24, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 71, 77, nil, nil, nil, nil, - 46, 159, 195, nil, nil, nil, nil, nil, nil, 78, - nil, nil, nil, nil, 81, 83, nil, 44, nil, nil, - nil, nil, nil, nil, 194 ] + nil, nil, 2, 8, 88, nil, nil, nil, nil, nil, + nil, nil, 10, nil, nil, 50, nil, 21, 22, 23, + 100, nil, nil, nil, nil, 67, nil, 75, nil, nil, + nil, nil, nil, 151, 152, 72, 129, nil, nil, 167, + nil, 76, nil, nil, nil, 80, 90, nil, nil, nil, + nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 5, 55, :_reduce_none, - 0, 56, :_reduce_none, - 2, 56, :_reduce_none, - 0, 61, :_reduce_4, - 0, 62, :_reduce_5, - 5, 60, :_reduce_6, - 2, 60, :_reduce_none, - 0, 57, :_reduce_8, - 2, 57, :_reduce_none, - 1, 63, :_reduce_none, - 1, 63, :_reduce_none, - 1, 63, :_reduce_none, - 2, 63, :_reduce_13, - 3, 63, :_reduce_none, - 2, 63, :_reduce_none, - 2, 63, :_reduce_16, - 2, 63, :_reduce_17, - 0, 70, :_reduce_18, - 0, 71, :_reduce_19, - 7, 63, :_reduce_20, - 0, 72, :_reduce_21, - 0, 73, :_reduce_22, - 6, 63, :_reduce_23, - 1, 63, :_reduce_24, - 1, 63, :_reduce_none, - 0, 76, :_reduce_26, - 0, 77, :_reduce_27, - 6, 64, :_reduce_28, + 0, 61, :_reduce_1, + 2, 61, :_reduce_2, + 0, 62, :_reduce_3, + 2, 62, :_reduce_4, + 1, 63, :_reduce_5, + 2, 63, :_reduce_6, + 0, 64, :_reduce_none, 1, 64, :_reduce_none, - 0, 78, :_reduce_30, - 0, 79, :_reduce_31, - 7, 64, :_reduce_32, - 0, 80, :_reduce_33, - 0, 81, :_reduce_34, - 7, 64, :_reduce_35, - 0, 82, :_reduce_36, - 0, 83, :_reduce_37, - 7, 64, :_reduce_38, - 2, 64, :_reduce_39, - 2, 64, :_reduce_40, - 2, 64, :_reduce_41, - 2, 64, :_reduce_42, - 2, 64, :_reduce_43, - 2, 74, :_reduce_none, - 2, 74, :_reduce_45, - 2, 74, :_reduce_46, - 2, 74, :_reduce_47, - 2, 74, :_reduce_48, - 2, 74, :_reduce_49, - 1, 84, :_reduce_50, - 2, 84, :_reduce_51, - 3, 84, :_reduce_52, - 1, 87, :_reduce_53, - 2, 87, :_reduce_54, - 3, 88, :_reduce_55, - 7, 65, :_reduce_56, - 5, 66, :_reduce_57, - 1, 92, :_reduce_58, - 3, 92, :_reduce_59, - 1, 93, :_reduce_60, - 3, 93, :_reduce_61, - 0, 95, :_reduce_62, - 1, 95, :_reduce_63, - 3, 95, :_reduce_64, - 3, 95, :_reduce_65, - 5, 95, :_reduce_66, - 0, 100, :_reduce_67, - 0, 101, :_reduce_68, - 7, 95, :_reduce_69, - 3, 95, :_reduce_70, - 0, 90, :_reduce_none, - 1, 90, :_reduce_none, - 0, 91, :_reduce_none, - 1, 91, :_reduce_none, - 1, 85, :_reduce_75, - 2, 85, :_reduce_76, - 3, 85, :_reduce_77, - 1, 102, :_reduce_78, - 2, 102, :_reduce_79, - 1, 96, :_reduce_none, - 1, 96, :_reduce_none, - 0, 104, :_reduce_82, - 0, 105, :_reduce_83, - 6, 69, :_reduce_84, - 0, 106, :_reduce_85, - 0, 107, :_reduce_86, - 5, 69, :_reduce_87, - 1, 86, :_reduce_88, - 2, 86, :_reduce_89, - 3, 86, :_reduce_90, - 1, 108, :_reduce_91, - 2, 108, :_reduce_92, - 1, 109, :_reduce_none, - 1, 89, :_reduce_94, - 1, 89, :_reduce_95, + 5, 56, :_reduce_none, + 0, 65, :_reduce_10, + 0, 66, :_reduce_11, + 5, 57, :_reduce_12, + 2, 57, :_reduce_none, + 1, 71, :_reduce_14, + 2, 71, :_reduce_15, 1, 58, :_reduce_none, + 2, 58, :_reduce_17, + 3, 58, :_reduce_none, + 2, 58, :_reduce_none, + 2, 58, :_reduce_20, + 2, 58, :_reduce_21, + 3, 58, :_reduce_22, + 2, 58, :_reduce_23, + 1, 58, :_reduce_24, + 1, 58, :_reduce_25, 2, 58, :_reduce_none, - 1, 110, :_reduce_none, - 2, 110, :_reduce_none, - 4, 111, :_reduce_100, - 1, 112, :_reduce_101, - 3, 112, :_reduce_102, - 2, 112, :_reduce_none, - 0, 113, :_reduce_104, - 1, 113, :_reduce_105, - 3, 113, :_reduce_106, - 4, 113, :_reduce_107, - 6, 113, :_reduce_108, - 0, 115, :_reduce_109, - 0, 116, :_reduce_110, - 8, 113, :_reduce_111, - 3, 113, :_reduce_112, - 1, 98, :_reduce_113, - 1, 98, :_reduce_114, - 1, 98, :_reduce_115, - 1, 99, :_reduce_116, - 3, 99, :_reduce_117, - 2, 99, :_reduce_118, - 4, 99, :_reduce_119, - 0, 97, :_reduce_none, - 3, 97, :_reduce_121, - 1, 94, :_reduce_none, - 0, 59, :_reduce_none, - 0, 117, :_reduce_124, - 3, 59, :_reduce_125, + 1, 76, :_reduce_27, + 2, 76, :_reduce_28, + 2, 67, :_reduce_29, 1, 67, :_reduce_none, - 0, 68, :_reduce_none, - 1, 68, :_reduce_none, - 1, 68, :_reduce_none, + 1, 67, :_reduce_none, + 1, 67, :_reduce_none, + 3, 67, :_reduce_33, + 3, 67, :_reduce_34, + 3, 67, :_reduce_35, + 2, 67, :_reduce_36, + 2, 67, :_reduce_37, + 2, 67, :_reduce_38, + 2, 67, :_reduce_39, + 2, 67, :_reduce_40, + 2, 72, :_reduce_none, + 2, 72, :_reduce_42, + 2, 72, :_reduce_43, + 2, 72, :_reduce_44, + 2, 72, :_reduce_45, + 2, 72, :_reduce_46, + 1, 81, :_reduce_47, + 2, 81, :_reduce_48, + 1, 77, :_reduce_49, + 2, 77, :_reduce_50, + 3, 77, :_reduce_51, + 0, 84, :_reduce_none, + 1, 84, :_reduce_none, + 3, 80, :_reduce_54, + 0, 87, :_reduce_none, + 1, 87, :_reduce_none, + 8, 73, :_reduce_57, + 5, 74, :_reduce_58, + 8, 74, :_reduce_59, + 1, 85, :_reduce_60, + 3, 85, :_reduce_61, + 1, 86, :_reduce_62, + 3, 86, :_reduce_63, + 0, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 88, :_reduce_66, + 3, 88, :_reduce_67, + 3, 88, :_reduce_68, + 6, 88, :_reduce_69, + 3, 88, :_reduce_70, + 3, 88, :_reduce_71, + 0, 83, :_reduce_none, + 1, 83, :_reduce_73, + 1, 97, :_reduce_74, + 2, 97, :_reduce_75, + 1, 78, :_reduce_76, + 2, 78, :_reduce_77, + 3, 78, :_reduce_78, + 1, 90, :_reduce_none, + 1, 90, :_reduce_none, + 0, 98, :_reduce_81, + 0, 99, :_reduce_82, + 5, 70, :_reduce_83, + 1, 100, :_reduce_84, + 2, 100, :_reduce_85, + 1, 79, :_reduce_86, + 2, 79, :_reduce_87, + 3, 79, :_reduce_88, + 1, 82, :_reduce_89, + 1, 82, :_reduce_90, + 0, 102, :_reduce_none, + 1, 102, :_reduce_none, + 2, 59, :_reduce_none, + 2, 59, :_reduce_none, + 4, 101, :_reduce_95, + 1, 103, :_reduce_96, + 3, 103, :_reduce_97, + 1, 104, :_reduce_98, + 3, 104, :_reduce_99, + 5, 104, :_reduce_100, + 7, 104, :_reduce_101, + 4, 104, :_reduce_102, + 3, 104, :_reduce_103, + 1, 92, :_reduce_104, + 1, 92, :_reduce_105, + 1, 92, :_reduce_106, + 1, 93, :_reduce_107, + 3, 93, :_reduce_108, + 2, 93, :_reduce_109, + 4, 93, :_reduce_110, + 0, 105, :_reduce_111, + 0, 106, :_reduce_112, + 5, 94, :_reduce_113, + 3, 91, :_reduce_114, + 0, 107, :_reduce_115, + 3, 60, :_reduce_116, 1, 68, :_reduce_none, - 1, 75, :_reduce_131, - 2, 75, :_reduce_132, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 103, :_reduce_135, - 0, 114, :_reduce_none, - 1, 114, :_reduce_none ] + 0, 69, :_reduce_none, + 1, 69, :_reduce_none, + 1, 69, :_reduce_none, + 1, 69, :_reduce_none, + 1, 75, :_reduce_none, + 1, 75, :_reduce_none, + 0, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 96, :_reduce_126 ] -racc_reduce_n = 138 +racc_reduce_n = 127 -racc_shift_n = 231 +racc_shift_n = 217 racc_token_table = { false => 0, @@ -1069,43 +1040,44 @@ racc_token_table = { "%lex-param" => 16, "%parse-param" => 17, "%code" => 18, - "{" => 19, - "}" => 20, - "%initial-action" => 21, - "%no-stdlib" => 22, - ";" => 23, - "%union" => 24, - "%destructor" => 25, - "%printer" => 26, - "%error-token" => 27, - "%after-shift" => 28, - "%before-reduce" => 29, - "%after-reduce" => 30, - "%after-shift-error-token" => 31, - "%after-pop-stack" => 32, - "%token" => 33, - "%type" => 34, - "%left" => 35, - "%right" => 36, - "%precedence" => 37, - "%nonassoc" => 38, - "%rule" => 39, - "(" => 40, - ")" => 41, - ":" => 42, - "%inline" => 43, - "," => 44, - "|" => 45, - "%empty" => 46, - "%prec" => 47, + "%initial-action" => 19, + "%no-stdlib" => 20, + "%locations" => 21, + ";" => 22, + "%union" => 23, + "%destructor" => 24, + "%printer" => 25, + "%error-token" => 26, + "%after-shift" => 27, + "%before-reduce" => 28, + "%after-reduce" => 29, + "%after-shift-error-token" => 30, + "%after-pop-stack" => 31, + "%token" => 32, + "%type" => 33, + "%left" => 34, + "%right" => 35, + "%precedence" => 36, + "%nonassoc" => 37, + "%rule" => 38, + "(" => 39, + ")" => 40, + ":" => 41, + "%inline" => 42, + "," => 43, + "|" => 44, + "%prec" => 45, + "{" => 46, + "}" => 47, "?" => 48, "+" => 49, "*" => 50, "[" => 51, "]" => 52, - "{...}" => 53 } + "{...}" => 53, + "%empty" => 54 } -racc_nt_base = 54 +racc_nt_base = 55 racc_use_result_var = true @@ -1146,10 +1118,9 @@ Racc_token_to_s_table = [ "\"%lex-param\"", "\"%parse-param\"", "\"%code\"", - "\"{\"", - "\"}\"", "\"%initial-action\"", "\"%no-stdlib\"", + "\"%locations\"", "\";\"", "\"%union\"", "\"%destructor\"", @@ -1173,79 +1144,69 @@ Racc_token_to_s_table = [ "\"%inline\"", "\",\"", "\"|\"", - "\"%empty\"", "\"%prec\"", + "\"{\"", + "\"}\"", "\"?\"", "\"+\"", "\"*\"", "\"[\"", "\"]\"", "\"{...}\"", + "\"%empty\"", "$start", "input", - "prologue_declarations", - "bison_declarations", - "grammar", - "epilogue_opt", "prologue_declaration", + "bison_declaration", + "rules_or_grammar_declaration", + "epilogue_declaration", + "\"-many@prologue_declaration\"", + "\"-many@bison_declaration\"", + "\"-many1@rules_or_grammar_declaration\"", + "\"-option@epilogue_declaration\"", "@1", "@2", - "bison_declaration", "grammar_declaration", - "rule_declaration", - "inline_declaration", "variable", "value", - "params", - "@3", - "@4", - "@5", - "@6", + "param", + "\"-many1@param\"", "symbol_declaration", - "generic_symlist", - "@7", - "@8", - "@9", - "@10", - "@11", - "@12", - "@13", - "@14", + "rule_declaration", + "inline_declaration", + "generic_symbol", + "\"-many1@generic_symbol\"", "token_declarations", "symbol_declarations", "token_declarations_for_precedence", - "token_declaration_list", "token_declaration", + "\"-many1@token_declaration\"", "id", - "int_opt", "alias", + "\"-option@INTEGER\"", "rule_args", "rule_rhs_list", - "id_colon", + "\"-option@TAG\"", "rule_rhs", + "empty", "symbol", - "named_ref_opt", + "named_ref", "parameterizing_suffix", "parameterizing_args", - "@15", - "@16", - "symbol_declaration_list", + "midrule_action", + "\"-option@named_ref\"", "string_as_id", - "@17", - "@18", - "@19", - "@20", - "token_declaration_list_for_precedence", - "token_declaration_for_precedence", - "rules_or_grammar_declaration", + "\"-many1@symbol\"", + "@3", + "@4", + "\"-many1@id\"", "rules", + "\"-option@;\"", "rhs_list", "rhs", - "tag_opt", - "@21", - "@22", - "@23", - "generic_symlist_item" ] + "@5", + "@6", + "@7" ] Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor) Racc_debug_parser = true @@ -1254,299 +1215,271 @@ Racc_debug_parser = true # reduce 0 omitted -# reduce 1 omitted +module_eval(<<'.,.,', 'parser.y', 11) + def _reduce_1(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., -# reduce 2 omitted +module_eval(<<'.,.,', 'parser.y', 11) + def _reduce_2(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., -# reduce 3 omitted +module_eval(<<'.,.,', 'parser.y', 11) + def _reduce_3(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., -module_eval(<<'.,.,', 'parser.y', 14) +module_eval(<<'.,.,', 'parser.y', 11) def _reduce_4(val, _values, result) - begin_c_declaration("%}") - @grammar.prologue_first_lineno = @lexer.line - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 19) +module_eval(<<'.,.,', 'parser.y', 11) def _reduce_5(val, _values, result) - end_c_declaration - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 23) +module_eval(<<'.,.,', 'parser.y', 11) def _reduce_6(val, _values, result) - @grammar.prologue = val[2].s_value - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., # reduce 7 omitted -module_eval(<<'.,.,', 'parser.y', 27) - def _reduce_8(val, _values, result) - result = "" - result - end -.,., +# reduce 8 omitted # reduce 9 omitted -# reduce 10 omitted - -# reduce 11 omitted - -# reduce 12 omitted +module_eval(<<'.,.,', 'parser.y', 12) + def _reduce_10(val, _values, result) + begin_c_declaration("%}") + @grammar.prologue_first_lineno = @lexer.line -module_eval(<<'.,.,', 'parser.y', 33) - def _reduce_13(val, _values, result) - @grammar.expect = val[1] result end .,., -# reduce 14 omitted - -# reduce 15 omitted - -module_eval(<<'.,.,', 'parser.y', 38) - def _reduce_16(val, _values, result) - val[1].each {|token| - @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value - } +module_eval(<<'.,.,', 'parser.y', 17) + def _reduce_11(val, _values, result) + end_c_declaration result end .,., -module_eval(<<'.,.,', 'parser.y', 44) - def _reduce_17(val, _values, result) - val[1].each {|token| - @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value - } +module_eval(<<'.,.,', 'parser.y', 21) + def _reduce_12(val, _values, result) + @grammar.prologue = val[2].s_value result end .,., -module_eval(<<'.,.,', 'parser.y', 50) - def _reduce_18(val, _values, result) - begin_c_declaration("}") +# reduce 13 omitted +module_eval(<<'.,.,', 'parser.y', 54) + def _reduce_14(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val result end .,., module_eval(<<'.,.,', 'parser.y', 54) - def _reduce_19(val, _values, result) - end_c_declaration + def _reduce_15(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., + +# reduce 16 omitted +module_eval(<<'.,.,', 'parser.y', 26) + def _reduce_17(val, _values, result) + @grammar.expect = val[1] result end .,., -module_eval(<<'.,.,', 'parser.y', 58) +# reduce 18 omitted + +# reduce 19 omitted + +module_eval(<<'.,.,', 'parser.y', 31) def _reduce_20(val, _values, result) - @grammar.add_percent_code(id: val[1], code: val[4]) + val[1].each {|token| + @grammar.lex_param = Grammar::Code::NoReferenceCode.new(type: :lex_param, token_code: token).token_code.s_value + } result end .,., -module_eval(<<'.,.,', 'parser.y', 62) +module_eval(<<'.,.,', 'parser.y', 37) def _reduce_21(val, _values, result) - begin_c_declaration("}") + val[1].each {|token| + @grammar.parse_param = Grammar::Code::NoReferenceCode.new(type: :parse_param, token_code: token).token_code.s_value + } result end .,., -module_eval(<<'.,.,', 'parser.y', 66) +module_eval(<<'.,.,', 'parser.y', 43) def _reduce_22(val, _values, result) - end_c_declaration + @grammar.add_percent_code(id: val[1], code: val[2]) result end .,., -module_eval(<<'.,.,', 'parser.y', 70) +module_eval(<<'.,.,', 'parser.y', 47) def _reduce_23(val, _values, result) - @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[3]) + @grammar.initial_action = Grammar::Code::InitialActionCode.new(type: :initial_action, token_code: val[1]) result end .,., -module_eval(<<'.,.,', 'parser.y', 72) +module_eval(<<'.,.,', 'parser.y', 49) def _reduce_24(val, _values, result) @grammar.no_stdlib = true result end .,., -# reduce 25 omitted - -module_eval(<<'.,.,', 'parser.y', 77) - def _reduce_26(val, _values, result) - begin_c_declaration("}") - +module_eval(<<'.,.,', 'parser.y', 50) + def _reduce_25(val, _values, result) + @grammar.locations = true result end .,., -module_eval(<<'.,.,', 'parser.y', 81) - def _reduce_27(val, _values, result) - end_c_declaration +# reduce 26 omitted +module_eval(<<'.,.,', 'parser.y', 109) + def _reduce_27(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 85) +module_eval(<<'.,.,', 'parser.y', 109) def _reduce_28(val, _values, result) - @grammar.set_union( - Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[3]), - val[3].line - ) - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -# reduce 29 omitted - -module_eval(<<'.,.,', 'parser.y', 93) - def _reduce_30(val, _values, result) - begin_c_declaration("}") +module_eval(<<'.,.,', 'parser.y', 55) + def _reduce_29(val, _values, result) + @grammar.set_union( + Grammar::Code::NoReferenceCode.new(type: :union, token_code: val[1]), + val[1].line + ) result end .,., -module_eval(<<'.,.,', 'parser.y', 97) - def _reduce_31(val, _values, result) - end_c_declaration - - result - end -.,., +# reduce 30 omitted -module_eval(<<'.,.,', 'parser.y', 101) - def _reduce_32(val, _values, result) - @grammar.add_destructor( - ident_or_tags: val[6], - token_code: val[3], - lineno: val[3].line - ) +# reduce 31 omitted - result - end -.,., +# reduce 32 omitted -module_eval(<<'.,.,', 'parser.y', 109) +module_eval(<<'.,.,', 'parser.y', 65) def _reduce_33(val, _values, result) - begin_c_declaration("}") + @grammar.add_destructor( + ident_or_tags: val[2], + token_code: val[1], + lineno: val[1].line + ) result end .,., -module_eval(<<'.,.,', 'parser.y', 113) +module_eval(<<'.,.,', 'parser.y', 73) def _reduce_34(val, _values, result) - end_c_declaration - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 117) - def _reduce_35(val, _values, result) @grammar.add_printer( - ident_or_tags: val[6], - token_code: val[3], - lineno: val[3].line + ident_or_tags: val[2], + token_code: val[1], + lineno: val[1].line ) result end .,., -module_eval(<<'.,.,', 'parser.y', 125) - def _reduce_36(val, _values, result) - begin_c_declaration("}") - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 129) - def _reduce_37(val, _values, result) - end_c_declaration - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 133) - def _reduce_38(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 81) + def _reduce_35(val, _values, result) @grammar.add_error_token( - ident_or_tags: val[6], - token_code: val[3], - lineno: val[3].line + ident_or_tags: val[2], + token_code: val[1], + lineno: val[1].line ) result end .,., -module_eval(<<'.,.,', 'parser.y', 141) - def _reduce_39(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 89) + def _reduce_36(val, _values, result) @grammar.after_shift = val[1] result end .,., -module_eval(<<'.,.,', 'parser.y', 145) - def _reduce_40(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 93) + def _reduce_37(val, _values, result) @grammar.before_reduce = val[1] result end .,., -module_eval(<<'.,.,', 'parser.y', 149) - def _reduce_41(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 97) + def _reduce_38(val, _values, result) @grammar.after_reduce = val[1] result end .,., -module_eval(<<'.,.,', 'parser.y', 153) - def _reduce_42(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 101) + def _reduce_39(val, _values, result) @grammar.after_shift_error_token = val[1] result end .,., -module_eval(<<'.,.,', 'parser.y', 157) - def _reduce_43(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 105) + def _reduce_40(val, _values, result) @grammar.after_pop_stack = val[1] result end .,., -# reduce 44 omitted +# reduce 41 omitted -module_eval(<<'.,.,', 'parser.y', 163) - def _reduce_45(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 111) + def _reduce_42(val, _values, result) val[1].each {|hash| hash[:tokens].each {|id| @grammar.add_type(id: id, tag: hash[:tag]) @@ -1557,8 +1490,8 @@ module_eval(<<'.,.,', 'parser.y', 163) end .,., -module_eval(<<'.,.,', 'parser.y', 171) - def _reduce_46(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 119) + def _reduce_43(val, _values, result) val[1].each {|hash| hash[:tokens].each {|id| sym = @grammar.add_term(id: id) @@ -1571,8 +1504,8 @@ module_eval(<<'.,.,', 'parser.y', 171) end .,., -module_eval(<<'.,.,', 'parser.y', 181) - def _reduce_47(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 129) + def _reduce_44(val, _values, result) val[1].each {|hash| hash[:tokens].each {|id| sym = @grammar.add_term(id: id) @@ -1585,8 +1518,8 @@ module_eval(<<'.,.,', 'parser.y', 181) end .,., -module_eval(<<'.,.,', 'parser.y', 191) - def _reduce_48(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 139) + def _reduce_45(val, _values, result) val[1].each {|hash| hash[:tokens].each {|id| sym = @grammar.add_term(id: id) @@ -1599,8 +1532,8 @@ module_eval(<<'.,.,', 'parser.y', 191) end .,., -module_eval(<<'.,.,', 'parser.y', 201) - def _reduce_49(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 149) + def _reduce_46(val, _values, result) val[1].each {|hash| hash[:tokens].each {|id| sym = @grammar.add_term(id: id) @@ -1613,8 +1546,22 @@ module_eval(<<'.,.,', 'parser.y', 201) end .,., -module_eval(<<'.,.,', 'parser.y', 212) - def _reduce_50(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 178) + def _reduce_47(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., + +module_eval(<<'.,.,', 'parser.y', 178) + def _reduce_48(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., + +module_eval(<<'.,.,', 'parser.y', 160) + def _reduce_49(val, _values, result) val[0].each {|token_declaration| @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: nil, replace: true) } @@ -1623,8 +1570,8 @@ module_eval(<<'.,.,', 'parser.y', 212) end .,., -module_eval(<<'.,.,', 'parser.y', 218) - def _reduce_51(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 166) + def _reduce_50(val, _values, result) val[1].each {|token_declaration| @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[0], replace: true) } @@ -1633,8 +1580,8 @@ module_eval(<<'.,.,', 'parser.y', 218) end .,., -module_eval(<<'.,.,', 'parser.y', 224) - def _reduce_52(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 172) + def _reduce_51(val, _values, result) val[2].each {|token_declaration| @grammar.add_term(id: token_declaration[0], alias_name: token_declaration[2], token_id: token_declaration[1], tag: val[1], replace: true) } @@ -1643,61 +1590,64 @@ module_eval(<<'.,.,', 'parser.y', 224) end .,., -module_eval(<<'.,.,', 'parser.y', 229) - def _reduce_53(val, _values, result) - result = [val[0]] - result - end -.,., +# reduce 52 omitted + +# reduce 53 omitted -module_eval(<<'.,.,', 'parser.y', 230) +module_eval(<<'.,.,', 'parser.y', 177) def _reduce_54(val, _values, result) - result = val[0].append(val[1]) + result = val result end .,., -module_eval(<<'.,.,', 'parser.y', 232) - def _reduce_55(val, _values, result) - result = val +# reduce 55 omitted + +# reduce 56 omitted + +module_eval(<<'.,.,', 'parser.y', 181) + def _reduce_57(val, _values, result) + rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[7], tag: val[5]) + @grammar.add_parameterizing_rule(rule) + result end .,., -module_eval(<<'.,.,', 'parser.y', 236) - def _reduce_56(val, _values, result) - rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[6]) +module_eval(<<'.,.,', 'parser.y', 187) + def _reduce_58(val, _values, result) + rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, [], val[4], is_inline: true) @grammar.add_parameterizing_rule(rule) result end .,., -module_eval(<<'.,.,', 'parser.y', 242) - def _reduce_57(val, _values, result) - rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, [], val[4], is_inline: true) +module_eval(<<'.,.,', 'parser.y', 192) + def _reduce_59(val, _values, result) + rule = Grammar::ParameterizingRule::Rule.new(val[2].s_value, val[4], val[7], is_inline: true) @grammar.add_parameterizing_rule(rule) result end .,., -module_eval(<<'.,.,', 'parser.y', 246) - def _reduce_58(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 196) + def _reduce_60(val, _values, result) result = [val[0]] result end .,., -module_eval(<<'.,.,', 'parser.y', 247) - def _reduce_59(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 197) + def _reduce_61(val, _values, result) result = val[0].append(val[2]) result end .,., -module_eval(<<'.,.,', 'parser.y', 251) - def _reduce_60(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 201) + def _reduce_62(val, _values, result) builder = val[0] result = [builder] @@ -1705,8 +1655,8 @@ module_eval(<<'.,.,', 'parser.y', 251) end .,., -module_eval(<<'.,.,', 'parser.y', 256) - def _reduce_61(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 206) + def _reduce_63(val, _values, result) builder = val[2] result = val[0].append(builder) @@ -1714,17 +1664,12 @@ module_eval(<<'.,.,', 'parser.y', 256) end .,., -module_eval(<<'.,.,', 'parser.y', 262) - def _reduce_62(val, _values, result) - reset_precs - result = Grammar::ParameterizingRule::Rhs.new +# reduce 64 omitted - result - end -.,., +# reduce 65 omitted -module_eval(<<'.,.,', 'parser.y', 267) - def _reduce_63(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 212) + def _reduce_66(val, _values, result) reset_precs result = Grammar::ParameterizingRule::Rhs.new @@ -1732,8 +1677,8 @@ module_eval(<<'.,.,', 'parser.y', 267) end .,., -module_eval(<<'.,.,', 'parser.y', 272) - def _reduce_64(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 217) + def _reduce_67(val, _values, result) token = val[1] token.alias_name = val[2] builder = val[0] @@ -1744,8 +1689,8 @@ module_eval(<<'.,.,', 'parser.y', 272) end .,., -module_eval(<<'.,.,', 'parser.y', 280) - def _reduce_65(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 225) + def _reduce_68(val, _values, result) builder = val[0] builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]]) result = builder @@ -1754,40 +1699,20 @@ module_eval(<<'.,.,', 'parser.y', 280) end .,., -module_eval(<<'.,.,', 'parser.y', 286) - def _reduce_66(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 231) + def _reduce_69(val, _values, result) builder = val[0] - builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3]) + builder.symbols << Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5]) result = builder result end .,., -module_eval(<<'.,.,', 'parser.y', 292) - def _reduce_67(val, _values, result) - if @prec_seen - on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec - @code_after_prec = true - end - begin_c_declaration("}") - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 300) - def _reduce_68(val, _values, result) - end_c_declaration - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 304) - def _reduce_69(val, _values, result) - user_code = val[3] - user_code.alias_name = val[6] +module_eval(<<'.,.,', 'parser.y', 237) + def _reduce_70(val, _values, result) + user_code = val[1] + user_code.alias_name = val[2] builder = val[0] builder.user_code = user_code result = builder @@ -1796,8 +1721,8 @@ module_eval(<<'.,.,', 'parser.y', 304) end .,., -module_eval(<<'.,.,', 'parser.y', 312) - def _reduce_70(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 245) + def _reduce_71(val, _values, result) sym = @grammar.find_symbol_by_id!(val[2]) @prec_seen = true builder = val[0] @@ -1808,168 +1733,137 @@ module_eval(<<'.,.,', 'parser.y', 312) end .,., -# reduce 71 omitted - # reduce 72 omitted -# reduce 73 omitted +module_eval(<<'.,.,', 'parser.y', 253) + def _reduce_73(val, _values, result) + result = val[0].s_value + result + end +.,., -# reduce 74 omitted +module_eval(<<'.,.,', 'parser.y', 260) + def _reduce_74(val, _values, result) + result = val[1] ? val[1].unshift(val[0]) : val + result + end +.,., -module_eval(<<'.,.,', 'parser.y', 327) +module_eval(<<'.,.,', 'parser.y', 260) def _reduce_75(val, _values, result) - result = [{tag: nil, tokens: val[0]}] - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 331) +module_eval(<<'.,.,', 'parser.y', 255) def _reduce_76(val, _values, result) - result = [{tag: val[0], tokens: val[1]}] - + result = [{tag: nil, tokens: val[0]}] result end .,., -module_eval(<<'.,.,', 'parser.y', 335) +module_eval(<<'.,.,', 'parser.y', 256) def _reduce_77(val, _values, result) - result = val[0].append({tag: val[1], tokens: val[2]}) - + result = [{tag: val[0], tokens: val[1]}] result end .,., -module_eval(<<'.,.,', 'parser.y', 338) +module_eval(<<'.,.,', 'parser.y', 257) def _reduce_78(val, _values, result) - result = [val[0]] + result = val[0].append({tag: val[1], tokens: val[2]}) result end .,., -module_eval(<<'.,.,', 'parser.y', 339) - def _reduce_79(val, _values, result) - result = val[0].append(val[1]) - result - end -.,., +# reduce 79 omitted # reduce 80 omitted -# reduce 81 omitted +module_eval(<<'.,.,', 'parser.y', 263) + def _reduce_81(val, _values, result) + begin_c_declaration("}") -module_eval(<<'.,.,', 'parser.y', 346) + result + end +.,., + +module_eval(<<'.,.,', 'parser.y', 267) def _reduce_82(val, _values, result) - begin_c_declaration("}") + end_c_declaration result end .,., -module_eval(<<'.,.,', 'parser.y', 350) +module_eval(<<'.,.,', 'parser.y', 271) def _reduce_83(val, _values, result) - end_c_declaration + result = val[2] result end .,., -module_eval(<<'.,.,', 'parser.y', 354) +module_eval(<<'.,.,', 'parser.y', 279) def _reduce_84(val, _values, result) - result = val[0].append(val[3]) - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 358) +module_eval(<<'.,.,', 'parser.y', 279) def _reduce_85(val, _values, result) - begin_c_declaration("}") - + result = val[1] ? val[1].unshift(val[0]) : val result end .,., -module_eval(<<'.,.,', 'parser.y', 362) +module_eval(<<'.,.,', 'parser.y', 274) def _reduce_86(val, _values, result) - end_c_declaration - + result = [{tag: nil, tokens: val[0]}] result end .,., -module_eval(<<'.,.,', 'parser.y', 366) +module_eval(<<'.,.,', 'parser.y', 275) def _reduce_87(val, _values, result) - result = [val[2]] - + result = [{tag: val[0], tokens: val[1]}] result end .,., -module_eval(<<'.,.,', 'parser.y', 371) +module_eval(<<'.,.,', 'parser.y', 276) def _reduce_88(val, _values, result) - result = [{tag: nil, tokens: val[0]}] - + result = val[0].append({tag: val[1], tokens: val[2]}) result end .,., -module_eval(<<'.,.,', 'parser.y', 375) +module_eval(<<'.,.,', 'parser.y', 278) def _reduce_89(val, _values, result) - result = [{tag: val[0], tokens: val[1]}] - + on_action_error("ident after %prec", val[0]) if @prec_seen result end .,., -module_eval(<<'.,.,', 'parser.y', 379) +module_eval(<<'.,.,', 'parser.y', 279) def _reduce_90(val, _values, result) - result = val[0].append({tag: val[1], tokens: val[2]}) - + on_action_error("char after %prec", val[0]) if @prec_seen result end .,., -module_eval(<<'.,.,', 'parser.y', 382) - def _reduce_91(val, _values, result) - result = [val[0]] - result - end -.,., +# reduce 91 omitted -module_eval(<<'.,.,', 'parser.y', 383) - def _reduce_92(val, _values, result) - result = val[0].append(val[1]) - result - end -.,., +# reduce 92 omitted # reduce 93 omitted -module_eval(<<'.,.,', 'parser.y', 387) - def _reduce_94(val, _values, result) - on_action_error("ident after %prec", val[0]) if @prec_seen - result - end -.,., +# reduce 94 omitted -module_eval(<<'.,.,', 'parser.y', 388) +module_eval(<<'.,.,', 'parser.y', 287) def _reduce_95(val, _values, result) - on_action_error("char after %prec", val[0]) if @prec_seen - result - end -.,., - -# reduce 96 omitted - -# reduce 97 omitted - -# reduce 98 omitted - -# reduce 99 omitted - -module_eval(<<'.,.,', 'parser.y', 398) - def _reduce_100(val, _values, result) lhs = val[0] lhs.alias_name = val[1] val[3].each do |builder| @@ -1982,8 +1876,8 @@ module_eval(<<'.,.,', 'parser.y', 398) end .,., -module_eval(<<'.,.,', 'parser.y', 409) - def _reduce_101(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 298) + def _reduce_96(val, _values, result) builder = val[0] if !builder.line builder.line = @lexer.line - 1 @@ -1994,8 +1888,8 @@ module_eval(<<'.,.,', 'parser.y', 409) end .,., -module_eval(<<'.,.,', 'parser.y', 417) - def _reduce_102(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 306) + def _reduce_97(val, _values, result) builder = val[2] if !builder.line builder.line = @lexer.line - 1 @@ -2006,28 +1900,17 @@ module_eval(<<'.,.,', 'parser.y', 417) end .,., -# reduce 103 omitted - -module_eval(<<'.,.,', 'parser.y', 427) - def _reduce_104(val, _values, result) - reset_precs - result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter) - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 432) - def _reduce_105(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 315) + def _reduce_98(val, _values, result) reset_precs - result = Grammar::RuleBuilder.new(@rule_counter, @midrule_action_counter) + result = @grammar.create_rule_builder(@rule_counter, @midrule_action_counter) result end .,., -module_eval(<<'.,.,', 'parser.y', 437) - def _reduce_106(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 320) + def _reduce_99(val, _values, result) token = val[1] token.alias_name = val[2] builder = val[0] @@ -2038,9 +1921,9 @@ module_eval(<<'.,.,', 'parser.y', 437) end .,., -module_eval(<<'.,.,', 'parser.y', 445) - def _reduce_107(val, _values, result) - token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]], lhs_tag: val[3]) +module_eval(<<'.,.,', 'parser.y', 328) + def _reduce_100(val, _values, result) + token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], alias_name: val[3], location: @lexer.location, args: [val[1]], lhs_tag: val[4]) builder = val[0] builder.add_rhs(token) builder.line = val[1].first_line @@ -2050,9 +1933,9 @@ module_eval(<<'.,.,', 'parser.y', 445) end .,., -module_eval(<<'.,.,', 'parser.y', 453) - def _reduce_108(val, _values, result) - token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5]) +module_eval(<<'.,.,', 'parser.y', 336) + def _reduce_101(val, _values, result) + token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, alias_name: val[5], location: @lexer.location, args: val[3], lhs_tag: val[6]) builder = val[0] builder.add_rhs(token) builder.line = val[1].first_line @@ -2062,31 +1945,11 @@ module_eval(<<'.,.,', 'parser.y', 453) end .,., -module_eval(<<'.,.,', 'parser.y', 461) - def _reduce_109(val, _values, result) - if @prec_seen - on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec - @code_after_prec = true - end - begin_c_declaration("}") - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 469) - def _reduce_110(val, _values, result) - end_c_declaration - - result - end -.,., - -module_eval(<<'.,.,', 'parser.y', 473) - def _reduce_111(val, _values, result) - user_code = val[3] - user_code.alias_name = val[6] - user_code.tag = val[7] +module_eval(<<'.,.,', 'parser.y', 344) + def _reduce_102(val, _values, result) + user_code = val[1] + user_code.alias_name = val[2] + user_code.tag = val[3] builder = val[0] builder.user_code = user_code result = builder @@ -2095,8 +1958,8 @@ module_eval(<<'.,.,', 'parser.y', 473) end .,., -module_eval(<<'.,.,', 'parser.y', 482) - def _reduce_112(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 353) + def _reduce_103(val, _values, result) sym = @grammar.find_symbol_by_id!(val[2]) @prec_seen = true builder = val[0] @@ -2107,125 +1970,133 @@ module_eval(<<'.,.,', 'parser.y', 482) end .,., -module_eval(<<'.,.,', 'parser.y', 489) - def _reduce_113(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 360) + def _reduce_104(val, _values, result) result = "option" result end .,., -module_eval(<<'.,.,', 'parser.y', 490) - def _reduce_114(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 361) + def _reduce_105(val, _values, result) result = "nonempty_list" result end .,., -module_eval(<<'.,.,', 'parser.y', 491) - def _reduce_115(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 362) + def _reduce_106(val, _values, result) result = "list" result end .,., -module_eval(<<'.,.,', 'parser.y', 493) - def _reduce_116(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 364) + def _reduce_107(val, _values, result) result = [val[0]] result end .,., -module_eval(<<'.,.,', 'parser.y', 494) - def _reduce_117(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 365) + def _reduce_108(val, _values, result) result = val[0].append(val[2]) result end .,., -module_eval(<<'.,.,', 'parser.y', 495) - def _reduce_118(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 366) + def _reduce_109(val, _values, result) result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[0])] result end .,., -module_eval(<<'.,.,', 'parser.y', 496) - def _reduce_119(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 367) + def _reduce_110(val, _values, result) result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[0].s_value, location: @lexer.location, args: val[2])] result end .,., -# reduce 120 omitted +module_eval(<<'.,.,', 'parser.y', 371) + def _reduce_111(val, _values, result) + if @prec_seen + on_action_error("multiple User_code after %prec", val[0]) if @code_after_prec + @code_after_prec = true + end + begin_c_declaration("}") -module_eval(<<'.,.,', 'parser.y', 499) - def _reduce_121(val, _values, result) - result = val[1].s_value result end .,., -# reduce 122 omitted - -# reduce 123 omitted - -module_eval(<<'.,.,', 'parser.y', 506) - def _reduce_124(val, _values, result) - begin_c_declaration('\Z') - @grammar.epilogue_first_lineno = @lexer.line + 1 +module_eval(<<'.,.,', 'parser.y', 379) + def _reduce_112(val, _values, result) + end_c_declaration result end .,., -module_eval(<<'.,.,', 'parser.y', 511) - def _reduce_125(val, _values, result) - end_c_declaration - @grammar.epilogue = val[2].s_value +module_eval(<<'.,.,', 'parser.y', 383) + def _reduce_113(val, _values, result) + result = val[2] result end .,., -# reduce 126 omitted - -# reduce 127 omitted - -# reduce 128 omitted - -# reduce 129 omitted +module_eval(<<'.,.,', 'parser.y', 386) + def _reduce_114(val, _values, result) + result = val[1].s_value + result + end +.,., -# reduce 130 omitted +module_eval(<<'.,.,', 'parser.y', 390) + def _reduce_115(val, _values, result) + begin_c_declaration('\Z') + @grammar.epilogue_first_lineno = @lexer.line + 1 -module_eval(<<'.,.,', 'parser.y', 522) - def _reduce_131(val, _values, result) - result = [val[0]] result end .,., -module_eval(<<'.,.,', 'parser.y', 523) - def _reduce_132(val, _values, result) - result = val[0].append(val[1]) +module_eval(<<'.,.,', 'parser.y', 395) + def _reduce_116(val, _values, result) + end_c_declaration + @grammar.epilogue = val[2].s_value + result end .,., -# reduce 133 omitted +# reduce 117 omitted + +# reduce 118 omitted -# reduce 134 omitted +# reduce 119 omitted -module_eval(<<'.,.,', 'parser.y', 528) - def _reduce_135(val, _values, result) +# reduce 120 omitted + +# reduce 121 omitted + +# reduce 122 omitted + +# reduce 123 omitted + +# reduce 124 omitted + +# reduce 125 omitted + +module_eval(<<'.,.,', 'parser.y', 412) + def _reduce_126(val, _values, result) result = Lrama::Lexer::Token::Ident.new(s_value: val[0]) result end .,., -# reduce 136 omitted - -# reduce 137 omitted - def _reduce_none(val, _values, result) val[0] end |