//line a.y:32 package main import __yyfmt__ "fmt" //line a.y:32 import ( "cmd/internal/asm" "cmd/internal/obj" . "cmd/internal/obj/arm" ) //line a.y:41 type yySymType struct { yys int sym *asm.Sym lval int32 dval float64 sval string addr obj.Addr } const LTYPE1 = 57346 const LTYPE2 = 57347 const LTYPE3 = 57348 const LTYPE4 = 57349 const LTYPE5 = 57350 const LTYPE6 = 57351 const LTYPE7 = 57352 const LTYPE8 = 57353 const LTYPE9 = 57354 const LTYPEA = 57355 const LTYPEB = 57356 const LTYPEC = 57357 const LTYPED = 57358 const LTYPEE = 57359 const LTYPEG = 57360 const LTYPEH = 57361 const LTYPEI = 57362 const LTYPEJ = 57363 const LTYPEK = 57364 const LTYPEL = 57365 const LTYPEM = 57366 const LTYPEN = 57367 const LTYPEBX = 57368 const LTYPEPLD = 57369 const LCONST = 57370 const LSP = 57371 const LSB = 57372 const LFP = 57373 const LPC = 57374 const LTYPEX = 57375 const LTYPEPC = 57376 const LTYPEF = 57377 const LR = 57378 const LREG = 57379 const LF = 57380 const LFREG = 57381 const LC = 57382 const LCREG = 57383 const LPSR = 57384 const LFCR = 57385 const LCOND = 57386 const LS = 57387 const LAT = 57388 const LGLOBL = 57389 const LFCONST = 57390 const LSCONST = 57391 const LNAME = 57392 const LLAB = 57393 const LVAR = 57394 var yyToknames = []string{ "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4", "LTYPE5", "LTYPE6", "LTYPE7", "LTYPE8", "LTYPE9", "LTYPEA", "LTYPEB", "LTYPEC", "LTYPED", "LTYPEE", "LTYPEG", "LTYPEH", "LTYPEI", "LTYPEJ", "LTYPEK", "LTYPEL", "LTYPEM", "LTYPEN", "LTYPEBX", "LTYPEPLD", "LCONST", "LSP", "LSB", "LFP", "LPC", "LTYPEX", "LTYPEPC", "LTYPEF", "LR", "LREG", "LF", "LFREG", "LC", "LCREG", "LPSR", "LFCR", "LCOND", "LS", "LAT", "LGLOBL", "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", } var yyStatenames = []string{} const yyEofCode = 1 const yyErrCode = 2 const yyMaxDepth = 200 //line yacctab:1 var yyExca = []int{ -1, 1, 1, -1, -2, 2, -1, 196, 68, 63, -2, 53, } const yyNprod = 134 const yyPrivate = 57344 var yyTokenNames []string var yyStates []string const yyLast = 708 var yyAct = []int{ 125, 328, 259, 73, 202, 79, 85, 106, 91, 195, 3, 129, 84, 115, 75, 72, 338, 324, 278, 136, 78, 77, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 301, 86, 86, 289, 52, 61, 62, 90, 89, 86, 86, 86, 71, 103, 104, 284, 277, 86, 58, 57, 276, 120, 275, 96, 99, 101, 263, 112, 145, 105, 105, 224, 110, 334, 321, 302, 206, 105, 140, 123, 141, 143, 146, 113, 249, 152, 151, 55, 114, 58, 57, 197, 139, 92, 190, 165, 94, 341, 148, 149, 95, 93, 44, 46, 164, 154, 150, 231, 160, 128, 87, 56, 108, 64, 300, 311, 254, 167, 55, 60, 45, 59, 152, 97, 253, 58, 57, 86, 88, 255, 196, 340, 111, 184, 188, 189, 118, 191, 333, 124, 126, 331, 56, 327, 325, 309, 39, 199, 192, 108, 60, 308, 59, 211, 55, 58, 57, 92, 45, 305, 94, 295, 86, 226, 95, 93, 292, 222, 223, 288, 103, 104, 103, 104, 267, 86, 266, 262, 56, 103, 104, 258, 38, 225, 55, 45, 60, 108, 59, 245, 221, 45, 86, 233, 220, 144, 234, 235, 236, 237, 238, 239, 252, 219, 242, 243, 244, 250, 56, 246, 218, 247, 37, 248, 223, 200, 60, 216, 59, 264, 100, 257, 215, 198, 194, 193, 183, 265, 214, 182, 268, 269, 180, 271, 166, 153, 279, 279, 279, 279, 137, 53, 53, 53, 127, 35, 36, 272, 231, 273, 274, 317, 74, 83, 83, 281, 282, 283, 217, 330, 329, 251, 196, 83, 293, 196, 323, 116, 286, 287, 122, 291, 58, 57, 294, 90, 89, 314, 133, 134, 135, 304, 303, 90, 270, 256, 261, 297, 299, 147, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 138, 55, 92, 315, 312, 94, 162, 298, 159, 95, 93, 316, 155, 156, 260, 157, 319, 310, 58, 57, 318, 90, 89, 240, 313, 56, 241, 103, 104, 181, 326, 80, 186, 60, 230, 59, 332, 229, 322, 83, 335, 290, 92, 336, 228, 94, 296, 55, 201, 95, 93, 207, 208, 209, 204, 203, 205, 285, 212, 213, 306, 158, 337, 103, 104, 94, 131, 132, 342, 95, 93, 56, 107, 107, 83, 227, 121, 102, 8, 76, 107, 59, 7, 98, 133, 232, 130, 83, 131, 132, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 34, 83, 24, 25, 28, 26, 27, 29, 30, 13, 31, 171, 172, 173, 58, 57, 109, 32, 33, 2, 58, 57, 1, 119, 92, 185, 142, 94, 320, 339, 21, 95, 93, 4, 0, 5, 0, 0, 6, 103, 104, 0, 0, 55, 0, 280, 280, 280, 280, 55, 92, 45, 0, 94, 0, 58, 57, 95, 93, 90, 89, 0, 0, 81, 82, 103, 104, 56, 0, 0, 0, 54, 0, 56, 0, 60, 0, 59, 0, 0, 87, 76, 0, 59, 55, 92, 0, 0, 94, 0, 0, 0, 95, 93, 90, 89, 0, 0, 81, 82, 58, 163, 0, 58, 57, 0, 54, 0, 56, 0, 122, 204, 203, 205, 251, 87, 76, 0, 59, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 55, 58, 57, 55, 0, 0, 0, 58, 57, 0, 58, 57, 0, 58, 57, 169, 170, 171, 172, 173, 162, 161, 54, 0, 56, 187, 0, 56, 0, 0, 55, 0, 76, 0, 59, 76, 55, 59, 0, 55, 0, 0, 55, 0, 0, 0, 0, 0, 204, 203, 205, 94, 117, 0, 56, 95, 93, 210, 54, 0, 56, 54, 60, 56, 59, 0, 56, 0, 76, 0, 59, 60, 0, 59, 76, 0, 59, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 92, 0, 0, 94, 0, 0, 0, 95, 93, 40, 0, 0, 0, 0, 0, 103, 104, 0, 0, 0, 41, 42, 43, 0, 0, 47, 48, 49, 50, 51, 0, 0, 307, 63, 0, 65, 66, 67, 68, 69, 70, 179, 177, 176, 174, 175, 169, 170, 171, 172, 173, 168, 178, 177, 176, 174, 175, 169, 170, 171, 172, 173, 176, 174, 175, 169, 170, 171, 172, 173, 174, 175, 169, 170, 171, 172, 173, } var yyPact = []int{ -1000, -1000, 368, -1000, 174, 140, -1000, 109, 73, -1000, -1000, -1000, -1000, 84, 84, -1000, -1000, -1000, -1000, -1000, 525, 525, 525, -1000, 84, -1000, -1000, -1000, -1000, -1000, -1000, 522, 441, 441, 84, -1000, 400, 400, -1000, -1000, 110, 110, 406, 117, 5, 84, 516, 117, 110, 301, 380, 117, 170, 31, 371, -1000, -1000, 400, 400, 400, 400, 166, 280, 592, 33, 265, -9, 265, 108, 592, 592, -1000, 28, -1000, 8, -1000, 255, 161, -1000, -1000, 27, -1000, -1000, 8, -1000, -1000, 297, 486, -1000, -1000, 26, -1000, -1000, -1000, -1000, 17, 160, -1000, 368, 617, -1000, 607, 158, -1000, -1000, -1000, -1000, -1000, 400, 155, 152, 489, -1000, 295, -1000, -1000, 16, 349, 441, 151, 150, 295, 13, 149, 5, -1000, -1000, 138, 307, -2, 335, 400, 400, -1000, -1000, -1000, 510, 72, 400, 84, -1000, 148, 143, -1000, -1000, 240, 136, 129, 120, 116, 315, 533, -8, 441, 295, 360, 328, 321, 318, 8, -1000, -1000, -1000, 41, 400, 400, 441, -1000, -1000, 400, 400, 400, 400, 400, 308, 310, 400, 400, 400, -1000, 295, -1000, 295, 441, -1000, -1000, 6, 371, -1000, -1000, 211, -1000, -1000, 295, 49, 40, 111, 315, 5, 107, 268, 103, -13, -1000, -1000, -1000, 307, 349, -1000, -1000, -1000, -1000, 102, 100, -1000, 219, 227, 182, 219, 400, 295, 295, -17, -19, -1000, -1000, -23, 255, 255, 255, 255, -1000, -24, 278, -1000, 395, 395, -1000, -1000, -1000, 400, 400, 694, 687, 668, 95, -1000, -1000, -1000, 467, -2, -36, 84, 295, 92, 295, 295, 87, 295, -1000, 289, 242, 37, -1000, -39, -3, 35, 33, -1000, -1000, 85, 84, 597, 77, 71, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 530, 530, 295, -1000, -1000, 39, 528, -1000, -1000, 46, -1000, -1000, 231, 285, 268, -1000, 203, -1000, -1000, 219, -1000, 295, -4, 295, -1000, -1000, -1000, -1000, -1000, 220, -1000, -54, -1000, 70, -1000, 295, 69, -1000, -1000, 201, 67, 295, 64, -1000, -5, 295, -1000, 201, 400, -55, 57, 18, -1000, -1000, 400, -1000, 679, } var yyPgo = []int{ 0, 212, 19, 424, 4, 11, 8, 0, 1, 18, 640, 9, 21, 13, 20, 423, 6, 323, 120, 421, 2, 7, 5, 15, 12, 14, 420, 3, 369, 417, 414, 10, 375, 374, 80, } var yyR1 = []int{ 0, 29, 30, 29, 32, 31, 31, 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 20, 20, 20, 20, 10, 10, 10, 34, 34, 13, 13, 22, 22, 22, 22, 18, 18, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 26, 26, 25, 27, 27, 24, 24, 24, 28, 28, 28, 21, 14, 15, 17, 17, 17, 17, 9, 9, 6, 6, 6, 7, 7, 8, 8, 19, 19, 16, 16, 23, 23, 23, 5, 5, 5, 4, 4, 4, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, } var yyR2 = []int{ 0, 0, 0, 3, 0, 4, 4, 4, 1, 2, 2, 7, 6, 5, 5, 5, 4, 4, 3, 3, 4, 6, 7, 7, 7, 6, 6, 3, 5, 7, 4, 6, 6, 4, 3, 5, 5, 7, 6, 12, 7, 9, 2, 4, 4, 2, 1, 2, 3, 4, 0, 2, 2, 0, 2, 4, 2, 2, 2, 2, 1, 2, 3, 1, 3, 3, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, 4, 1, 1, 1, 1, 2, 1, 5, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 4, 1, 1, 1, 4, 4, 5, 7, 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, 0, 2, 1, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3, } var yyChk = []int{ -1000, -29, -30, -31, 60, 62, 65, -33, 2, 14, 15, 16, 17, 36, 18, 19, 20, 21, 22, 23, 24, 57, 25, 26, 29, 30, 32, 33, 31, 34, 35, 37, 44, 45, 27, 63, 64, 64, 65, 65, -10, -10, -10, -10, -34, 66, -34, -10, -10, -10, -10, -10, -23, -1, 60, 38, 62, 10, 9, 72, 70, -23, -23, -10, -34, -10, -10, -10, -10, -10, -10, -24, -23, -27, -1, -25, 70, -12, -14, -22, -17, 52, 53, -1, -24, -16, -7, 69, -18, 49, 48, -6, 39, 47, 42, 46, -12, -34, -32, -2, -1, -2, -28, 54, 55, -14, -21, -17, 69, -28, -12, -34, -25, 70, -34, -13, -1, 60, -34, -28, -27, 67, -1, -14, -34, -7, -34, 66, 70, -5, 7, 9, 10, -1, -1, -1, -2, 66, 12, -14, -22, -16, -19, -16, -18, 69, -16, -1, -14, -14, 70, 70, -7, 66, 70, 7, 8, 10, 56, -1, -24, 59, 58, 10, 70, 70, 66, -31, 65, 9, 10, 11, 12, 13, 7, 8, 6, 5, 4, 65, 66, -1, 66, 66, -13, -26, -1, 60, -25, -23, 70, -5, -12, 66, 66, -11, -7, 70, 66, -25, 69, -1, -4, 40, 39, 41, 70, 8, -1, -1, 71, -21, -1, -1, -34, 66, 66, 10, 66, 66, 66, 66, -6, -6, 71, -12, -7, 7, 8, 8, 8, 58, -1, -2, -12, -2, -2, -2, -2, -2, 7, 8, -2, -2, -2, -7, -14, -14, -12, 70, -5, 42, -7, 67, 68, 10, -34, -25, 66, -20, 38, 10, 66, 71, -4, -5, 66, 66, -16, -16, 49, -16, -2, -14, -14, 71, 71, 71, -9, -7, -1, -9, -9, -9, 71, 71, -2, -2, 66, 71, -34, -11, 66, -7, -11, 66, -34, -14, 10, 38, 69, 71, 70, -21, -22, 66, -34, 66, 66, 66, -14, 68, -27, -14, 38, 10, -20, 40, -16, -7, -15, 70, -14, 38, 71, 66, -7, 66, -8, 51, 50, 66, -7, 66, 70, -7, -8, -2, 71, -3, 66, 71, -2, } var yyDef = []int{ 1, -2, 0, 3, 0, 0, 8, 0, 0, 50, 50, 50, 50, 53, 53, 50, 50, 50, 50, 50, 0, 0, 0, 50, 53, 50, 50, 50, 50, 50, 50, 0, 0, 0, 53, 4, 0, 0, 9, 10, 0, 0, 0, 53, 0, 53, 0, 53, 0, 0, 53, 53, 0, 0, 109, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 80, 82, 0, 78, 0, 0, 66, 67, 68, 70, 71, 72, 73, 74, 87, 0, 60, 104, 0, 98, 99, 95, 96, 0, 0, 45, 0, 0, 123, 0, 0, 51, 52, 83, 84, 85, 0, 0, 0, 0, 18, 0, 54, 19, 0, 109, 0, 0, 0, 0, 0, 0, 0, 87, 27, 0, 0, 0, 0, 0, 0, 117, 118, 119, 0, 0, 0, 53, 34, 0, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, 59, 61, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 86, 0, 0, 16, 17, 0, 109, 75, 76, 0, 56, 20, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 112, 113, 114, 0, 109, 110, 111, 120, 30, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 43, 0, 0, 0, 0, 0, 62, 0, 0, 44, 124, 125, 126, 127, 128, 0, 0, 131, 132, 133, 87, 13, 14, 15, 0, 56, 0, 53, 0, 0, 0, 0, 53, 0, 28, 46, 0, 0, 106, 0, 0, 0, 0, 35, 36, 104, 53, 0, 0, 0, 81, 79, 69, 89, 93, 94, 90, 91, 92, 105, 97, 129, 130, 12, 55, 21, 0, 0, 64, 65, 53, 25, 26, 0, 47, 0, 107, 0, 31, 32, 0, 38, 0, 0, 0, 11, 22, 23, 24, 48, 0, 29, 0, 37, 0, 40, 0, 0, 49, 108, 0, 0, 0, 0, 100, 0, 0, 41, 0, 0, 0, 121, 0, 88, 39, 0, 101, 122, } var yyTok1 = []int{ 1, 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, 3, 3, 3, 3, 3, 3, 3, 69, 13, 6, 3, 70, 71, 11, 9, 66, 10, 3, 12, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 63, 65, 7, 64, 8, 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, 67, 3, 68, 5, 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, 3, 4, 3, 72, } var yyTok2 = []int{ 2, 3, 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, 59, 60, 61, 62, } var yyTok3 = []int{ 0, } //line yaccpar:1 /* parser for yacc output */ var yyDebug = 0 type yyLexer interface { Lex(lval *yySymType) int Error(s string) } type yyParser interface { Parse(yyLexer) int Lookahead() int } type yyParserImpl struct { lookahead func() int } func (p *yyParserImpl) Lookahead() int { return p.lookahead() } func yyNewParser() yyParser { p := &yyParserImpl{ lookahead: func() int { return -1 }, } return p } const yyFlag = -1000 func yyTokname(c int) string { // 4 is TOKSTART above if c >= 4 && c-4 < len(yyToknames) { if yyToknames[c-4] != "" { return yyToknames[c-4] } } 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 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 yylval yySymType var yyVAL yySymType var yyDollar []yySymType yyS := make([]yySymType, yyMaxDepth) Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yystate := 0 yychar := -1 yytoken := -1 // yychar translated into internal numbering yyrcvr.lookahead = func() int { return yychar } defer func() { // Make sure we report no lookahead when not parsing. yychar = -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 yychar < 0 { yychar, yytoken = yylex1(yylex, &yylval) } yyn += yytoken if yyn < 0 || yyn >= yyLast { goto yydefault } yyn = yyAct[yyn] if yyChk[yyn] == yytoken { /* valid shift */ yychar = -1 yytoken = -1 yyVAL = yylval yystate = yyn if Errflag > 0 { Errflag-- } goto yystack } yydefault: /* default state action */ yyn = yyDef[yystate] if yyn == -2 { if yychar < 0 { yychar, yytoken = yylex1(yylex, &yylval) } /* 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("syntax error") 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 } yychar = -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 2: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:73 { stmtline = asm.Lineno } case 4: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:80 { yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym) if yyDollar[1].sym.Type == LLAB && yyDollar[1].sym.Value != int64(asm.PC) { yyerror("redeclaration of %s", yyDollar[1].sym.Labelname) } yyDollar[1].sym.Type = LLAB yyDollar[1].sym.Value = int64(asm.PC) } case 6: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:90 { yyDollar[1].sym.Type = LVAR yyDollar[1].sym.Value = int64(yyDollar[3].lval) } case 7: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:95 { if yyDollar[1].sym.Value != int64(yyDollar[3].lval) { yyerror("redeclaration of %s", yyDollar[1].sym.Name) } yyDollar[1].sym.Value = int64(yyDollar[3].lval) } case 11: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:110 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, yyDollar[5].lval, &yyDollar[7].addr) } case 12: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:114 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, yyDollar[5].lval, &nullgen) } case 13: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:118 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr) } case 14: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:125 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr) } case 15: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:132 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr) } case 16: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:139 { outcode(yyDollar[1].lval, yyDollar[2].lval, &nullgen, 0, &yyDollar[4].addr) } case 17: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:143 { outcode(yyDollar[1].lval, yyDollar[2].lval, &nullgen, 0, &yyDollar[4].addr) } case 18: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:150 { outcode(yyDollar[1].lval, Always, &nullgen, 0, &yyDollar[3].addr) } case 19: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:157 { outcode(yyDollar[1].lval, Always, &nullgen, 0, &yyDollar[3].addr) } case 20: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:164 { outcode(yyDollar[1].lval, yyDollar[2].lval, &nullgen, 0, &yyDollar[4].addr) } case 21: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:171 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, yyDollar[5].lval, &nullgen) } case 22: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:178 { var g obj.Addr g = nullgen g.Type = obj.TYPE_CONST g.Offset = int64(yyDollar[6].lval) outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &g) } case 23: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:187 { var g obj.Addr g = nullgen g.Type = obj.TYPE_CONST g.Offset = int64(yyDollar[4].lval) outcode(yyDollar[1].lval, yyDollar[2].lval, &g, 0, &yyDollar[7].addr) } case 24: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:199 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[5].addr, int32(yyDollar[3].addr.Reg), &yyDollar[7].addr) } case 25: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:203 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[5].addr, int32(yyDollar[3].addr.Reg), &yyDollar[3].addr) } case 26: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:207 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[4].addr, int32(yyDollar[6].addr.Reg), &yyDollar[6].addr) } case 27: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:214 { outcode(yyDollar[1].lval, yyDollar[2].lval, &nullgen, 0, &nullgen) } case 28: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:221 { asm.Settext(yyDollar[2].addr.Sym) outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[5].addr) } case 29: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:226 { asm.Settext(yyDollar[2].addr.Sym) outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[7].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST lastpc.From3.Offset = int64(yyDollar[4].lval) } } case 30: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:238 { asm.Settext(yyDollar[2].addr.Sym) outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 31: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:243 { asm.Settext(yyDollar[2].addr.Sym) outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[6].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST lastpc.From3.Offset = int64(yyDollar[4].lval) } } case 32: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:256 { outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[6].addr) if asm.Pass > 1 { lastpc.From3.Type = obj.TYPE_CONST lastpc.From3.Offset = int64(yyDollar[4].lval) } } case 33: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:267 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &nullgen) } case 34: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:274 { outcode(yyDollar[1].lval, Always, &nullgen, 0, &yyDollar[3].addr) } case 35: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:281 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr) } case 36: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:285 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, 0, &yyDollar[5].addr) } case 37: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:289 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, yyDollar[5].lval, &yyDollar[7].addr) } case 38: yyDollar = yyS[yypt-6 : yypt+1] //line a.y:293 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, int32(yyDollar[5].addr.Reg), &nullgen) } case 39: yyDollar = yyS[yypt-12 : yypt+1] //line a.y:300 { var g obj.Addr g = nullgen g.Type = obj.TYPE_CONST g.Offset = int64( (0xe << 24) | /* opcode */ (yyDollar[1].lval << 20) | /* MCR/MRC */ ((yyDollar[2].lval ^ C_SCOND_XOR) << 28) | /* scond */ ((yyDollar[3].lval & 15) << 8) | /* coprocessor number */ ((yyDollar[5].lval & 7) << 21) | /* coprocessor operation */ ((yyDollar[7].lval & 15) << 12) | /* arm register */ ((yyDollar[9].lval & 15) << 16) | /* Crn */ ((yyDollar[11].lval & 15) << 0) | /* Crm */ ((yyDollar[12].lval & 7) << 5) | /* coprocessor information */ (1 << 4)) /* must be set */ outcode(AMRC, Always, &nullgen, 0, &g) } case 40: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:312 { outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, int32(yyDollar[5].addr.Reg), &yyDollar[7].addr) } case 41: yyDollar = yyS[yypt-9 : yypt+1] //line a.y:320 { yyDollar[7].addr.Type = obj.TYPE_REGREG2 yyDollar[7].addr.Offset = int64(yyDollar[9].lval) outcode(yyDollar[1].lval, yyDollar[2].lval, &yyDollar[3].addr, int32(yyDollar[5].addr.Reg), &yyDollar[7].addr) } case 42: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:329 { outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &nullgen) } case 43: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:336 { if yyDollar[2].addr.Type != obj.TYPE_CONST || yyDollar[4].addr.Type != obj.TYPE_CONST { yyerror("arguments to PCDATA must be integer constants") } outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 44: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:346 { if yyDollar[2].addr.Type != obj.TYPE_CONST { yyerror("index for FUNCDATA must be integer constant") } if yyDollar[4].addr.Type != obj.NAME_EXTERN && yyDollar[4].addr.Type != obj.NAME_STATIC && yyDollar[4].addr.Type != obj.TYPE_MEM { yyerror("value for FUNCDATA must be symbol reference") } outcode(yyDollar[1].lval, Always, &yyDollar[2].addr, 0, &yyDollar[4].addr) } case 45: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:359 { outcode(yyDollar[1].lval, Always, &nullgen, 0, &nullgen) } case 46: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:365 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE yyVAL.addr.Offset = int64(yyDollar[1].lval) yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown } case 47: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:372 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE yyVAL.addr.Offset = -int64(yyDollar[2].lval) yyVAL.addr.U.Argsize = obj.ArgsSizeUnknown } case 48: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:379 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE yyVAL.addr.Offset = int64(yyDollar[1].lval) yyVAL.addr.U.Argsize = int32(yyDollar[3].lval) } case 49: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:386 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_TEXTSIZE yyVAL.addr.Offset = -int64(yyDollar[2].lval) yyVAL.addr.U.Argsize = int32(yyDollar[4].lval) } case 50: yyDollar = yyS[yypt-0 : yypt+1] //line a.y:394 { yyVAL.lval = Always } case 51: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:398 { yyVAL.lval = (yyDollar[1].lval & ^C_SCOND) | yyDollar[2].lval } case 52: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:402 { yyVAL.lval = yyDollar[1].lval | yyDollar[2].lval } case 55: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:411 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_BRANCH yyVAL.addr.Offset = int64(yyDollar[1].lval) + int64(asm.PC) } case 56: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:417 { yyDollar[1].sym = asm.LabelLookup(yyDollar[1].sym) yyVAL.addr = nullgen if asm.Pass == 2 && yyDollar[1].sym.Type != LLAB { yyerror("undefined label: %s", yyDollar[1].sym.Labelname) } yyVAL.addr.Type = obj.TYPE_BRANCH yyVAL.addr.Offset = yyDollar[1].sym.Value + int64(yyDollar[2].lval) } case 57: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:428 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_CONST yyVAL.addr.Offset = int64(yyDollar[2].lval) } case 58: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:434 { yyVAL.addr = yyDollar[2].addr yyVAL.addr.Type = obj.TYPE_ADDR } case 59: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:439 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SCONST yyVAL.addr.U.Sval = yyDollar[2].sval } case 60: yyVAL.addr = yyS[yypt-0].addr case 61: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:448 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_FCONST yyVAL.addr.U.Dval = yyDollar[2].dval } case 62: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:454 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_FCONST yyVAL.addr.U.Dval = -yyDollar[3].dval } case 63: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:462 { yyVAL.lval = 1 << uint(yyDollar[1].lval&15) } case 64: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:466 { yyVAL.lval = 0 for i := yyDollar[1].lval; i <= yyDollar[3].lval; i++ { yyVAL.lval |= 1 << uint(i&15) } for i := yyDollar[3].lval; i <= yyDollar[1].lval; i++ { yyVAL.lval |= 1 << uint(i&15) } } case 65: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:476 { yyVAL.lval = (1 << uint(yyDollar[1].lval&15)) | yyDollar[3].lval } case 66: yyVAL.addr = yyS[yypt-0].addr case 67: yyVAL.addr = yyS[yypt-0].addr case 68: yyVAL.addr = yyS[yypt-0].addr case 69: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:485 { yyVAL.addr = yyDollar[1].addr yyVAL.addr.Reg = int16(yyDollar[3].lval) } case 70: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:490 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 71: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:496 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 72: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:502 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Offset = int64(yyDollar[1].lval) } case 73: yyVAL.addr = yyS[yypt-0].addr case 74: yyVAL.addr = yyS[yypt-0].addr case 75: yyVAL.addr = yyS[yypt-0].addr case 76: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:513 { yyVAL.addr = yyDollar[1].addr if yyDollar[1].addr.Name != obj.NAME_EXTERN && yyDollar[1].addr.Name != obj.NAME_STATIC { } } case 77: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:521 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Reg = int16(yyDollar[2].lval) yyVAL.addr.Offset = 0 } case 78: yyVAL.addr = yyS[yypt-0].addr case 79: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:531 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Reg = int16(yyDollar[3].lval) yyVAL.addr.Offset = int64(yyDollar[1].lval) } case 80: yyVAL.addr = yyS[yypt-0].addr case 81: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:541 { yyVAL.addr = yyDollar[1].addr yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Reg = int16(yyDollar[3].lval) } case 82: yyVAL.addr = yyS[yypt-0].addr case 83: yyVAL.addr = yyS[yypt-0].addr case 84: yyVAL.addr = yyS[yypt-0].addr case 85: yyVAL.addr = yyS[yypt-0].addr case 86: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:554 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_CONST yyVAL.addr.Offset = int64(yyDollar[2].lval) } case 87: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:562 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 88: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:570 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REGREG yyVAL.addr.Reg = int16(yyDollar[2].lval) yyVAL.addr.Offset = int64(yyDollar[4].lval) } case 89: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:579 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SHIFT yyVAL.addr.Offset = int64(yyDollar[1].lval&15) | int64(yyDollar[4].lval) | (0 << 5) } case 90: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:585 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SHIFT yyVAL.addr.Offset = int64(yyDollar[1].lval&15) | int64(yyDollar[4].lval) | (1 << 5) } case 91: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:591 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SHIFT yyVAL.addr.Offset = int64(yyDollar[1].lval&15) | int64(yyDollar[4].lval) | (2 << 5) } case 92: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:597 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_SHIFT yyVAL.addr.Offset = int64(yyDollar[1].lval&15) | int64(yyDollar[4].lval) | (3 << 5) } case 93: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:605 { if yyVAL.lval < REG_R0 || yyVAL.lval > REG_R15 { print("register value out of range\n") } yyVAL.lval = ((yyDollar[1].lval & 15) << 8) | (1 << 4) } case 94: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:612 { if yyVAL.lval < 0 || yyVAL.lval >= 32 { print("shift value out of range\n") } yyVAL.lval = (yyDollar[1].lval & 31) << 7 } case 95: yyVAL.lval = yyS[yypt-0].lval case 96: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:622 { yyVAL.lval = REGPC } case 97: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:626 { if yyDollar[3].lval < 0 || yyDollar[3].lval >= NREG { print("register value out of range\n") } yyVAL.lval = REG_R0 + yyDollar[3].lval } case 98: yyVAL.lval = yyS[yypt-0].lval case 99: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:636 { yyVAL.lval = REGSP } case 100: yyVAL.lval = yyS[yypt-0].lval case 101: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:643 { if yyDollar[3].lval < 0 || yyDollar[3].lval >= NREG { print("register value out of range\n") } yyVAL.lval = yyDollar[3].lval // TODO(rsc): REG_C0+$3 } case 102: yyVAL.addr = yyS[yypt-0].addr case 103: yyVAL.addr = yyS[yypt-0].addr case 104: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:656 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG yyVAL.addr.Reg = int16(yyDollar[1].lval) } case 105: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:662 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_REG yyVAL.addr.Reg = int16(REG_F0 + yyDollar[3].lval) } case 106: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:670 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Name = int8(yyDollar[3].lval) yyVAL.addr.Sym = nil yyVAL.addr.Offset = int64(yyDollar[1].lval) } case 107: yyDollar = yyS[yypt-5 : yypt+1] //line a.y:678 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Name = int8(yyDollar[4].lval) yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 0) yyVAL.addr.Offset = int64(yyDollar[2].lval) } case 108: yyDollar = yyS[yypt-7 : yypt+1] //line a.y:686 { yyVAL.addr = nullgen yyVAL.addr.Type = obj.TYPE_MEM yyVAL.addr.Name = obj.NAME_STATIC yyVAL.addr.Sym = obj.Linklookup(asm.Ctxt, yyDollar[1].sym.Name, 1) yyVAL.addr.Offset = int64(yyDollar[4].lval) } case 109: yyDollar = yyS[yypt-0 : yypt+1] //line a.y:695 { yyVAL.lval = 0 } case 110: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:699 { yyVAL.lval = yyDollar[2].lval } case 111: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:703 { yyVAL.lval = -yyDollar[2].lval } case 112: yyVAL.lval = yyS[yypt-0].lval case 113: yyVAL.lval = yyS[yypt-0].lval case 114: yyVAL.lval = yyS[yypt-0].lval case 115: yyVAL.lval = yyS[yypt-0].lval case 116: yyDollar = yyS[yypt-1 : yypt+1] //line a.y:715 { yyVAL.lval = int32(yyDollar[1].sym.Value) } case 117: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:719 { yyVAL.lval = -yyDollar[2].lval } case 118: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:723 { yyVAL.lval = yyDollar[2].lval } case 119: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:727 { yyVAL.lval = ^yyDollar[2].lval } case 120: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:731 { yyVAL.lval = yyDollar[2].lval } case 121: yyDollar = yyS[yypt-0 : yypt+1] //line a.y:736 { yyVAL.lval = 0 } case 122: yyDollar = yyS[yypt-2 : yypt+1] //line a.y:740 { yyVAL.lval = yyDollar[2].lval } case 123: yyVAL.lval = yyS[yypt-0].lval case 124: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:747 { yyVAL.lval = yyDollar[1].lval + yyDollar[3].lval } case 125: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:751 { yyVAL.lval = yyDollar[1].lval - yyDollar[3].lval } case 126: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:755 { yyVAL.lval = yyDollar[1].lval * yyDollar[3].lval } case 127: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:759 { yyVAL.lval = yyDollar[1].lval / yyDollar[3].lval } case 128: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:763 { yyVAL.lval = yyDollar[1].lval % yyDollar[3].lval } case 129: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:767 { yyVAL.lval = yyDollar[1].lval << uint(yyDollar[4].lval) } case 130: yyDollar = yyS[yypt-4 : yypt+1] //line a.y:771 { yyVAL.lval = yyDollar[1].lval >> uint(yyDollar[4].lval) } case 131: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:775 { yyVAL.lval = yyDollar[1].lval & yyDollar[3].lval } case 132: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:779 { yyVAL.lval = yyDollar[1].lval ^ yyDollar[3].lval } case 133: yyDollar = yyS[yypt-3 : yypt+1] //line a.y:783 { yyVAL.lval = yyDollar[1].lval | yyDollar[3].lval } } goto yystack /* stack new state and value */ }