// Code generated by goyacc -o parser.go parser.go.y. DO NOT EDIT. //line parser.go.y:2 package parser import __yyfmt__ "fmt" //line parser.go.y:2 import ( "github.com/mattn/anko/ast" ) //line parser.go.y:45 type yySymType struct { yys int tok ast.Token compstmt ast.Stmt stmts ast.Stmt stmt ast.Stmt stmt_var_or_lets ast.Stmt stmt_var ast.Stmt stmt_lets ast.Stmt stmt_if ast.Stmt stmt_for ast.Stmt stmt_switch ast.Stmt stmt_switch_cases ast.Stmt stmt_switch_case ast.Stmt stmt_switch_default ast.Stmt exprs []ast.Expr expr ast.Expr expr_idents []string type_data *ast.TypeStruct type_data_struct *ast.TypeStruct slice_count int expr_member_or_ident ast.Expr expr_member *ast.MemberExpr expr_ident *ast.IdentExpr expr_literals ast.Expr expr_map *ast.MapExpr expr_slice ast.Expr expr_chan ast.Expr expr_unary ast.Expr expr_binary ast.Expr expr_lets ast.Expr op_binary ast.Operator op_comparison ast.Operator op_add ast.Operator op_multiply ast.Operator } const IDENT = 57346 const NUMBER = 57347 const STRING = 57348 const ARRAY = 57349 const VARARG = 57350 const FUNC = 57351 const RETURN = 57352 const VAR = 57353 const THROW = 57354 const IF = 57355 const ELSE = 57356 const FOR = 57357 const IN = 57358 const EQEQ = 57359 const NEQ = 57360 const GE = 57361 const LE = 57362 const OROR = 57363 const ANDAND = 57364 const NEW = 57365 const TRUE = 57366 const FALSE = 57367 const NIL = 57368 const NILCOALESCE = 57369 const MODULE = 57370 const TRY = 57371 const CATCH = 57372 const FINALLY = 57373 const PLUSEQ = 57374 const MINUSEQ = 57375 const MULEQ = 57376 const DIVEQ = 57377 const ANDEQ = 57378 const OREQ = 57379 const BREAK = 57380 const CONTINUE = 57381 const PLUSPLUS = 57382 const MINUSMINUS = 57383 const SHIFTLEFT = 57384 const SHIFTRIGHT = 57385 const SWITCH = 57386 const CASE = 57387 const DEFAULT = 57388 const GO = 57389 const CHAN = 57390 const STRUCT = 57391 const MAKE = 57392 const OPCHAN = 57393 const EQOPCHAN = 57394 const TYPE = 57395 const LEN = 57396 const DELETE = 57397 const CLOSE = 57398 const MAP = 57399 const IMPORT = 57400 const UNARY = 57401 var yyToknames = [...]string{ "$end", "error", "$unk", "IDENT", "NUMBER", "STRING", "ARRAY", "VARARG", "FUNC", "RETURN", "VAR", "THROW", "IF", "ELSE", "FOR", "IN", "EQEQ", "NEQ", "GE", "LE", "OROR", "ANDAND", "NEW", "TRUE", "FALSE", "NIL", "NILCOALESCE", "MODULE", "TRY", "CATCH", "FINALLY", "PLUSEQ", "MINUSEQ", "MULEQ", "DIVEQ", "ANDEQ", "OREQ", "BREAK", "CONTINUE", "PLUSPLUS", "MINUSMINUS", "SHIFTLEFT", "SHIFTRIGHT", "SWITCH", "CASE", "DEFAULT", "GO", "CHAN", "STRUCT", "MAKE", "OPCHAN", "EQOPCHAN", "TYPE", "LEN", "DELETE", "CLOSE", "MAP", "IMPORT", "'='", "':'", "'?'", "'<'", "'>'", "'+'", "'-'", "'|'", "'^'", "'*'", "'/'", "'%'", "'&'", "UNARY", "'{'", "'}'", "'('", "')'", "','", "';'", "'['", "']'", "'.'", "'!'", "'\\n'", } var yyStatenames = [...]string{} const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 //line parser.go.y:1090 //line yacctab:1 var yyExca = [...]int{ -1, 1, 1, -1, -2, 0, -1, 2, 52, 57, 59, 57, 77, 57, 78, 5, -2, 1, -1, 23, 77, 58, -2, 26, -1, 27, 16, 95, -2, 57, -1, 67, 52, 57, 59, 57, 77, 57, -2, 5, -1, 120, 16, 96, 77, 96, -2, 112, -1, 124, 4, 107, 48, 107, 49, 107, 57, 107, -2, 69, -1, 267, 74, 181, 80, 181, -2, 173, -1, 288, 74, 181, -2, 173, -1, 292, 1, 60, 8, 60, 45, 60, 46, 60, 52, 60, 59, 60, 60, 60, 74, 60, 76, 60, 77, 60, 78, 60, 80, 60, 83, 60, -2, 110, -1, 296, 1, 17, 45, 17, 46, 17, 74, 17, 78, 17, 83, 17, -2, 74, -1, 298, 1, 19, 45, 19, 46, 19, 74, 19, 78, 19, 83, 19, -2, 76, -1, 328, 74, 179, 80, 179, -2, 174, -1, 348, 1, 16, 45, 16, 46, 16, 74, 16, 78, 16, 83, 16, -2, 73, -1, 349, 1, 18, 45, 18, 46, 18, 74, 18, 78, 18, 83, 18, -2, 75, } const yyPrivate = 57344 const yyLast = 3907 var yyAct = [...]int{ 71, 268, 33, 23, 232, 320, 321, 36, 116, 323, 322, 5, 8, 288, 377, 72, 8, 267, 76, 8, 8, 124, 386, 8, 8, 127, 281, 114, 117, 121, 214, 214, 282, 283, 84, 135, 130, 214, 85, 214, 87, 1, 331, 214, 207, 286, 214, 8, 7, 329, 220, 137, 151, 327, 134, 69, 49, 145, 152, 153, 154, 155, 156, 213, 217, 202, 142, 373, 23, 149, 70, 214, 143, 404, 340, 349, 348, 334, 162, 163, 325, 166, 167, 168, 169, 297, 171, 173, 303, 175, 149, 210, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 136, 159, 69, 295, 206, 448, 326, 203, 148, 234, 160, 203, 211, 141, 274, 147, 209, 130, 130, 140, 130, 86, 139, 223, 225, 226, 170, 203, 130, 130, 233, 130, 265, 149, 236, 123, 138, 447, 298, 149, 215, 216, 200, 218, 144, 89, 90, 100, 101, 78, 245, 227, 228, 77, 231, 443, 248, 438, 252, 437, 69, 435, 428, 427, 6, 423, 422, 212, 128, 346, 68, 296, 149, 97, 98, 99, 102, 125, 222, 367, 84, 421, 275, 149, 85, 238, 87, 419, 255, 235, 86, 259, 246, 262, 410, 128, 409, 126, 164, 405, 264, 203, 240, 241, 266, 130, 122, 126, 211, 401, 278, 397, 132, 133, 89, 90, 233, 229, 395, 287, 285, 131, 444, 291, 249, 149, 253, 394, 272, 299, 292, 257, 129, 302, 393, 69, 390, 304, 347, 132, 133, 385, 356, 134, 343, 311, 315, 317, 131, 84, 308, 301, 293, 85, 254, 87, 239, 442, 165, 129, 408, 388, 372, 335, 9, 371, 324, 219, 158, 339, 134, 74, 341, 441, 130, 345, 290, 323, 322, 436, 201, 294, 79, 430, 333, 312, 310, 230, 10, 284, 271, 146, 174, 354, 237, 73, 4, 342, 2, 62, 67, 63, 66, 69, 363, 64, 65, 126, 47, 368, 366, 365, 330, 46, 126, 45, 119, 374, 44, 130, 43, 130, 30, 50, 381, 29, 384, 351, 332, 319, 387, 22, 157, 21, 20, 25, 355, 24, 3, 391, 357, 358, 375, 360, 378, 0, 0, 0, 256, 0, 0, 370, 0, 263, 0, 0, 0, 0, 270, 0, 0, 0, 69, 0, 273, 369, 412, 0, 126, 414, 0, 0, 0, 126, 389, 0, 0, 269, 126, 0, 0, 0, 0, 0, 126, 0, 396, 0, 398, 399, 0, 0, 0, 0, 402, 0, 0, 269, 406, 407, 0, 0, 233, 434, 0, 0, 433, 0, 0, 0, 0, 0, 237, 0, 0, 418, 0, 0, 130, 0, 440, 0, 0, 201, 0, 0, 0, 424, 0, 0, 425, 426, 328, 344, 0, 429, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 328, 120, 52, 53, 0, 0, 31, 0, 48, 0, 0, 364, 0, 0, 0, 0, 445, 0, 446, 0, 39, 54, 55, 56, 376, 0, 201, 0, 201, 0, 0, 126, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 126, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 89, 90, 100, 101, 0, 0, 51, 0, 59, 61, 0, 0, 60, 411, 115, 0, 34, 0, 201, 118, 32, 0, 416, 58, 103, 104, 105, 0, 97, 98, 99, 102, 0, 126, 0, 84, 0, 0, 0, 85, 0, 87, 126, 0, 0, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 81, 0, 0, 0, 0, 0, 0, 80, 269, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 204, 0, 84, 0, 0, 0, 85, 0, 87, 35, 52, 53, 0, 0, 31, 13, 48, 14, 26, 0, 27, 0, 0, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 28, 0, 0, 17, 0, 0, 40, 57, 0, 0, 37, 18, 19, 41, 38, 0, 0, 0, 0, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 0, 32, 0, 0, 58, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 382, 383, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 380, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 379, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 353, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 352, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 338, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 337, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 307, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 306, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 277, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 276, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 251, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 250, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 242, 243, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 81, 0, 0, 0, 0, 0, 0, 80, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 432, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 431, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 420, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 417, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 415, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 413, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 403, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 400, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 392, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 361, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 359, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 350, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 318, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 313, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 309, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 300, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 289, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 280, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 279, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 260, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 247, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 244, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 221, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 208, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 199, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 161, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 40, 57, 0, 85, 37, 87, 0, 41, 38, 0, 0, 0, 0, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 336, 31, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 305, 31, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 261, 32, 0, 0, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 0, 224, 0, 0, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 205, 32, 0, 0, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 0, 172, 0, 0, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 362, 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 316, 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 314, 0, 34, 0, 0, 0, 32, 0, 0, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 0, 86, 106, 107, 111, 109, 51, 112, 59, 61, 0, 0, 60, 0, 258, 0, 34, 0, 0, 0, 32, 0, 0, 58, 0, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 35, 150, 53, 84, 0, 31, 0, 85, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 52, 53, 0, 0, 31, 0, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 0, 32, 0, 0, 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 38, 86, 106, 107, 111, 109, 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 0, 32, 0, 0, 58, 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, } var yyPact = [...]int{ -67, -1000, 631, -67, -1000, -71, -71, -1000, -1000, -1000, -1000, -1000, -1000, 3490, 3490, 306, 213, 3782, 93, 89, 283, -1000, -1000, 1226, -1000, -1000, 3490, 465, 3490, -1000, -1000, 146, -59, 206, 3490, 40, -28, 76, 62, 59, 53, -7, -71, -1000, -1000, -1000, -1000, -1000, 302, 71, -1000, 3746, -1000, -1000, -1000, -1000, -1000, 3490, 3490, 3490, 3490, 3490, -1000, -1000, -1000, -1000, -1000, 631, -71, -1000, -8, 2942, 2942, 210, -67, 50, 3008, 3490, 3490, 200, 3490, 3490, 3490, 3490, 3490, 3418, 3490, 303, 3490, -1000, -1000, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 2876, -67, 49, 553, 3382, -34, 40, 2810, 302, 16, -25, 3490, -71, -10, -1000, 206, 206, -15, 206, 209, -30, 2744, 3490, 3310, 3490, 3490, 206, 179, -71, 206, 3490, 65, -1000, 3490, 3490, -71, -1000, -41, 3074, -41, -41, -41, -41, -1000, -67, 197, 3490, 3490, 1160, 2678, 3490, -67, 2942, 2942, 2612, 3140, 163, 1094, 3490, 189, -1000, 3074, 2942, 2942, 2942, 2942, 2942, 2942, 189, 189, 189, 189, 189, 189, 120, 120, 120, 484, 484, 484, 484, 484, 484, 3825, 3678, -67, 195, -71, 3490, -71, -67, 3634, 2546, 3274, -71, 139, 302, -1000, -60, -71, 301, -42, -42, 206, -42, -71, -25, -1000, 121, 1028, 3490, 2480, 2414, -50, -44, 300, 3490, -35, -64, 2348, 3490, -8, 2942, 3490, 193, 266, 110, 77, -1000, 3490, -1000, 2282, 192, 3490, 12, -1000, -1000, 3238, 962, 191, -1000, 2216, 297, 186, -67, 2150, 3598, 3562, 2084, 247, 208, 4, 45, -71, -31, -71, 3490, -1000, -38, 295, 1, -1000, -1000, 3166, 896, -1000, -1000, -1000, -1000, 3490, -3, -64, 206, 185, -71, 3490, -8, 2942, -28, -1000, 180, 0, -1000, -1, -1000, 2018, -67, -1000, 3074, -1000, 830, -1000, -1000, 3490, -1000, -67, -1000, -1000, 183, -67, -67, 1952, -67, 1886, 3526, -36, -1000, -1000, 134, 3490, -67, 207, 204, -9, -71, -1000, -60, 206, -63, 206, -1000, 764, -1000, -1000, 3490, 698, 3490, 182, -51, -1000, 3490, 2942, 203, -67, -1000, -1000, -1000, 177, -1000, 3490, 1820, 175, -1000, 168, 159, -67, 152, -67, -67, 1754, 150, -1000, -1000, -67, 1688, 13, 140, -67, -67, 202, 137, -42, 135, -71, -42, -1000, 3490, 1622, -1000, 3490, 1556, -1000, -71, 1490, -67, 128, -1000, 1424, -1000, -1000, -1000, -1000, 122, -1000, 107, 106, -67, -1000, -1000, -67, -67, -1000, 104, 103, -67, -1000, -1000, 294, 1358, -1000, 1292, -1000, 3490, 3490, 102, 263, -1000, -1000, -1000, -1000, 100, -1000, -1000, -1000, -1000, 98, 206, -1000, -1000, -64, 2942, 257, 199, -1000, -1000, -42, 96, 164, -67, -1000, -67, 78, 46, -1000, -1000, } var yyPgo = [...]int{ 0, 41, 353, 279, 303, 352, 350, 349, 348, 346, 344, 6, 5, 56, 0, 8, 25, 343, 2, 340, 338, 7, 337, 4, 335, 333, 330, 328, 323, 321, 320, 316, 314, 313, 311, 159, 1, 179, 48, } var yyR1 = [...]int{ 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 10, 10, 10, 10, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 21, 22, 22, 22, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 32, 32, 32, 32, 32, 32, 31, 31, 31, 30, 30, 30, 30, 30, 30, 29, 29, 33, 33, 34, 34, 34, 35, 35, 37, 37, 38, 36, 36, 36, 36, } var yyR2 = [...]int{ 0, 1, 2, 2, 3, 0, 1, 1, 1, 2, 2, 5, 13, 12, 9, 8, 6, 5, 6, 5, 4, 6, 4, 1, 1, 1, 1, 1, 1, 4, 3, 3, 3, 3, 5, 7, 5, 4, 7, 5, 6, 7, 7, 8, 7, 8, 8, 9, 7, 0, 1, 1, 2, 2, 4, 4, 3, 0, 1, 4, 4, 1, 1, 5, 3, 7, 8, 8, 9, 2, 5, 7, 3, 5, 4, 5, 4, 4, 4, 4, 4, 4, 4, 6, 8, 7, 3, 6, 10, 5, 1, 1, 1, 1, 1, 0, 1, 4, 1, 3, 2, 2, 5, 2, 6, 2, 5, 2, 3, 1, 1, 3, 1, 2, 1, 1, 1, 1, 1, 0, 3, 6, 6, 5, 5, 7, 8, 6, 5, 5, 7, 8, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 2, 1, 1, 0, 1, 1, 2, 1, 0, 2, 1, 1, } var yyChk = [...]int{ -1000, -1, -33, -2, -34, 78, -37, -38, 83, -3, -4, 38, 39, 10, 12, 28, 29, 47, 55, 56, -7, -8, -9, -14, -5, -6, 13, 15, 44, -19, -22, 9, 79, -18, 75, 4, -21, 54, 58, 23, 50, 57, 73, -24, -25, -26, -27, -28, 11, -13, -20, 65, 5, 6, 24, 25, 26, 51, 82, 67, 71, 68, -32, -31, -30, -29, -33, -34, -37, -38, -13, -14, -14, 4, 73, 4, -14, 75, 75, 14, 59, 52, 61, 27, 75, 79, 16, 81, 51, 40, 41, 32, 33, 37, 34, 35, 36, 68, 69, 70, 42, 43, 71, 64, 65, 66, 17, 18, 62, 20, 63, 19, 22, 21, -14, 73, -15, -14, 78, -4, 4, -14, 75, 4, 80, -35, -37, -16, 4, 68, -18, 57, 48, 49, 79, -14, 75, 79, 75, 75, 75, 75, 73, 79, -35, -15, 4, 59, 52, 77, 5, -14, -14, -14, -14, -14, -14, -3, 73, -1, 75, 75, -14, -14, 13, 73, -14, -14, -14, -14, -13, -14, 60, -14, 4, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 73, -1, -37, 16, 77, 73, 78, -14, 78, 73, -15, 75, -18, -13, 73, 81, -16, -16, 79, -16, 73, 80, 76, -13, -14, 60, -14, -14, -16, -16, 53, -35, -16, -23, -14, 59, -13, -14, -35, -1, 74, -13, -13, 76, 77, 76, -14, -1, 60, 8, 76, 80, 60, -14, -1, 74, -14, -35, -1, 73, -14, 78, 78, -14, -35, 76, 8, -15, 77, -36, -37, -35, 4, -16, -35, 8, 76, 80, 60, -14, 76, 76, 76, 76, 77, 4, -23, 80, -36, 77, 60, -13, -14, -21, 74, 30, 8, 76, 8, 76, -14, 73, 74, -14, 76, -14, 80, 80, 60, 74, 73, 4, 74, -1, 73, 73, -14, 73, -14, 78, -10, -12, -11, 46, 45, 73, 76, 76, 8, -37, 80, -13, 80, -17, 4, 76, -14, 80, 80, 60, -14, 77, -36, -16, 74, -35, -14, 4, 73, 76, 76, 76, -1, 80, 60, -14, -1, 74, -1, -1, 73, -1, 73, 73, -14, -35, -11, -12, 60, -14, -13, -1, 73, 73, 76, -36, -16, -35, 77, -16, 80, 60, -14, 76, 77, -14, 74, 73, -14, 73, -1, 74, -14, 80, 74, 74, 74, -1, 74, -1, -1, 73, 74, -1, 60, 60, 74, -1, -1, 73, 74, 74, -35, -14, 80, -14, 76, -35, 60, -1, 74, 80, 74, 74, 74, -1, -1, -1, 74, 74, -1, 4, 80, 76, -23, -14, 74, 31, 74, 74, -16, -36, 31, 73, 74, 73, -1, -1, 74, 74, } var yyDef = [...]int{ 168, -2, -2, 168, 169, 172, 171, 175, 177, 3, 6, 7, 8, 57, 0, 0, 0, 0, 0, 0, 23, 24, 25, -2, 27, 28, 0, -2, 0, 61, 62, 0, 173, 0, 0, 112, 110, 0, 0, 0, 0, 0, 173, 90, 91, 92, 93, 94, 95, 0, 109, 0, 114, 115, 116, 117, 118, 0, 0, 0, 0, 0, 139, 140, 141, 142, 2, -2, 170, 176, 9, 58, 10, 0, 168, 112, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, 58, 0, 0, -2, 0, 95, 0, -2, 57, 174, 0, 98, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 173, 0, 119, 0, 96, 57, 0, 173, 113, 134, 133, 135, 136, 137, 138, 4, 168, 0, 57, 57, 0, 0, 0, 168, 30, 32, 0, 64, 0, 0, 0, 86, 111, 132, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 0, 171, 0, 173, 168, 0, 0, 0, 173, 0, 95, 108, 178, 173, 0, 100, 101, 0, 103, 173, 107, 72, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 178, 0, 57, 31, 33, 0, 0, 0, 0, 0, 20, 0, 22, 0, 0, 0, 0, 76, 78, 0, 0, 0, 37, 0, 0, 0, 168, 0, 0, 0, 0, 49, 0, 0, 0, -2, 0, 180, 57, 99, 0, 0, 0, 74, 77, 0, 0, 79, 80, 81, 82, 0, 0, 178, 0, 0, -2, 0, 29, 59, -2, 11, 0, 0, -2, 0, -2, 0, 168, 36, 63, 75, 0, 128, 129, 0, 34, 168, 97, 39, 0, 168, 168, 0, 168, 0, 0, 173, 50, 51, 0, 57, 168, 0, 0, 0, -2, 70, 178, 0, 173, 0, 73, 0, 123, 124, 0, 0, 0, 0, 0, 89, 0, 120, 0, 168, -2, -2, 21, 0, 127, 0, 0, 0, 40, 0, 0, 168, 0, 168, 168, 0, 0, 52, 53, 168, 58, 0, 0, 168, 168, 0, 0, 102, 0, 173, 105, 122, 0, 0, 83, 0, 0, 87, 173, 0, 168, 0, 35, 0, 130, 38, 41, 42, 0, 44, 0, 0, 168, 48, 56, 168, 168, 65, 0, 0, 168, 71, 104, 0, 0, 125, 0, 85, 119, 0, 0, 15, 131, 43, 45, 46, 0, 54, 55, 66, 67, 0, 0, 126, 84, 178, 121, 14, 0, 47, 68, 106, 0, 0, 168, 88, 168, 0, 0, 13, 12, } var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 83, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 82, 3, 3, 3, 70, 71, 3, 75, 76, 68, 64, 77, 65, 81, 69, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 60, 78, 62, 59, 63, 61, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 79, 3, 80, 67, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 73, 66, 74, } var yyTok2 = [...]int{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 72, } var yyTok3 = [...]int{ 0, } var yyErrorMessages = [...]struct { state int token int msg string }{} //line yaccpar:1 /* parser for yacc output */ var ( yyDebug = 0 yyErrorVerbose = false ) type yyLexer interface { Lex(lval *yySymType) int Error(s string) } type yyParser interface { Parse(yyLexer) int Lookahead() int } type yyParserImpl struct { lval yySymType stack [yyInitialStackSize]yySymType char int } func (p *yyParserImpl) Lookahead() int { return p.char } func yyNewParser() yyParser { return &yyParserImpl{} } const yyFlag = -1000 func yyTokname(c int) string { if c >= 1 && c-1 < len(yyToknames) { if yyToknames[c-1] != "" { return yyToknames[c-1] } } return __yyfmt__.Sprintf("tok-%v", c) } func yyStatname(s int) string { if s >= 0 && s < len(yyStatenames) { if yyStatenames[s] != "" { return yyStatenames[s] } } return __yyfmt__.Sprintf("state-%v", s) } func yyErrorMessage(state, lookAhead int) string { const TOKSTART = 4 if !yyErrorVerbose { return "syntax error" } for _, e := range yyErrorMessages { if e.state == state && e.token == lookAhead { return "syntax error: " + e.msg } } res := "syntax error: unexpected " + yyTokname(lookAhead) // To match Bison, suggest at most four expected tokens. expected := make([]int, 0, 4) // Look for shiftable tokens. base := yyPact[state] for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { if len(expected) == cap(expected) { return res } expected = append(expected, tok) } } if yyDef[state] == -2 { i := 0 for yyExca[i] != -1 || yyExca[i+1] != state { i += 2 } // Look for tokens that we accept or reduce. for i += 2; yyExca[i] >= 0; i += 2 { tok := yyExca[i] if tok < TOKSTART || yyExca[i+1] == 0 { continue } if len(expected) == cap(expected) { return res } expected = append(expected, tok) } // If the default action is to accept or reduce, give up. if yyExca[i+1] != 0 { return res } } for i, tok := range expected { if i == 0 { res += ", expecting " } else { res += " or " } res += yyTokname(tok) } return res } func yylex1(lex yyLexer, lval *yySymType) (char, token int) { token = 0 char = lex.Lex(lval) if char <= 0 { token = yyTok1[0] goto out } if char < len(yyTok1) { token = yyTok1[char] goto out } if char >= yyPrivate { if char < yyPrivate+len(yyTok2) { token = yyTok2[char-yyPrivate] goto out } } for i := 0; i < len(yyTok3); i += 2 { token = yyTok3[i+0] if token == char { token = yyTok3[i+1] goto out } } out: if token == 0 { token = yyTok2[1] /* unknown char */ } if yyDebug >= 3 { __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) } return char, token } func yyParse(yylex yyLexer) int { return yyNewParser().Parse(yylex) } func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { var yyn int var yyVAL yySymType var yyDollar []yySymType _ = yyDollar // silence set and not used yyS := yyrcvr.stack[:] Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yystate := 0 yyrcvr.char = -1 yytoken := -1 // yyrcvr.char translated into internal numbering defer func() { // Make sure we report no lookahead when not parsing. yystate = -1 yyrcvr.char = -1 yytoken = -1 }() yyp := -1 goto yystack ret0: return 0 ret1: return 1 yystack: /* put a state and value onto the stack */ if yyDebug >= 4 { __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) } yyp++ if yyp >= len(yyS) { nyys := make([]yySymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys } yyS[yyp] = yyVAL yyS[yyp].yys = yystate yynewstate: yyn = yyPact[yystate] if yyn <= yyFlag { goto yydefault /* simple state */ } if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) } yyn += yytoken if yyn < 0 || yyn >= yyLast { goto yydefault } yyn = yyAct[yyn] if yyChk[yyn] == yytoken { /* valid shift */ yyrcvr.char = -1 yytoken = -1 yyVAL = yyrcvr.lval yystate = yyn if Errflag > 0 { Errflag-- } goto yystack } yydefault: /* default state action */ yyn = yyDef[yystate] if yyn == -2 { if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) } /* look through exception table */ xi := 0 for { if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { break } xi += 2 } for xi += 2; ; xi += 2 { yyn = yyExca[xi+0] if yyn < 0 || yyn == yytoken { break } } yyn = yyExca[xi+1] if yyn < 0 { goto ret0 } } if yyn == 0 { /* error ... attempt to resume parsing */ switch Errflag { case 0: /* brand new error */ yylex.Error(yyErrorMessage(yystate, yytoken)) Nerrs++ if yyDebug >= 1 { __yyfmt__.Printf("%s", yyStatname(yystate)) __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) } fallthrough case 1, 2: /* incompletely recovered error ... try again */ Errflag = 3 /* find a state where "error" is a legal shift action */ for yyp >= 0 { yyn = yyPact[yyS[yyp].yys] + yyErrCode if yyn >= 0 && yyn < yyLast { yystate = yyAct[yyn] /* simulate a shift of "error" */ if yyChk[yystate] == yyErrCode { goto yystack } } /* the current p has no shift on "error", pop stack */ if yyDebug >= 2 { __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) } yyp-- } /* there is no state on the stack with an error shift ... abort */ goto ret1 case 3: /* no shift yet; clobber input char */ if yyDebug >= 2 { __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) } if yytoken == yyEofCode { goto ret1 } yyrcvr.char = -1 yytoken = -1 goto yynewstate /* try again in the same state */ } } /* reduction by production yyn */ if yyDebug >= 2 { __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) } yynt := yyn yypt := yyp _ = yypt // guard against "declared and not used" yyp -= yyR2[yyn] // yyp is now the index of $0. Perform the default action. Iff the // reduced production is ε, $1 is possibly out of range. if yyp+1 >= len(yyS) { nyys := make([]yySymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys } yyVAL = yyS[yyp+1] /* consult goto table to find next state */ yyn = yyR1[yyn] yyg := yyPgo[yyn] yyj := yyg + yyS[yyp].yys + 1 if yyj >= yyLast { yystate = yyAct[yyg] } else { yystate = yyAct[yyj] if yyChk[yystate] != -yyn { yystate = yyAct[yyg] } } // dummy call; replaced with literal code switch yynt { case 1: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:108 { yyVAL.compstmt = nil } case 2: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:112 { yyVAL.compstmt = yyDollar[1].stmts } case 3: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:118 { if yyDollar[2].stmt != nil { yyVAL.stmts = &ast.StmtsStmt{Stmts: []ast.Stmt{yyDollar[2].stmt}} } if l, ok := yylex.(*Lexer); ok { l.stmt = yyVAL.stmts } } case 4: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:127 { if yyDollar[3].stmt != nil { if yyDollar[1].stmts == nil { yyVAL.stmts = &ast.StmtsStmt{Stmts: []ast.Stmt{yyDollar[3].stmt}} } else { stmts := yyDollar[1].stmts.(*ast.StmtsStmt) stmts.Stmts = append(stmts.Stmts, yyDollar[3].stmt) } if l, ok := yylex.(*Lexer); ok { l.stmt = yyVAL.stmts } } } case 5: yyDollar = yyS[yypt-0 : yypt+1] //line parser.go.y:143 { yyVAL.stmt = nil } case 6: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:147 { yyVAL.stmt = yyDollar[1].stmt_var_or_lets } case 7: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:151 { yyVAL.stmt = &ast.BreakStmt{} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 8: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:156 { yyVAL.stmt = &ast.ContinueStmt{} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 9: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:161 { yyVAL.stmt = &ast.ReturnStmt{Exprs: yyDollar[2].exprs} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 10: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:166 { yyVAL.stmt = &ast.ThrowStmt{Expr: yyDollar[2].expr} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 11: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:171 { yyVAL.stmt = &ast.ModuleStmt{Name: yyDollar[2].tok.Lit, Stmt: yyDollar[4].compstmt} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 12: yyDollar = yyS[yypt-13 : yypt+1] //line parser.go.y:176 { yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Var: yyDollar[6].tok.Lit, Catch: yyDollar[8].compstmt, Finally: yyDollar[12].compstmt} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 13: yyDollar = yyS[yypt-12 : yypt+1] //line parser.go.y:181 { yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Catch: yyDollar[7].compstmt, Finally: yyDollar[11].compstmt} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 14: yyDollar = yyS[yypt-9 : yypt+1] //line parser.go.y:186 { yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Var: yyDollar[6].tok.Lit, Catch: yyDollar[8].compstmt} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 15: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:191 { yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Catch: yyDollar[7].compstmt} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 16: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:196 { yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.CallExpr{Name: yyDollar[2].tok.Lit, SubExprs: yyDollar[4].exprs, VarArg: true, Go: true}} yyVAL.stmt.SetPosition(yyDollar[2].tok.Position()) } case 17: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:201 { yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.CallExpr{Name: yyDollar[2].tok.Lit, SubExprs: yyDollar[4].exprs, Go: true}} yyVAL.stmt.SetPosition(yyDollar[2].tok.Position()) } case 18: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:206 { yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.AnonCallExpr{Expr: yyDollar[2].expr, SubExprs: yyDollar[4].exprs, VarArg: true, Go: true}} yyVAL.stmt.SetPosition(yyDollar[2].expr.Position()) } case 19: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:211 { yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.AnonCallExpr{Expr: yyDollar[2].expr, SubExprs: yyDollar[4].exprs, Go: true}} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 20: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:216 { yyVAL.stmt = &ast.DeleteStmt{Item: yyDollar[3].expr} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 21: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:221 { yyVAL.stmt = &ast.DeleteStmt{Item: yyDollar[3].expr, Key: yyDollar[5].expr} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 22: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:226 { yyVAL.stmt = &ast.CloseStmt{Expr: yyDollar[3].expr} yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) } case 23: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:231 { yyVAL.stmt = yyDollar[1].stmt_if } case 24: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:235 { yyVAL.stmt = yyDollar[1].stmt_for } case 25: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:239 { yyVAL.stmt = yyDollar[1].stmt_switch } case 26: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:243 { yyVAL.stmt = &ast.ExprStmt{Expr: yyDollar[1].expr} yyVAL.stmt.SetPosition(yyDollar[1].expr.Position()) } case 27: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:250 { yyVAL.stmt_var_or_lets = yyDollar[1].stmt_var } case 28: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:254 { yyVAL.stmt_var_or_lets = yyDollar[1].stmt_lets } case 29: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:260 { yyVAL.stmt_var = &ast.VarStmt{Names: yyDollar[2].expr_idents, Exprs: yyDollar[4].exprs} yyVAL.stmt_var.SetPosition(yyDollar[1].tok.Position()) } case 30: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:267 { yyVAL.stmt_lets = &ast.LetsStmt{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{yyDollar[3].expr}} yyVAL.stmt_lets.SetPosition(yyDollar[1].expr.Position()) } case 31: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:272 { if len(yyDollar[1].exprs) == 2 && len(yyDollar[3].exprs) == 1 { if _, ok := yyDollar[3].exprs[0].(*ast.ItemExpr); ok { yyVAL.stmt_lets = &ast.LetMapItemStmt{LHSS: yyDollar[1].exprs, RHS: yyDollar[3].exprs[0]} } else { yyVAL.stmt_lets = &ast.LetsStmt{LHSS: yyDollar[1].exprs, RHSS: yyDollar[3].exprs} } } else { yyVAL.stmt_lets = &ast.LetsStmt{LHSS: yyDollar[1].exprs, RHSS: yyDollar[3].exprs} } yyVAL.stmt_lets.SetPosition(yyDollar[1].exprs[0].Position()) } case 32: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:285 { yyVAL.stmt_lets = &ast.ChanStmt{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} yyVAL.stmt_lets.SetPosition(yyDollar[1].expr.Position()) } case 33: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:290 { if len(yyDollar[1].exprs) == 2 { chanStmt := &ast.ChanStmt{LHS: yyDollar[1].exprs[0].(ast.Expr), OkExpr: yyDollar[1].exprs[1].(ast.Expr), RHS: yyDollar[3].expr} yyVAL.stmt_lets = chanStmt yyVAL.stmt_lets.SetPosition(chanStmt.LHS.Position()) } else if len(yyDollar[1].exprs) < 2 { yylex.Error("missing expressions on left side of channel operator") yyVAL.stmt_lets = &ast.ChanStmt{RHS: yyDollar[3].expr} yyVAL.stmt_lets.SetPosition(yyDollar[2].tok.Position()) } } case 34: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:304 { yyVAL.stmt_if = &ast.IfStmt{If: yyDollar[2].expr, Then: yyDollar[4].compstmt, Else: nil} yyVAL.stmt_if.SetPosition(yyDollar[1].tok.Position()) } case 35: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:309 { ifStmt := yyDollar[1].stmt_if.(*ast.IfStmt) ifStmt.ElseIf = append(ifStmt.ElseIf, &ast.IfStmt{If: yyDollar[4].expr, Then: yyDollar[6].compstmt}) } case 36: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:314 { ifStmt := yyDollar[1].stmt_if.(*ast.IfStmt) if ifStmt.Else != nil { yylex.Error("multiple else statement") } ifStmt.Else = yyDollar[4].compstmt } case 37: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:324 { yyVAL.stmt_for = &ast.LoopStmt{Stmt: yyDollar[3].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 38: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:329 { if len(yyDollar[2].expr_idents) < 1 { yylex.Error("missing identifier") } else if len(yyDollar[2].expr_idents) > 2 { yylex.Error("too many identifiers") } else { yyVAL.stmt_for = &ast.ForStmt{Vars: yyDollar[2].expr_idents, Value: yyDollar[4].expr, Stmt: yyDollar[6].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } } case 39: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:340 { yyVAL.stmt_for = &ast.LoopStmt{Expr: yyDollar[2].expr, Stmt: yyDollar[4].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 40: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:345 { yyVAL.stmt_for = &ast.CForStmt{Stmt: yyDollar[5].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 41: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:350 { yyVAL.stmt_for = &ast.CForStmt{Expr3: yyDollar[4].expr, Stmt: yyDollar[6].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 42: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:355 { yyVAL.stmt_for = &ast.CForStmt{Expr2: yyDollar[3].expr, Stmt: yyDollar[6].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 43: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:360 { yyVAL.stmt_for = &ast.CForStmt{Expr2: yyDollar[3].expr, Expr3: yyDollar[5].expr, Stmt: yyDollar[7].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 44: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:365 { yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Stmt: yyDollar[6].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 45: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:370 { yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr3: yyDollar[5].expr, Stmt: yyDollar[7].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 46: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:375 { yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr2: yyDollar[4].expr, Stmt: yyDollar[7].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 47: yyDollar = yyS[yypt-9 : yypt+1] //line parser.go.y:380 { yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr2: yyDollar[4].expr, Expr3: yyDollar[6].expr, Stmt: yyDollar[8].compstmt} yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) } case 48: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:387 { switchStmt := yyDollar[5].stmt_switch_cases.(*ast.SwitchStmt) switchStmt.Expr = yyDollar[2].expr yyVAL.stmt_switch = switchStmt yyVAL.stmt_switch.SetPosition(yyDollar[1].tok.Position()) } case 49: yyDollar = yyS[yypt-0 : yypt+1] //line parser.go.y:396 { yyVAL.stmt_switch_cases = &ast.SwitchStmt{} } case 50: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:400 { yyVAL.stmt_switch_cases = &ast.SwitchStmt{Default: yyDollar[1].stmt_switch_default} } case 51: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:404 { yyVAL.stmt_switch_cases = &ast.SwitchStmt{Cases: []ast.Stmt{yyDollar[1].stmt_switch_case}} } case 52: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:408 { switchStmt := yyDollar[1].stmt_switch_cases.(*ast.SwitchStmt) switchStmt.Cases = append(switchStmt.Cases, yyDollar[2].stmt_switch_case) yyVAL.stmt_switch_cases = switchStmt } case 53: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:414 { switchStmt := yyDollar[1].stmt_switch_cases.(*ast.SwitchStmt) if switchStmt.Default != nil { yylex.Error("multiple default statement") } switchStmt.Default = yyDollar[2].stmt_switch_default } case 54: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:424 { yyVAL.stmt_switch_case = &ast.SwitchCaseStmt{Exprs: []ast.Expr{yyDollar[2].expr}, Stmt: yyDollar[4].compstmt} yyVAL.stmt_switch_case.SetPosition(yyDollar[1].tok.Position()) } case 55: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:429 { yyVAL.stmt_switch_case = &ast.SwitchCaseStmt{Exprs: yyDollar[2].exprs, Stmt: yyDollar[4].compstmt} yyVAL.stmt_switch_case.SetPosition(yyDollar[1].tok.Position()) } case 56: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:436 { yyVAL.stmt_switch_default = yyDollar[3].compstmt } case 57: yyDollar = yyS[yypt-0 : yypt+1] //line parser.go.y:443 { yyVAL.exprs = nil } case 58: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:447 { yyVAL.exprs = []ast.Expr{yyDollar[1].expr} } case 59: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:451 { if len(yyDollar[1].exprs) == 0 { yylex.Error("syntax error: unexpected ','") } yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[4].expr) } case 60: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:458 { if len(yyDollar[1].exprs) == 0 { yylex.Error("syntax error: unexpected ','") } yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[4].expr_ident) } case 61: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:467 { yyVAL.expr = yyDollar[1].expr_member_or_ident } case 62: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:471 { yyVAL.expr = yyDollar[1].expr_literals } case 63: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:475 { yyVAL.expr = &ast.TernaryOpExpr{Expr: yyDollar[1].expr, LHS: yyDollar[3].expr, RHS: yyDollar[5].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 64: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:480 { yyVAL.expr = &ast.NilCoalescingOpExpr{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 65: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:485 { yyVAL.expr = &ast.FuncExpr{Params: yyDollar[3].expr_idents, Stmt: yyDollar[6].compstmt} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 66: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:490 { yyVAL.expr = &ast.FuncExpr{Params: yyDollar[3].expr_idents, Stmt: yyDollar[7].compstmt, VarArg: true} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 67: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:495 { yyVAL.expr = &ast.FuncExpr{Name: yyDollar[2].tok.Lit, Params: yyDollar[4].expr_idents, Stmt: yyDollar[7].compstmt} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 68: yyDollar = yyS[yypt-9 : yypt+1] //line parser.go.y:500 { yyVAL.expr = &ast.FuncExpr{Name: yyDollar[2].tok.Lit, Params: yyDollar[4].expr_idents, Stmt: yyDollar[8].compstmt, VarArg: true} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 69: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:505 { yyVAL.expr = &ast.ArrayExpr{} if l, ok := yylex.(*Lexer); ok { yyVAL.expr.SetPosition(l.pos) } } case 70: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:510 { yyVAL.expr = &ast.ArrayExpr{Exprs: yyDollar[3].exprs} if l, ok := yylex.(*Lexer); ok { yyVAL.expr.SetPosition(l.pos) } } case 71: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:515 { yyVAL.expr = &ast.ArrayExpr{Exprs: yyDollar[5].exprs, TypeData: &ast.TypeStruct{Kind: ast.TypeSlice, SubType: yyDollar[2].type_data, Dimensions: yyDollar[1].slice_count}} if l, ok := yylex.(*Lexer); ok { yyVAL.expr.SetPosition(l.pos) } } case 72: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:520 { yyVAL.expr = &ast.ParenExpr{SubExpr: yyDollar[2].expr} if l, ok := yylex.(*Lexer); ok { yyVAL.expr.SetPosition(l.pos) } } case 73: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:525 { yyVAL.expr = &ast.CallExpr{Name: yyDollar[1].tok.Lit, SubExprs: yyDollar[3].exprs, VarArg: true} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 74: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:530 { yyVAL.expr = &ast.CallExpr{Name: yyDollar[1].tok.Lit, SubExprs: yyDollar[3].exprs} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 75: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:535 { yyVAL.expr = &ast.AnonCallExpr{Expr: yyDollar[1].expr, SubExprs: yyDollar[3].exprs, VarArg: true} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 76: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:540 { yyVAL.expr = &ast.AnonCallExpr{Expr: yyDollar[1].expr, SubExprs: yyDollar[3].exprs} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 77: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:545 { yyVAL.expr = &ast.ItemExpr{Item: yyDollar[1].expr_ident, Index: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr_ident.Position()) } case 78: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:550 { yyVAL.expr = &ast.ItemExpr{Item: yyDollar[1].expr, Index: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 79: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:555 { yyVAL.expr = &ast.LenExpr{Expr: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 80: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:560 { yyVAL.expr = &ast.ImportExpr{Name: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 81: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:565 { if yyDollar[3].type_data.Kind == ast.TypeDefault { yyDollar[3].type_data.Kind = ast.TypePtr yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data} } else { yyVAL.expr = &ast.MakeExpr{TypeData: &ast.TypeStruct{Kind: ast.TypePtr, SubType: yyDollar[3].type_data}} } yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 82: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:575 { yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 83: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:580 { yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data, LenExpr: yyDollar[5].expr} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 84: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:585 { yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data, LenExpr: yyDollar[5].expr, CapExpr: yyDollar[7].expr} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 85: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:590 { yyVAL.expr = &ast.MakeTypeExpr{Name: yyDollar[4].tok.Lit, Type: yyDollar[6].expr} yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 86: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:595 { yyVAL.expr = &ast.IncludeExpr{ItemExpr: yyDollar[1].expr, ListExpr: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 87: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:600 { yyDollar[4].expr_map.TypeData = &ast.TypeStruct{Kind: ast.TypeMap, Key: &ast.TypeStruct{Name: "interface"}, SubType: &ast.TypeStruct{Name: "interface"}} yyVAL.expr = yyDollar[4].expr_map yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 88: yyDollar = yyS[yypt-10 : yypt+1] //line parser.go.y:606 { yyDollar[8].expr_map.TypeData = &ast.TypeStruct{Kind: ast.TypeMap, Key: yyDollar[3].type_data, SubType: yyDollar[5].type_data} yyVAL.expr = yyDollar[8].expr_map yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) } case 89: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:612 { yyVAL.expr = yyDollar[3].expr_map yyVAL.expr.SetPosition(yyDollar[3].expr_map.Position()) } case 90: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:617 { yyVAL.expr = yyDollar[1].expr_slice yyVAL.expr.SetPosition(yyDollar[1].expr_slice.Position()) } case 91: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:622 { yyVAL.expr = yyDollar[1].expr_chan yyVAL.expr.SetPosition(yyDollar[1].expr_chan.Position()) } case 95: yyDollar = yyS[yypt-0 : yypt+1] //line parser.go.y:631 { yyVAL.expr_idents = []string{} } case 96: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:635 { yyVAL.expr_idents = []string{yyDollar[1].tok.Lit} } case 97: yyDollar = yyS[yypt-4 : yypt+1] //line parser.go.y:639 { if len(yyDollar[1].expr_idents) == 0 { yylex.Error("syntax error: unexpected ','") } yyVAL.expr_idents = append(yyDollar[1].expr_idents, yyDollar[4].tok.Lit) } case 98: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:648 { yyVAL.type_data = &ast.TypeStruct{Name: yyDollar[1].tok.Lit} } case 99: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:652 { if yyDollar[1].type_data.Kind != ast.TypeDefault { yylex.Error("not type default") } else { yyDollar[1].type_data.Env = append(yyDollar[1].type_data.Env, yyDollar[1].type_data.Name) yyDollar[1].type_data.Name = yyDollar[3].tok.Lit } } case 100: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:661 { if yyDollar[2].type_data.Kind == ast.TypeDefault { yyDollar[2].type_data.Kind = ast.TypePtr yyVAL.type_data = yyDollar[2].type_data } else { yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypePtr, SubType: yyDollar[2].type_data} } } case 101: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:670 { if yyDollar[2].type_data.Kind == ast.TypeDefault { yyDollar[2].type_data.Kind = ast.TypeSlice yyDollar[2].type_data.Dimensions = yyDollar[1].slice_count yyVAL.type_data = yyDollar[2].type_data } else { yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeSlice, SubType: yyDollar[2].type_data, Dimensions: yyDollar[1].slice_count} } } case 102: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:680 { yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeMap, Key: yyDollar[3].type_data, SubType: yyDollar[5].type_data} } case 103: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:684 { if yyDollar[2].type_data.Kind == ast.TypeDefault { yyDollar[2].type_data.Kind = ast.TypeChan yyVAL.type_data = yyDollar[2].type_data } else { yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeChan, SubType: yyDollar[2].type_data} } } case 104: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:693 { yyVAL.type_data = yyDollar[4].type_data_struct } case 105: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:699 { yyVAL.type_data_struct = &ast.TypeStruct{Kind: ast.TypeStructType, StructNames: []string{yyDollar[1].tok.Lit}, StructTypes: []*ast.TypeStruct{yyDollar[2].type_data}} } case 106: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:703 { if yyDollar[1].type_data_struct == nil { yylex.Error("syntax error: unexpected ','") } yyVAL.type_data_struct.StructNames = append(yyVAL.type_data_struct.StructNames, yyDollar[4].tok.Lit) yyVAL.type_data_struct.StructTypes = append(yyVAL.type_data_struct.StructTypes, yyDollar[5].type_data) } case 107: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:713 { yyVAL.slice_count = 1 } case 108: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:717 { yyVAL.slice_count = yyDollar[3].slice_count + 1 } case 109: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:723 { yyVAL.expr_member_or_ident = yyDollar[1].expr_member } case 110: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:727 { yyVAL.expr_member_or_ident = yyDollar[1].expr_ident } case 111: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:733 { yyVAL.expr_member = &ast.MemberExpr{Expr: yyDollar[1].expr, Name: yyDollar[3].tok.Lit} yyVAL.expr_member.SetPosition(yyDollar[1].expr.Position()) } case 112: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:740 { yyVAL.expr_ident = &ast.IdentExpr{Lit: yyDollar[1].tok.Lit} yyVAL.expr_ident.SetPosition(yyDollar[1].tok.Position()) } case 113: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:747 { num, err := toNumber("-" + yyDollar[2].tok.Lit) if err != nil { yylex.Error("invalid number: -" + yyDollar[2].tok.Lit) } yyVAL.expr_literals = &ast.LiteralExpr{Literal: num} yyVAL.expr_literals.SetPosition(yyDollar[2].tok.Position()) } case 114: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:756 { num, err := toNumber(yyDollar[1].tok.Lit) if err != nil { yylex.Error("invalid number: " + yyDollar[1].tok.Lit) } yyVAL.expr_literals = &ast.LiteralExpr{Literal: num} yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) } case 115: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:765 { yyVAL.expr_literals = &ast.LiteralExpr{Literal: stringToValue(yyDollar[1].tok.Lit)} yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) } case 116: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:770 { yyVAL.expr_literals = &ast.LiteralExpr{Literal: trueValue} yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) } case 117: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:775 { yyVAL.expr_literals = &ast.LiteralExpr{Literal: falseValue} yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) } case 118: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:780 { yyVAL.expr_literals = &ast.LiteralExpr{Literal: nilValue} yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) } case 119: yyDollar = yyS[yypt-0 : yypt+1] //line parser.go.y:787 { yyVAL.expr_map = &ast.MapExpr{} } case 120: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:791 { yyVAL.expr_map = &ast.MapExpr{Keys: []ast.Expr{yyDollar[1].expr}, Values: []ast.Expr{yyDollar[3].expr}} } case 121: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:795 { if yyDollar[1].expr_map.Keys == nil { yylex.Error("syntax error: unexpected ','") } yyVAL.expr_map.Keys = append(yyVAL.expr_map.Keys, yyDollar[4].expr) yyVAL.expr_map.Values = append(yyVAL.expr_map.Values, yyDollar[6].expr) } case 122: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:805 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: yyDollar[5].expr} } case 123: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:809 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: nil} } case 124: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:813 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: nil, End: yyDollar[4].expr} } case 125: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:817 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, End: yyDollar[4].expr, Cap: yyDollar[6].expr} } case 126: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:821 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: yyDollar[5].expr, Cap: yyDollar[7].expr} } case 127: yyDollar = yyS[yypt-6 : yypt+1] //line parser.go.y:825 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: yyDollar[5].expr} } case 128: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:829 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: nil} } case 129: yyDollar = yyS[yypt-5 : yypt+1] //line parser.go.y:833 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: nil, End: yyDollar[4].expr} } case 130: yyDollar = yyS[yypt-7 : yypt+1] //line parser.go.y:837 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, End: yyDollar[4].expr, Cap: yyDollar[6].expr} } case 131: yyDollar = yyS[yypt-8 : yypt+1] //line parser.go.y:841 { yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: yyDollar[5].expr, Cap: yyDollar[7].expr} } case 132: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:847 { yyVAL.expr_chan = &ast.ChanExpr{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} } case 133: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:851 { yyVAL.expr_chan = &ast.ChanExpr{RHS: yyDollar[2].expr} } case 134: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:857 { yyVAL.expr = &ast.UnaryExpr{Operator: "-", Expr: yyDollar[2].expr} yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) } case 135: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:862 { yyVAL.expr = &ast.UnaryExpr{Operator: "!", Expr: yyDollar[2].expr} yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) } case 136: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:867 { yyVAL.expr = &ast.UnaryExpr{Operator: "^", Expr: yyDollar[2].expr} yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) } case 137: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:872 { yyVAL.expr = &ast.AddrExpr{Expr: yyDollar[2].expr} yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) } case 138: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:877 { yyVAL.expr = &ast.DerefExpr{Expr: yyDollar[2].expr} yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) } case 139: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:884 { yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 140: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:889 { yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 141: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:894 { yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 142: yyDollar = yyS[yypt-1 : yypt+1] //line parser.go.y:899 { yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 143: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:906 { rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: oneLiteral}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 144: yyDollar = yyS[yypt-2 : yypt+1] //line parser.go.y:914 { rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: oneLiteral}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 145: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:922 { rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 146: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:930 { rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 147: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:938 { rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "|", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 148: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:946 { rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "*", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 149: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:954 { rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "/", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 150: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:962 { rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "&", RHS: yyDollar[3].expr}} rhs.Op.SetPosition(yyDollar[1].expr.Position()) rhs.SetPosition(yyDollar[1].expr.Position()) yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 151: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:973 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "*", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 152: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:978 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "/", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 153: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:983 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "%", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 154: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:988 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "<<", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 155: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:993 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: ">>", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 156: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:998 { yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "&", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 157: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1005 { yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 158: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1010 { yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 159: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1015 { yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "|", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 160: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1022 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "==", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 161: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1027 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "!=", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 162: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1032 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "<", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 163: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1037 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "<=", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 164: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1042 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: ">", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 165: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1047 { yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: ">=", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 166: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1054 { yyVAL.expr = &ast.BinaryOperator{LHS: yyDollar[1].expr, Operator: "&&", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } case 167: yyDollar = yyS[yypt-3 : yypt+1] //line parser.go.y:1059 { yyVAL.expr = &ast.BinaryOperator{LHS: yyDollar[1].expr, Operator: "||", RHS: yyDollar[3].expr} yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) } } goto yystack /* stack new state and value */ }