github.com/mattn/anko@v0.1.10/parser/parser.go (about) 1 // Code generated by goyacc -o parser.go parser.go.y. DO NOT EDIT. 2 3 //line parser.go.y:2 4 package parser 5 6 import __yyfmt__ "fmt" 7 8 //line parser.go.y:2 9 10 import ( 11 "github.com/mattn/anko/ast" 12 ) 13 14 //line parser.go.y:45 15 type yySymType struct { 16 yys int 17 tok ast.Token 18 19 compstmt ast.Stmt 20 stmts ast.Stmt 21 stmt ast.Stmt 22 stmt_var_or_lets ast.Stmt 23 stmt_var ast.Stmt 24 stmt_lets ast.Stmt 25 stmt_if ast.Stmt 26 stmt_for ast.Stmt 27 stmt_switch ast.Stmt 28 stmt_switch_cases ast.Stmt 29 stmt_switch_case ast.Stmt 30 stmt_switch_default ast.Stmt 31 32 exprs []ast.Expr 33 expr ast.Expr 34 expr_idents []string 35 type_data *ast.TypeStruct 36 type_data_struct *ast.TypeStruct 37 slice_count int 38 expr_member_or_ident ast.Expr 39 expr_member *ast.MemberExpr 40 expr_ident *ast.IdentExpr 41 expr_literals ast.Expr 42 expr_map *ast.MapExpr 43 expr_slice ast.Expr 44 expr_chan ast.Expr 45 expr_unary ast.Expr 46 expr_binary ast.Expr 47 expr_lets ast.Expr 48 49 op_binary ast.Operator 50 op_comparison ast.Operator 51 op_add ast.Operator 52 op_multiply ast.Operator 53 } 54 55 const IDENT = 57346 56 const NUMBER = 57347 57 const STRING = 57348 58 const ARRAY = 57349 59 const VARARG = 57350 60 const FUNC = 57351 61 const RETURN = 57352 62 const VAR = 57353 63 const THROW = 57354 64 const IF = 57355 65 const ELSE = 57356 66 const FOR = 57357 67 const IN = 57358 68 const EQEQ = 57359 69 const NEQ = 57360 70 const GE = 57361 71 const LE = 57362 72 const OROR = 57363 73 const ANDAND = 57364 74 const NEW = 57365 75 const TRUE = 57366 76 const FALSE = 57367 77 const NIL = 57368 78 const NILCOALESCE = 57369 79 const MODULE = 57370 80 const TRY = 57371 81 const CATCH = 57372 82 const FINALLY = 57373 83 const PLUSEQ = 57374 84 const MINUSEQ = 57375 85 const MULEQ = 57376 86 const DIVEQ = 57377 87 const ANDEQ = 57378 88 const OREQ = 57379 89 const BREAK = 57380 90 const CONTINUE = 57381 91 const PLUSPLUS = 57382 92 const MINUSMINUS = 57383 93 const SHIFTLEFT = 57384 94 const SHIFTRIGHT = 57385 95 const SWITCH = 57386 96 const CASE = 57387 97 const DEFAULT = 57388 98 const GO = 57389 99 const CHAN = 57390 100 const STRUCT = 57391 101 const MAKE = 57392 102 const OPCHAN = 57393 103 const EQOPCHAN = 57394 104 const TYPE = 57395 105 const LEN = 57396 106 const DELETE = 57397 107 const CLOSE = 57398 108 const MAP = 57399 109 const IMPORT = 57400 110 const UNARY = 57401 111 112 var yyToknames = [...]string{ 113 "$end", 114 "error", 115 "$unk", 116 "IDENT", 117 "NUMBER", 118 "STRING", 119 "ARRAY", 120 "VARARG", 121 "FUNC", 122 "RETURN", 123 "VAR", 124 "THROW", 125 "IF", 126 "ELSE", 127 "FOR", 128 "IN", 129 "EQEQ", 130 "NEQ", 131 "GE", 132 "LE", 133 "OROR", 134 "ANDAND", 135 "NEW", 136 "TRUE", 137 "FALSE", 138 "NIL", 139 "NILCOALESCE", 140 "MODULE", 141 "TRY", 142 "CATCH", 143 "FINALLY", 144 "PLUSEQ", 145 "MINUSEQ", 146 "MULEQ", 147 "DIVEQ", 148 "ANDEQ", 149 "OREQ", 150 "BREAK", 151 "CONTINUE", 152 "PLUSPLUS", 153 "MINUSMINUS", 154 "SHIFTLEFT", 155 "SHIFTRIGHT", 156 "SWITCH", 157 "CASE", 158 "DEFAULT", 159 "GO", 160 "CHAN", 161 "STRUCT", 162 "MAKE", 163 "OPCHAN", 164 "EQOPCHAN", 165 "TYPE", 166 "LEN", 167 "DELETE", 168 "CLOSE", 169 "MAP", 170 "IMPORT", 171 "'='", 172 "':'", 173 "'?'", 174 "'<'", 175 "'>'", 176 "'+'", 177 "'-'", 178 "'|'", 179 "'^'", 180 "'*'", 181 "'/'", 182 "'%'", 183 "'&'", 184 "UNARY", 185 "'{'", 186 "'}'", 187 "'('", 188 "')'", 189 "','", 190 "';'", 191 "'['", 192 "']'", 193 "'.'", 194 "'!'", 195 "'\\n'", 196 } 197 198 var yyStatenames = [...]string{} 199 200 const yyEofCode = 1 201 const yyErrCode = 2 202 const yyInitialStackSize = 16 203 204 //line parser.go.y:1090 205 206 //line yacctab:1 207 var yyExca = [...]int{ 208 -1, 1, 209 1, -1, 210 -2, 0, 211 -1, 2, 212 52, 57, 213 59, 57, 214 77, 57, 215 78, 5, 216 -2, 1, 217 -1, 23, 218 77, 58, 219 -2, 26, 220 -1, 27, 221 16, 95, 222 -2, 57, 223 -1, 67, 224 52, 57, 225 59, 57, 226 77, 57, 227 -2, 5, 228 -1, 120, 229 16, 96, 230 77, 96, 231 -2, 112, 232 -1, 124, 233 4, 107, 234 48, 107, 235 49, 107, 236 57, 107, 237 -2, 69, 238 -1, 267, 239 74, 181, 240 80, 181, 241 -2, 173, 242 -1, 288, 243 74, 181, 244 -2, 173, 245 -1, 292, 246 1, 60, 247 8, 60, 248 45, 60, 249 46, 60, 250 52, 60, 251 59, 60, 252 60, 60, 253 74, 60, 254 76, 60, 255 77, 60, 256 78, 60, 257 80, 60, 258 83, 60, 259 -2, 110, 260 -1, 296, 261 1, 17, 262 45, 17, 263 46, 17, 264 74, 17, 265 78, 17, 266 83, 17, 267 -2, 74, 268 -1, 298, 269 1, 19, 270 45, 19, 271 46, 19, 272 74, 19, 273 78, 19, 274 83, 19, 275 -2, 76, 276 -1, 328, 277 74, 179, 278 80, 179, 279 -2, 174, 280 -1, 348, 281 1, 16, 282 45, 16, 283 46, 16, 284 74, 16, 285 78, 16, 286 83, 16, 287 -2, 73, 288 -1, 349, 289 1, 18, 290 45, 18, 291 46, 18, 292 74, 18, 293 78, 18, 294 83, 18, 295 -2, 75, 296 } 297 298 const yyPrivate = 57344 299 300 const yyLast = 3907 301 302 var yyAct = [...]int{ 303 71, 268, 33, 23, 232, 320, 321, 36, 116, 323, 304 322, 5, 8, 288, 377, 72, 8, 267, 76, 8, 305 8, 124, 386, 8, 8, 127, 281, 114, 117, 121, 306 214, 214, 282, 283, 84, 135, 130, 214, 85, 214, 307 87, 1, 331, 214, 207, 286, 214, 8, 7, 329, 308 220, 137, 151, 327, 134, 69, 49, 145, 152, 153, 309 154, 155, 156, 213, 217, 202, 142, 373, 23, 149, 310 70, 214, 143, 404, 340, 349, 348, 334, 162, 163, 311 325, 166, 167, 168, 169, 297, 171, 173, 303, 175, 312 149, 210, 176, 177, 178, 179, 180, 181, 182, 183, 313 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 314 194, 195, 196, 197, 198, 136, 159, 69, 295, 206, 315 448, 326, 203, 148, 234, 160, 203, 211, 141, 274, 316 147, 209, 130, 130, 140, 130, 86, 139, 223, 225, 317 226, 170, 203, 130, 130, 233, 130, 265, 149, 236, 318 123, 138, 447, 298, 149, 215, 216, 200, 218, 144, 319 89, 90, 100, 101, 78, 245, 227, 228, 77, 231, 320 443, 248, 438, 252, 437, 69, 435, 428, 427, 6, 321 423, 422, 212, 128, 346, 68, 296, 149, 97, 98, 322 99, 102, 125, 222, 367, 84, 421, 275, 149, 85, 323 238, 87, 419, 255, 235, 86, 259, 246, 262, 410, 324 128, 409, 126, 164, 405, 264, 203, 240, 241, 266, 325 130, 122, 126, 211, 401, 278, 397, 132, 133, 89, 326 90, 233, 229, 395, 287, 285, 131, 444, 291, 249, 327 149, 253, 394, 272, 299, 292, 257, 129, 302, 393, 328 69, 390, 304, 347, 132, 133, 385, 356, 134, 343, 329 311, 315, 317, 131, 84, 308, 301, 293, 85, 254, 330 87, 239, 442, 165, 129, 408, 388, 372, 335, 9, 331 371, 324, 219, 158, 339, 134, 74, 341, 441, 130, 332 345, 290, 323, 322, 436, 201, 294, 79, 430, 333, 333 312, 310, 230, 10, 284, 271, 146, 174, 354, 237, 334 73, 4, 342, 2, 62, 67, 63, 66, 69, 363, 335 64, 65, 126, 47, 368, 366, 365, 330, 46, 126, 336 45, 119, 374, 44, 130, 43, 130, 30, 50, 381, 337 29, 384, 351, 332, 319, 387, 22, 157, 21, 20, 338 25, 355, 24, 3, 391, 357, 358, 375, 360, 378, 339 0, 0, 0, 256, 0, 0, 370, 0, 263, 0, 340 0, 0, 0, 270, 0, 0, 0, 69, 0, 273, 341 369, 412, 0, 126, 414, 0, 0, 0, 126, 389, 342 0, 0, 269, 126, 0, 0, 0, 0, 0, 126, 343 0, 396, 0, 398, 399, 0, 0, 0, 0, 402, 344 0, 0, 269, 406, 407, 0, 0, 233, 434, 0, 345 0, 433, 0, 0, 0, 0, 0, 237, 0, 0, 346 418, 0, 0, 130, 0, 440, 0, 0, 201, 0, 347 0, 0, 424, 0, 0, 425, 426, 328, 344, 0, 348 429, 0, 0, 0, 0, 0, 439, 0, 0, 0, 349 0, 0, 0, 0, 0, 269, 0, 0, 328, 120, 350 52, 53, 0, 0, 31, 0, 48, 0, 0, 364, 351 0, 0, 0, 0, 445, 0, 446, 0, 39, 54, 352 55, 56, 376, 0, 201, 0, 201, 0, 0, 126, 353 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354 269, 0, 126, 0, 0, 40, 57, 0, 0, 37, 355 0, 0, 41, 38, 89, 90, 100, 101, 0, 0, 356 51, 0, 59, 61, 0, 0, 60, 411, 115, 0, 357 34, 0, 201, 118, 32, 0, 416, 58, 103, 104, 358 105, 0, 97, 98, 99, 102, 0, 126, 0, 84, 359 0, 0, 0, 85, 0, 87, 126, 0, 0, 86, 360 106, 107, 111, 109, 113, 112, 0, 0, 0, 0, 361 83, 0, 0, 0, 0, 91, 92, 94, 95, 96, 362 93, 0, 0, 89, 90, 100, 101, 0, 0, 0, 363 0, 0, 0, 0, 88, 81, 0, 0, 0, 0, 364 0, 0, 80, 269, 82, 108, 110, 103, 104, 105, 365 0, 97, 98, 99, 102, 0, 204, 0, 84, 0, 366 0, 0, 85, 0, 87, 35, 52, 53, 0, 0, 367 31, 13, 48, 14, 26, 0, 27, 0, 0, 0, 368 0, 0, 0, 0, 39, 54, 55, 56, 0, 15, 369 16, 0, 0, 0, 0, 0, 0, 0, 0, 11, 370 12, 0, 0, 0, 0, 28, 0, 0, 17, 0, 371 0, 40, 57, 0, 0, 37, 18, 19, 41, 38, 372 0, 0, 0, 0, 0, 0, 51, 0, 59, 61, 373 0, 0, 60, 0, 42, 0, 34, 0, 0, 0, 374 32, 0, 0, 58, 86, 106, 107, 111, 109, 113, 375 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 376 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 377 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 378 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 379 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 380 0, 0, 0, 84, 382, 383, 0, 85, 0, 87, 381 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 382 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 383 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 384 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 385 0, 0, 0, 0, 380, 82, 108, 110, 103, 104, 386 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 387 0, 0, 0, 85, 379, 87, 86, 106, 107, 111, 388 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 389 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 390 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 391 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 392 353, 82, 108, 110, 103, 104, 105, 0, 97, 98, 393 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 394 352, 87, 86, 106, 107, 111, 109, 113, 112, 0, 395 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 396 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 397 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 398 0, 0, 0, 0, 0, 0, 338, 82, 108, 110, 399 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 400 0, 84, 0, 0, 0, 85, 337, 87, 86, 106, 401 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 402 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 403 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 404 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 405 0, 0, 307, 82, 108, 110, 103, 104, 105, 0, 406 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 407 0, 85, 306, 87, 86, 106, 107, 111, 109, 113, 408 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 409 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 410 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 411 0, 0, 0, 0, 0, 0, 0, 0, 277, 82, 412 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 413 0, 0, 0, 84, 0, 0, 0, 85, 276, 87, 414 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 415 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 416 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 417 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 418 0, 0, 0, 0, 251, 82, 108, 110, 103, 104, 419 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 420 0, 0, 0, 85, 250, 87, 86, 106, 107, 111, 421 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 422 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 423 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 424 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 425 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 426 99, 102, 0, 0, 0, 84, 242, 243, 0, 85, 427 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 428 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 429 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 430 0, 0, 0, 0, 0, 0, 0, 88, 81, 0, 431 0, 0, 0, 0, 0, 80, 0, 82, 108, 110, 432 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 433 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 434 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 435 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 436 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 437 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 438 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 439 97, 98, 99, 102, 0, 0, 0, 84, 432, 0, 440 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 441 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 442 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 443 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 445 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 446 0, 0, 0, 84, 0, 0, 0, 85, 431, 87, 447 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 448 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 449 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 450 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 451 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 452 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 453 0, 0, 0, 85, 420, 87, 86, 106, 107, 111, 454 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 455 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 456 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 457 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 458 417, 82, 108, 110, 103, 104, 105, 0, 97, 98, 459 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 460 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 461 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 462 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 463 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 464 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 465 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 466 0, 84, 415, 0, 0, 85, 0, 87, 86, 106, 467 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 468 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 469 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 470 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 471 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 472 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 473 0, 85, 413, 87, 86, 106, 107, 111, 109, 113, 474 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 475 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 476 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 477 0, 0, 0, 0, 0, 0, 0, 0, 403, 82, 478 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 479 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 480 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 481 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 482 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 483 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 484 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 485 105, 0, 97, 98, 99, 102, 0, 400, 0, 84, 486 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 487 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 488 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 489 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 490 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 491 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 492 99, 102, 0, 0, 0, 84, 0, 0, 0, 85, 493 392, 87, 86, 106, 107, 111, 109, 113, 112, 0, 494 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 495 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 496 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 497 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 498 103, 104, 105, 0, 97, 98, 99, 102, 0, 361, 499 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 500 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 501 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 502 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 503 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 504 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 505 97, 98, 99, 102, 0, 359, 0, 84, 0, 0, 506 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 507 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 508 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 509 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 510 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 511 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 512 0, 0, 0, 84, 350, 0, 0, 85, 0, 87, 513 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 514 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 515 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 516 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 517 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 518 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 519 0, 0, 318, 85, 0, 87, 86, 106, 107, 111, 520 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 521 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 522 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 523 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 524 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 525 99, 102, 0, 313, 0, 84, 0, 0, 0, 85, 526 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 527 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 528 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 529 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 530 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 531 103, 104, 105, 0, 97, 98, 99, 102, 0, 309, 532 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 533 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 534 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 535 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 536 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 537 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 538 97, 98, 99, 102, 0, 300, 0, 84, 0, 0, 539 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 540 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 541 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 542 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 543 0, 0, 0, 0, 0, 0, 0, 0, 289, 82, 544 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 545 0, 0, 0, 84, 0, 0, 0, 85, 0, 87, 546 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 547 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 548 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 549 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 550 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 551 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 552 280, 0, 0, 85, 0, 87, 86, 106, 107, 111, 553 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 554 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 555 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 556 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 557 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 558 99, 102, 0, 0, 0, 84, 279, 0, 0, 85, 559 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 560 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 561 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 562 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 563 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 564 103, 104, 105, 0, 97, 98, 99, 102, 0, 0, 565 0, 84, 0, 0, 260, 85, 0, 87, 86, 106, 566 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 567 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 568 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 569 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 570 0, 0, 247, 82, 108, 110, 103, 104, 105, 0, 571 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 572 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 573 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 574 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 575 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 576 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 577 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 578 0, 0, 0, 84, 244, 0, 0, 85, 0, 87, 579 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 580 0, 83, 0, 0, 0, 0, 91, 92, 94, 95, 581 96, 93, 0, 0, 89, 90, 100, 101, 0, 0, 582 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 583 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 584 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 585 221, 0, 0, 85, 0, 87, 86, 106, 107, 111, 586 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 587 0, 0, 91, 92, 94, 95, 96, 93, 0, 0, 588 89, 90, 100, 101, 0, 0, 0, 0, 0, 0, 589 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 590 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 591 99, 102, 0, 208, 0, 84, 0, 0, 0, 85, 592 0, 87, 86, 106, 107, 111, 109, 113, 112, 0, 593 0, 0, 0, 83, 0, 0, 0, 0, 91, 92, 594 94, 95, 96, 93, 0, 0, 89, 90, 100, 101, 595 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 596 0, 0, 0, 0, 0, 0, 0, 82, 108, 110, 597 103, 104, 105, 0, 97, 98, 99, 102, 0, 199, 598 0, 84, 0, 0, 0, 85, 0, 87, 86, 106, 599 107, 111, 109, 113, 112, 0, 0, 0, 0, 83, 600 0, 0, 0, 0, 91, 92, 94, 95, 96, 93, 601 0, 0, 89, 90, 100, 101, 0, 0, 0, 0, 602 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 603 0, 0, 0, 82, 108, 110, 103, 104, 105, 0, 604 97, 98, 99, 102, 0, 0, 0, 84, 0, 0, 605 0, 85, 0, 87, 86, 106, 107, 111, 109, 113, 606 112, 0, 0, 0, 0, 83, 0, 0, 0, 0, 607 91, 92, 94, 95, 96, 93, 0, 0, 89, 90, 608 100, 101, 0, 0, 0, 0, 0, 0, 0, 88, 609 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 610 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 611 0, 0, 0, 161, 0, 0, 0, 85, 0, 87, 612 86, 106, 107, 111, 109, 113, 112, 0, 0, 0, 613 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 614 0, 0, 0, 0, 89, 90, 100, 101, 0, 0, 615 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 616 0, 0, 0, 0, 0, 82, 108, 110, 103, 104, 617 105, 0, 97, 98, 99, 102, 0, 0, 0, 84, 618 0, 0, 0, 85, 0, 87, 86, 106, 107, 111, 619 109, 113, 112, 0, 0, 0, 0, 83, 0, 0, 620 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 621 89, 90, 100, 101, 0, 0, 0, 0, 0, 39, 622 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 623 0, 82, 108, 110, 103, 104, 105, 0, 97, 98, 624 99, 102, 0, 0, 0, 84, 40, 57, 0, 85, 625 37, 87, 0, 41, 38, 0, 0, 0, 0, 0, 626 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 627 0, 34, 35, 52, 53, 32, 336, 31, 58, 0, 628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629 0, 39, 54, 55, 56, 0, 0, 0, 0, 0, 630 0, 0, 0, 0, 0, 0, 0, 0, 35, 52, 631 53, 0, 0, 31, 0, 0, 0, 0, 40, 57, 632 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 633 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 634 0, 42, 0, 34, 35, 52, 53, 32, 305, 31, 635 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 636 0, 41, 38, 39, 54, 55, 56, 0, 0, 51, 637 0, 59, 61, 0, 0, 60, 0, 42, 0, 34, 638 0, 0, 261, 32, 0, 0, 58, 0, 0, 0, 639 40, 57, 0, 0, 37, 0, 0, 41, 38, 0, 640 224, 0, 0, 0, 0, 51, 0, 59, 61, 0, 641 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 642 0, 31, 58, 0, 0, 0, 0, 0, 0, 0, 643 0, 0, 0, 0, 0, 39, 54, 55, 56, 0, 644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645 0, 0, 35, 52, 53, 0, 0, 31, 0, 0, 646 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 647 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 648 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 649 205, 32, 0, 0, 58, 0, 0, 0, 40, 57, 650 0, 0, 37, 0, 0, 41, 38, 0, 172, 0, 651 0, 0, 0, 51, 0, 59, 61, 0, 0, 60, 652 0, 42, 0, 34, 35, 52, 53, 32, 0, 31, 653 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 654 0, 0, 0, 39, 54, 55, 56, 0, 0, 0, 655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656 35, 52, 53, 0, 0, 31, 0, 0, 0, 0, 657 40, 57, 0, 0, 37, 0, 0, 41, 38, 39, 658 54, 55, 56, 0, 0, 51, 0, 59, 61, 0, 659 0, 60, 0, 42, 0, 34, 35, 52, 53, 32, 660 0, 31, 58, 0, 0, 0, 40, 57, 0, 0, 661 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 662 0, 51, 0, 59, 61, 0, 0, 60, 0, 362, 663 0, 34, 35, 52, 53, 32, 0, 31, 58, 0, 664 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 665 38, 39, 54, 55, 56, 0, 0, 51, 0, 59, 666 61, 0, 0, 60, 0, 316, 0, 34, 35, 52, 667 53, 32, 0, 31, 58, 0, 0, 0, 40, 57, 668 0, 0, 37, 0, 0, 41, 38, 39, 54, 55, 669 56, 0, 0, 51, 0, 59, 61, 0, 0, 60, 670 0, 314, 0, 34, 0, 0, 0, 32, 0, 0, 671 58, 0, 0, 0, 40, 57, 0, 0, 37, 0, 672 0, 41, 38, 0, 86, 106, 107, 111, 109, 51, 673 112, 59, 61, 0, 0, 60, 0, 258, 0, 34, 674 0, 0, 0, 32, 0, 0, 58, 0, 89, 90, 675 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 677 108, 110, 103, 104, 105, 0, 97, 98, 99, 102, 678 35, 150, 53, 84, 0, 31, 0, 85, 0, 87, 679 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 680 54, 55, 56, 0, 0, 0, 0, 0, 0, 0, 681 0, 0, 0, 0, 0, 0, 75, 52, 53, 0, 682 0, 31, 0, 0, 0, 0, 40, 57, 0, 0, 683 37, 0, 0, 41, 38, 39, 54, 55, 56, 0, 684 0, 51, 0, 59, 61, 0, 0, 60, 0, 42, 685 0, 34, 0, 0, 0, 32, 0, 0, 58, 0, 686 0, 0, 40, 57, 0, 0, 37, 0, 0, 41, 687 38, 86, 106, 107, 111, 109, 0, 51, 0, 59, 688 61, 0, 0, 60, 0, 42, 0, 34, 0, 0, 689 0, 32, 0, 0, 58, 89, 90, 100, 101, 0, 690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 691 0, 0, 0, 0, 0, 0, 0, 108, 110, 103, 692 104, 105, 0, 97, 98, 99, 102, 0, 0, 0, 693 84, 0, 0, 0, 85, 0, 87, 694 } 695 696 var yyPact = [...]int{ 697 -67, -1000, 631, -67, -1000, -71, -71, -1000, -1000, -1000, 698 -1000, -1000, -1000, 3490, 3490, 306, 213, 3782, 93, 89, 699 283, -1000, -1000, 1226, -1000, -1000, 3490, 465, 3490, -1000, 700 -1000, 146, -59, 206, 3490, 40, -28, 76, 62, 59, 701 53, -7, -71, -1000, -1000, -1000, -1000, -1000, 302, 71, 702 -1000, 3746, -1000, -1000, -1000, -1000, -1000, 3490, 3490, 3490, 703 3490, 3490, -1000, -1000, -1000, -1000, -1000, 631, -71, -1000, 704 -8, 2942, 2942, 210, -67, 50, 3008, 3490, 3490, 200, 705 3490, 3490, 3490, 3490, 3490, 3418, 3490, 303, 3490, -1000, 706 -1000, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 707 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 708 3490, 3490, 3490, 3490, 2876, -67, 49, 553, 3382, -34, 709 40, 2810, 302, 16, -25, 3490, -71, -10, -1000, 206, 710 206, -15, 206, 209, -30, 2744, 3490, 3310, 3490, 3490, 711 206, 179, -71, 206, 3490, 65, -1000, 3490, 3490, -71, 712 -1000, -41, 3074, -41, -41, -41, -41, -1000, -67, 197, 713 3490, 3490, 1160, 2678, 3490, -67, 2942, 2942, 2612, 3140, 714 163, 1094, 3490, 189, -1000, 3074, 2942, 2942, 2942, 2942, 715 2942, 2942, 189, 189, 189, 189, 189, 189, 120, 120, 716 120, 484, 484, 484, 484, 484, 484, 3825, 3678, -67, 717 195, -71, 3490, -71, -67, 3634, 2546, 3274, -71, 139, 718 302, -1000, -60, -71, 301, -42, -42, 206, -42, -71, 719 -25, -1000, 121, 1028, 3490, 2480, 2414, -50, -44, 300, 720 3490, -35, -64, 2348, 3490, -8, 2942, 3490, 193, 266, 721 110, 77, -1000, 3490, -1000, 2282, 192, 3490, 12, -1000, 722 -1000, 3238, 962, 191, -1000, 2216, 297, 186, -67, 2150, 723 3598, 3562, 2084, 247, 208, 4, 45, -71, -31, -71, 724 3490, -1000, -38, 295, 1, -1000, -1000, 3166, 896, -1000, 725 -1000, -1000, -1000, 3490, -3, -64, 206, 185, -71, 3490, 726 -8, 2942, -28, -1000, 180, 0, -1000, -1, -1000, 2018, 727 -67, -1000, 3074, -1000, 830, -1000, -1000, 3490, -1000, -67, 728 -1000, -1000, 183, -67, -67, 1952, -67, 1886, 3526, -36, 729 -1000, -1000, 134, 3490, -67, 207, 204, -9, -71, -1000, 730 -60, 206, -63, 206, -1000, 764, -1000, -1000, 3490, 698, 731 3490, 182, -51, -1000, 3490, 2942, 203, -67, -1000, -1000, 732 -1000, 177, -1000, 3490, 1820, 175, -1000, 168, 159, -67, 733 152, -67, -67, 1754, 150, -1000, -1000, -67, 1688, 13, 734 140, -67, -67, 202, 137, -42, 135, -71, -42, -1000, 735 3490, 1622, -1000, 3490, 1556, -1000, -71, 1490, -67, 128, 736 -1000, 1424, -1000, -1000, -1000, -1000, 122, -1000, 107, 106, 737 -67, -1000, -1000, -67, -67, -1000, 104, 103, -67, -1000, 738 -1000, 294, 1358, -1000, 1292, -1000, 3490, 3490, 102, 263, 739 -1000, -1000, -1000, -1000, 100, -1000, -1000, -1000, -1000, 98, 740 206, -1000, -1000, -64, 2942, 257, 199, -1000, -1000, -42, 741 96, 164, -67, -1000, -67, 78, 46, -1000, -1000, 742 } 743 744 var yyPgo = [...]int{ 745 0, 41, 353, 279, 303, 352, 350, 349, 348, 346, 746 344, 6, 5, 56, 0, 8, 25, 343, 2, 340, 747 338, 7, 337, 4, 335, 333, 330, 328, 323, 321, 748 320, 316, 314, 313, 311, 159, 1, 179, 48, 749 } 750 751 var yyR1 = [...]int{ 752 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 753 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 754 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 755 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 756 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 757 10, 10, 10, 10, 11, 11, 12, 13, 13, 13, 758 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 759 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 760 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 761 14, 14, 14, 14, 14, 15, 15, 15, 16, 16, 762 16, 16, 16, 16, 16, 17, 17, 18, 18, 19, 763 19, 20, 21, 22, 22, 22, 22, 22, 22, 23, 764 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 765 24, 24, 25, 25, 26, 26, 26, 26, 26, 27, 766 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 767 28, 32, 32, 32, 32, 32, 32, 31, 31, 31, 768 30, 30, 30, 30, 30, 30, 29, 29, 33, 33, 769 34, 34, 34, 35, 35, 37, 37, 38, 36, 36, 770 36, 36, 771 } 772 773 var yyR2 = [...]int{ 774 0, 1, 2, 2, 3, 0, 1, 1, 1, 2, 775 2, 5, 13, 12, 9, 8, 6, 5, 6, 5, 776 4, 6, 4, 1, 1, 1, 1, 1, 1, 4, 777 3, 3, 3, 3, 5, 7, 5, 4, 7, 5, 778 6, 7, 7, 8, 7, 8, 8, 9, 7, 0, 779 1, 1, 2, 2, 4, 4, 3, 0, 1, 4, 780 4, 1, 1, 5, 3, 7, 8, 8, 9, 2, 781 5, 7, 3, 5, 4, 5, 4, 4, 4, 4, 782 4, 4, 4, 6, 8, 7, 3, 6, 10, 5, 783 1, 1, 1, 1, 1, 0, 1, 4, 1, 3, 784 2, 2, 5, 2, 6, 2, 5, 2, 3, 1, 785 1, 3, 1, 2, 1, 1, 1, 1, 1, 0, 786 3, 6, 6, 5, 5, 7, 8, 6, 5, 5, 787 7, 8, 3, 2, 2, 2, 2, 2, 2, 1, 788 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 789 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 790 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 791 2, 1, 1, 0, 1, 1, 2, 1, 0, 2, 792 1, 1, 793 } 794 795 var yyChk = [...]int{ 796 -1000, -1, -33, -2, -34, 78, -37, -38, 83, -3, 797 -4, 38, 39, 10, 12, 28, 29, 47, 55, 56, 798 -7, -8, -9, -14, -5, -6, 13, 15, 44, -19, 799 -22, 9, 79, -18, 75, 4, -21, 54, 58, 23, 800 50, 57, 73, -24, -25, -26, -27, -28, 11, -13, 801 -20, 65, 5, 6, 24, 25, 26, 51, 82, 67, 802 71, 68, -32, -31, -30, -29, -33, -34, -37, -38, 803 -13, -14, -14, 4, 73, 4, -14, 75, 75, 14, 804 59, 52, 61, 27, 75, 79, 16, 81, 51, 40, 805 41, 32, 33, 37, 34, 35, 36, 68, 69, 70, 806 42, 43, 71, 64, 65, 66, 17, 18, 62, 20, 807 63, 19, 22, 21, -14, 73, -15, -14, 78, -4, 808 4, -14, 75, 4, 80, -35, -37, -16, 4, 68, 809 -18, 57, 48, 49, 79, -14, 75, 79, 75, 75, 810 75, 75, 73, 79, -35, -15, 4, 59, 52, 77, 811 5, -14, -14, -14, -14, -14, -14, -3, 73, -1, 812 75, 75, -14, -14, 13, 73, -14, -14, -14, -14, 813 -13, -14, 60, -14, 4, -14, -14, -14, -14, -14, 814 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 815 -14, -14, -14, -14, -14, -14, -14, -14, -14, 73, 816 -1, -37, 16, 77, 73, 78, -14, 78, 73, -15, 817 75, -18, -13, 73, 81, -16, -16, 79, -16, 73, 818 80, 76, -13, -14, 60, -14, -14, -16, -16, 53, 819 -35, -16, -23, -14, 59, -13, -14, -35, -1, 74, 820 -13, -13, 76, 77, 76, -14, -1, 60, 8, 76, 821 80, 60, -14, -1, 74, -14, -35, -1, 73, -14, 822 78, 78, -14, -35, 76, 8, -15, 77, -36, -37, 823 -35, 4, -16, -35, 8, 76, 80, 60, -14, 76, 824 76, 76, 76, 77, 4, -23, 80, -36, 77, 60, 825 -13, -14, -21, 74, 30, 8, 76, 8, 76, -14, 826 73, 74, -14, 76, -14, 80, 80, 60, 74, 73, 827 4, 74, -1, 73, 73, -14, 73, -14, 78, -10, 828 -12, -11, 46, 45, 73, 76, 76, 8, -37, 80, 829 -13, 80, -17, 4, 76, -14, 80, 80, 60, -14, 830 77, -36, -16, 74, -35, -14, 4, 73, 76, 76, 831 76, -1, 80, 60, -14, -1, 74, -1, -1, 73, 832 -1, 73, 73, -14, -35, -11, -12, 60, -14, -13, 833 -1, 73, 73, 76, -36, -16, -35, 77, -16, 80, 834 60, -14, 76, 77, -14, 74, 73, -14, 73, -1, 835 74, -14, 80, 74, 74, 74, -1, 74, -1, -1, 836 73, 74, -1, 60, 60, 74, -1, -1, 73, 74, 837 74, -35, -14, 80, -14, 76, -35, 60, -1, 74, 838 80, 74, 74, 74, -1, -1, -1, 74, 74, -1, 839 4, 80, 76, -23, -14, 74, 31, 74, 74, -16, 840 -36, 31, 73, 74, 73, -1, -1, 74, 74, 841 } 842 843 var yyDef = [...]int{ 844 168, -2, -2, 168, 169, 172, 171, 175, 177, 3, 845 6, 7, 8, 57, 0, 0, 0, 0, 0, 0, 846 23, 24, 25, -2, 27, 28, 0, -2, 0, 61, 847 62, 0, 173, 0, 0, 112, 110, 0, 0, 0, 848 0, 0, 173, 90, 91, 92, 93, 94, 95, 0, 849 109, 0, 114, 115, 116, 117, 118, 0, 0, 0, 850 0, 0, 139, 140, 141, 142, 2, -2, 170, 176, 851 9, 58, 10, 0, 168, 112, 0, 0, 0, 0, 852 0, 0, 0, 0, 57, 0, 0, 0, 0, 143, 853 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 855 0, 0, 0, 0, 0, 168, 0, 58, 0, 0, 856 -2, 0, 95, 0, -2, 57, 174, 0, 98, 0, 857 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 858 0, 0, 173, 0, 119, 0, 96, 57, 0, 173, 859 113, 134, 133, 135, 136, 137, 138, 4, 168, 0, 860 57, 57, 0, 0, 0, 168, 30, 32, 0, 64, 861 0, 0, 0, 86, 111, 132, 145, 146, 147, 148, 862 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 863 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 864 0, 171, 0, 173, 168, 0, 0, 0, 173, 0, 865 95, 108, 178, 173, 0, 100, 101, 0, 103, 173, 866 107, 72, 0, 0, 0, 0, 0, 0, 0, 0, 867 119, 0, 178, 0, 57, 31, 33, 0, 0, 0, 868 0, 0, 20, 0, 22, 0, 0, 0, 0, 76, 869 78, 0, 0, 0, 37, 0, 0, 0, 168, 0, 870 0, 0, 0, 49, 0, 0, 0, -2, 0, 180, 871 57, 99, 0, 0, 0, 74, 77, 0, 0, 79, 872 80, 81, 82, 0, 0, 178, 0, 0, -2, 0, 873 29, 59, -2, 11, 0, 0, -2, 0, -2, 0, 874 168, 36, 63, 75, 0, 128, 129, 0, 34, 168, 875 97, 39, 0, 168, 168, 0, 168, 0, 0, 173, 876 50, 51, 0, 57, 168, 0, 0, 0, -2, 70, 877 178, 0, 173, 0, 73, 0, 123, 124, 0, 0, 878 0, 0, 0, 89, 0, 120, 0, 168, -2, -2, 879 21, 0, 127, 0, 0, 0, 40, 0, 0, 168, 880 0, 168, 168, 0, 0, 52, 53, 168, 58, 0, 881 0, 168, 168, 0, 0, 102, 0, 173, 105, 122, 882 0, 0, 83, 0, 0, 87, 173, 0, 168, 0, 883 35, 0, 130, 38, 41, 42, 0, 44, 0, 0, 884 168, 48, 56, 168, 168, 65, 0, 0, 168, 71, 885 104, 0, 0, 125, 0, 85, 119, 0, 0, 15, 886 131, 43, 45, 46, 0, 54, 55, 66, 67, 0, 887 0, 126, 84, 178, 121, 14, 0, 47, 68, 106, 888 0, 0, 168, 88, 168, 0, 0, 13, 12, 889 } 890 891 var yyTok1 = [...]int{ 892 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 893 83, 3, 3, 3, 3, 3, 3, 3, 3, 3, 894 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 895 3, 3, 3, 82, 3, 3, 3, 70, 71, 3, 896 75, 76, 68, 64, 77, 65, 81, 69, 3, 3, 897 3, 3, 3, 3, 3, 3, 3, 3, 60, 78, 898 62, 59, 63, 61, 3, 3, 3, 3, 3, 3, 899 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 900 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 901 3, 79, 3, 80, 67, 3, 3, 3, 3, 3, 902 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 903 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 904 3, 3, 3, 73, 66, 74, 905 } 906 907 var yyTok2 = [...]int{ 908 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 909 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 910 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 911 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 912 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 913 52, 53, 54, 55, 56, 57, 58, 72, 914 } 915 916 var yyTok3 = [...]int{ 917 0, 918 } 919 920 var yyErrorMessages = [...]struct { 921 state int 922 token int 923 msg string 924 }{} 925 926 //line yaccpar:1 927 928 /* parser for yacc output */ 929 930 var ( 931 yyDebug = 0 932 yyErrorVerbose = false 933 ) 934 935 type yyLexer interface { 936 Lex(lval *yySymType) int 937 Error(s string) 938 } 939 940 type yyParser interface { 941 Parse(yyLexer) int 942 Lookahead() int 943 } 944 945 type yyParserImpl struct { 946 lval yySymType 947 stack [yyInitialStackSize]yySymType 948 char int 949 } 950 951 func (p *yyParserImpl) Lookahead() int { 952 return p.char 953 } 954 955 func yyNewParser() yyParser { 956 return &yyParserImpl{} 957 } 958 959 const yyFlag = -1000 960 961 func yyTokname(c int) string { 962 if c >= 1 && c-1 < len(yyToknames) { 963 if yyToknames[c-1] != "" { 964 return yyToknames[c-1] 965 } 966 } 967 return __yyfmt__.Sprintf("tok-%v", c) 968 } 969 970 func yyStatname(s int) string { 971 if s >= 0 && s < len(yyStatenames) { 972 if yyStatenames[s] != "" { 973 return yyStatenames[s] 974 } 975 } 976 return __yyfmt__.Sprintf("state-%v", s) 977 } 978 979 func yyErrorMessage(state, lookAhead int) string { 980 const TOKSTART = 4 981 982 if !yyErrorVerbose { 983 return "syntax error" 984 } 985 986 for _, e := range yyErrorMessages { 987 if e.state == state && e.token == lookAhead { 988 return "syntax error: " + e.msg 989 } 990 } 991 992 res := "syntax error: unexpected " + yyTokname(lookAhead) 993 994 // To match Bison, suggest at most four expected tokens. 995 expected := make([]int, 0, 4) 996 997 // Look for shiftable tokens. 998 base := yyPact[state] 999 for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { 1000 if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { 1001 if len(expected) == cap(expected) { 1002 return res 1003 } 1004 expected = append(expected, tok) 1005 } 1006 } 1007 1008 if yyDef[state] == -2 { 1009 i := 0 1010 for yyExca[i] != -1 || yyExca[i+1] != state { 1011 i += 2 1012 } 1013 1014 // Look for tokens that we accept or reduce. 1015 for i += 2; yyExca[i] >= 0; i += 2 { 1016 tok := yyExca[i] 1017 if tok < TOKSTART || yyExca[i+1] == 0 { 1018 continue 1019 } 1020 if len(expected) == cap(expected) { 1021 return res 1022 } 1023 expected = append(expected, tok) 1024 } 1025 1026 // If the default action is to accept or reduce, give up. 1027 if yyExca[i+1] != 0 { 1028 return res 1029 } 1030 } 1031 1032 for i, tok := range expected { 1033 if i == 0 { 1034 res += ", expecting " 1035 } else { 1036 res += " or " 1037 } 1038 res += yyTokname(tok) 1039 } 1040 return res 1041 } 1042 1043 func yylex1(lex yyLexer, lval *yySymType) (char, token int) { 1044 token = 0 1045 char = lex.Lex(lval) 1046 if char <= 0 { 1047 token = yyTok1[0] 1048 goto out 1049 } 1050 if char < len(yyTok1) { 1051 token = yyTok1[char] 1052 goto out 1053 } 1054 if char >= yyPrivate { 1055 if char < yyPrivate+len(yyTok2) { 1056 token = yyTok2[char-yyPrivate] 1057 goto out 1058 } 1059 } 1060 for i := 0; i < len(yyTok3); i += 2 { 1061 token = yyTok3[i+0] 1062 if token == char { 1063 token = yyTok3[i+1] 1064 goto out 1065 } 1066 } 1067 1068 out: 1069 if token == 0 { 1070 token = yyTok2[1] /* unknown char */ 1071 } 1072 if yyDebug >= 3 { 1073 __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) 1074 } 1075 return char, token 1076 } 1077 1078 func yyParse(yylex yyLexer) int { 1079 return yyNewParser().Parse(yylex) 1080 } 1081 1082 func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { 1083 var yyn int 1084 var yyVAL yySymType 1085 var yyDollar []yySymType 1086 _ = yyDollar // silence set and not used 1087 yyS := yyrcvr.stack[:] 1088 1089 Nerrs := 0 /* number of errors */ 1090 Errflag := 0 /* error recovery flag */ 1091 yystate := 0 1092 yyrcvr.char = -1 1093 yytoken := -1 // yyrcvr.char translated into internal numbering 1094 defer func() { 1095 // Make sure we report no lookahead when not parsing. 1096 yystate = -1 1097 yyrcvr.char = -1 1098 yytoken = -1 1099 }() 1100 yyp := -1 1101 goto yystack 1102 1103 ret0: 1104 return 0 1105 1106 ret1: 1107 return 1 1108 1109 yystack: 1110 /* put a state and value onto the stack */ 1111 if yyDebug >= 4 { 1112 __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) 1113 } 1114 1115 yyp++ 1116 if yyp >= len(yyS) { 1117 nyys := make([]yySymType, len(yyS)*2) 1118 copy(nyys, yyS) 1119 yyS = nyys 1120 } 1121 yyS[yyp] = yyVAL 1122 yyS[yyp].yys = yystate 1123 1124 yynewstate: 1125 yyn = yyPact[yystate] 1126 if yyn <= yyFlag { 1127 goto yydefault /* simple state */ 1128 } 1129 if yyrcvr.char < 0 { 1130 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 1131 } 1132 yyn += yytoken 1133 if yyn < 0 || yyn >= yyLast { 1134 goto yydefault 1135 } 1136 yyn = yyAct[yyn] 1137 if yyChk[yyn] == yytoken { /* valid shift */ 1138 yyrcvr.char = -1 1139 yytoken = -1 1140 yyVAL = yyrcvr.lval 1141 yystate = yyn 1142 if Errflag > 0 { 1143 Errflag-- 1144 } 1145 goto yystack 1146 } 1147 1148 yydefault: 1149 /* default state action */ 1150 yyn = yyDef[yystate] 1151 if yyn == -2 { 1152 if yyrcvr.char < 0 { 1153 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 1154 } 1155 1156 /* look through exception table */ 1157 xi := 0 1158 for { 1159 if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { 1160 break 1161 } 1162 xi += 2 1163 } 1164 for xi += 2; ; xi += 2 { 1165 yyn = yyExca[xi+0] 1166 if yyn < 0 || yyn == yytoken { 1167 break 1168 } 1169 } 1170 yyn = yyExca[xi+1] 1171 if yyn < 0 { 1172 goto ret0 1173 } 1174 } 1175 if yyn == 0 { 1176 /* error ... attempt to resume parsing */ 1177 switch Errflag { 1178 case 0: /* brand new error */ 1179 yylex.Error(yyErrorMessage(yystate, yytoken)) 1180 Nerrs++ 1181 if yyDebug >= 1 { 1182 __yyfmt__.Printf("%s", yyStatname(yystate)) 1183 __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) 1184 } 1185 fallthrough 1186 1187 case 1, 2: /* incompletely recovered error ... try again */ 1188 Errflag = 3 1189 1190 /* find a state where "error" is a legal shift action */ 1191 for yyp >= 0 { 1192 yyn = yyPact[yyS[yyp].yys] + yyErrCode 1193 if yyn >= 0 && yyn < yyLast { 1194 yystate = yyAct[yyn] /* simulate a shift of "error" */ 1195 if yyChk[yystate] == yyErrCode { 1196 goto yystack 1197 } 1198 } 1199 1200 /* the current p has no shift on "error", pop stack */ 1201 if yyDebug >= 2 { 1202 __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) 1203 } 1204 yyp-- 1205 } 1206 /* there is no state on the stack with an error shift ... abort */ 1207 goto ret1 1208 1209 case 3: /* no shift yet; clobber input char */ 1210 if yyDebug >= 2 { 1211 __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) 1212 } 1213 if yytoken == yyEofCode { 1214 goto ret1 1215 } 1216 yyrcvr.char = -1 1217 yytoken = -1 1218 goto yynewstate /* try again in the same state */ 1219 } 1220 } 1221 1222 /* reduction by production yyn */ 1223 if yyDebug >= 2 { 1224 __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) 1225 } 1226 1227 yynt := yyn 1228 yypt := yyp 1229 _ = yypt // guard against "declared and not used" 1230 1231 yyp -= yyR2[yyn] 1232 // yyp is now the index of $0. Perform the default action. Iff the 1233 // reduced production is ε, $1 is possibly out of range. 1234 if yyp+1 >= len(yyS) { 1235 nyys := make([]yySymType, len(yyS)*2) 1236 copy(nyys, yyS) 1237 yyS = nyys 1238 } 1239 yyVAL = yyS[yyp+1] 1240 1241 /* consult goto table to find next state */ 1242 yyn = yyR1[yyn] 1243 yyg := yyPgo[yyn] 1244 yyj := yyg + yyS[yyp].yys + 1 1245 1246 if yyj >= yyLast { 1247 yystate = yyAct[yyg] 1248 } else { 1249 yystate = yyAct[yyj] 1250 if yyChk[yystate] != -yyn { 1251 yystate = yyAct[yyg] 1252 } 1253 } 1254 // dummy call; replaced with literal code 1255 switch yynt { 1256 1257 case 1: 1258 yyDollar = yyS[yypt-1 : yypt+1] 1259 //line parser.go.y:108 1260 { 1261 yyVAL.compstmt = nil 1262 } 1263 case 2: 1264 yyDollar = yyS[yypt-2 : yypt+1] 1265 //line parser.go.y:112 1266 { 1267 yyVAL.compstmt = yyDollar[1].stmts 1268 } 1269 case 3: 1270 yyDollar = yyS[yypt-2 : yypt+1] 1271 //line parser.go.y:118 1272 { 1273 if yyDollar[2].stmt != nil { 1274 yyVAL.stmts = &ast.StmtsStmt{Stmts: []ast.Stmt{yyDollar[2].stmt}} 1275 } 1276 if l, ok := yylex.(*Lexer); ok { 1277 l.stmt = yyVAL.stmts 1278 } 1279 } 1280 case 4: 1281 yyDollar = yyS[yypt-3 : yypt+1] 1282 //line parser.go.y:127 1283 { 1284 if yyDollar[3].stmt != nil { 1285 if yyDollar[1].stmts == nil { 1286 yyVAL.stmts = &ast.StmtsStmt{Stmts: []ast.Stmt{yyDollar[3].stmt}} 1287 } else { 1288 stmts := yyDollar[1].stmts.(*ast.StmtsStmt) 1289 stmts.Stmts = append(stmts.Stmts, yyDollar[3].stmt) 1290 } 1291 if l, ok := yylex.(*Lexer); ok { 1292 l.stmt = yyVAL.stmts 1293 } 1294 } 1295 } 1296 case 5: 1297 yyDollar = yyS[yypt-0 : yypt+1] 1298 //line parser.go.y:143 1299 { 1300 yyVAL.stmt = nil 1301 } 1302 case 6: 1303 yyDollar = yyS[yypt-1 : yypt+1] 1304 //line parser.go.y:147 1305 { 1306 yyVAL.stmt = yyDollar[1].stmt_var_or_lets 1307 } 1308 case 7: 1309 yyDollar = yyS[yypt-1 : yypt+1] 1310 //line parser.go.y:151 1311 { 1312 yyVAL.stmt = &ast.BreakStmt{} 1313 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1314 } 1315 case 8: 1316 yyDollar = yyS[yypt-1 : yypt+1] 1317 //line parser.go.y:156 1318 { 1319 yyVAL.stmt = &ast.ContinueStmt{} 1320 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1321 } 1322 case 9: 1323 yyDollar = yyS[yypt-2 : yypt+1] 1324 //line parser.go.y:161 1325 { 1326 yyVAL.stmt = &ast.ReturnStmt{Exprs: yyDollar[2].exprs} 1327 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1328 } 1329 case 10: 1330 yyDollar = yyS[yypt-2 : yypt+1] 1331 //line parser.go.y:166 1332 { 1333 yyVAL.stmt = &ast.ThrowStmt{Expr: yyDollar[2].expr} 1334 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1335 } 1336 case 11: 1337 yyDollar = yyS[yypt-5 : yypt+1] 1338 //line parser.go.y:171 1339 { 1340 yyVAL.stmt = &ast.ModuleStmt{Name: yyDollar[2].tok.Lit, Stmt: yyDollar[4].compstmt} 1341 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1342 } 1343 case 12: 1344 yyDollar = yyS[yypt-13 : yypt+1] 1345 //line parser.go.y:176 1346 { 1347 yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Var: yyDollar[6].tok.Lit, Catch: yyDollar[8].compstmt, Finally: yyDollar[12].compstmt} 1348 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1349 } 1350 case 13: 1351 yyDollar = yyS[yypt-12 : yypt+1] 1352 //line parser.go.y:181 1353 { 1354 yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Catch: yyDollar[7].compstmt, Finally: yyDollar[11].compstmt} 1355 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1356 } 1357 case 14: 1358 yyDollar = yyS[yypt-9 : yypt+1] 1359 //line parser.go.y:186 1360 { 1361 yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Var: yyDollar[6].tok.Lit, Catch: yyDollar[8].compstmt} 1362 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1363 } 1364 case 15: 1365 yyDollar = yyS[yypt-8 : yypt+1] 1366 //line parser.go.y:191 1367 { 1368 yyVAL.stmt = &ast.TryStmt{Try: yyDollar[3].compstmt, Catch: yyDollar[7].compstmt} 1369 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1370 } 1371 case 16: 1372 yyDollar = yyS[yypt-6 : yypt+1] 1373 //line parser.go.y:196 1374 { 1375 yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.CallExpr{Name: yyDollar[2].tok.Lit, SubExprs: yyDollar[4].exprs, VarArg: true, Go: true}} 1376 yyVAL.stmt.SetPosition(yyDollar[2].tok.Position()) 1377 } 1378 case 17: 1379 yyDollar = yyS[yypt-5 : yypt+1] 1380 //line parser.go.y:201 1381 { 1382 yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.CallExpr{Name: yyDollar[2].tok.Lit, SubExprs: yyDollar[4].exprs, Go: true}} 1383 yyVAL.stmt.SetPosition(yyDollar[2].tok.Position()) 1384 } 1385 case 18: 1386 yyDollar = yyS[yypt-6 : yypt+1] 1387 //line parser.go.y:206 1388 { 1389 yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.AnonCallExpr{Expr: yyDollar[2].expr, SubExprs: yyDollar[4].exprs, VarArg: true, Go: true}} 1390 yyVAL.stmt.SetPosition(yyDollar[2].expr.Position()) 1391 } 1392 case 19: 1393 yyDollar = yyS[yypt-5 : yypt+1] 1394 //line parser.go.y:211 1395 { 1396 yyVAL.stmt = &ast.GoroutineStmt{Expr: &ast.AnonCallExpr{Expr: yyDollar[2].expr, SubExprs: yyDollar[4].exprs, Go: true}} 1397 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1398 } 1399 case 20: 1400 yyDollar = yyS[yypt-4 : yypt+1] 1401 //line parser.go.y:216 1402 { 1403 yyVAL.stmt = &ast.DeleteStmt{Item: yyDollar[3].expr} 1404 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1405 } 1406 case 21: 1407 yyDollar = yyS[yypt-6 : yypt+1] 1408 //line parser.go.y:221 1409 { 1410 yyVAL.stmt = &ast.DeleteStmt{Item: yyDollar[3].expr, Key: yyDollar[5].expr} 1411 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1412 } 1413 case 22: 1414 yyDollar = yyS[yypt-4 : yypt+1] 1415 //line parser.go.y:226 1416 { 1417 yyVAL.stmt = &ast.CloseStmt{Expr: yyDollar[3].expr} 1418 yyVAL.stmt.SetPosition(yyDollar[1].tok.Position()) 1419 } 1420 case 23: 1421 yyDollar = yyS[yypt-1 : yypt+1] 1422 //line parser.go.y:231 1423 { 1424 yyVAL.stmt = yyDollar[1].stmt_if 1425 } 1426 case 24: 1427 yyDollar = yyS[yypt-1 : yypt+1] 1428 //line parser.go.y:235 1429 { 1430 yyVAL.stmt = yyDollar[1].stmt_for 1431 } 1432 case 25: 1433 yyDollar = yyS[yypt-1 : yypt+1] 1434 //line parser.go.y:239 1435 { 1436 yyVAL.stmt = yyDollar[1].stmt_switch 1437 } 1438 case 26: 1439 yyDollar = yyS[yypt-1 : yypt+1] 1440 //line parser.go.y:243 1441 { 1442 yyVAL.stmt = &ast.ExprStmt{Expr: yyDollar[1].expr} 1443 yyVAL.stmt.SetPosition(yyDollar[1].expr.Position()) 1444 } 1445 case 27: 1446 yyDollar = yyS[yypt-1 : yypt+1] 1447 //line parser.go.y:250 1448 { 1449 yyVAL.stmt_var_or_lets = yyDollar[1].stmt_var 1450 } 1451 case 28: 1452 yyDollar = yyS[yypt-1 : yypt+1] 1453 //line parser.go.y:254 1454 { 1455 yyVAL.stmt_var_or_lets = yyDollar[1].stmt_lets 1456 } 1457 case 29: 1458 yyDollar = yyS[yypt-4 : yypt+1] 1459 //line parser.go.y:260 1460 { 1461 yyVAL.stmt_var = &ast.VarStmt{Names: yyDollar[2].expr_idents, Exprs: yyDollar[4].exprs} 1462 yyVAL.stmt_var.SetPosition(yyDollar[1].tok.Position()) 1463 } 1464 case 30: 1465 yyDollar = yyS[yypt-3 : yypt+1] 1466 //line parser.go.y:267 1467 { 1468 yyVAL.stmt_lets = &ast.LetsStmt{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{yyDollar[3].expr}} 1469 yyVAL.stmt_lets.SetPosition(yyDollar[1].expr.Position()) 1470 } 1471 case 31: 1472 yyDollar = yyS[yypt-3 : yypt+1] 1473 //line parser.go.y:272 1474 { 1475 if len(yyDollar[1].exprs) == 2 && len(yyDollar[3].exprs) == 1 { 1476 if _, ok := yyDollar[3].exprs[0].(*ast.ItemExpr); ok { 1477 yyVAL.stmt_lets = &ast.LetMapItemStmt{LHSS: yyDollar[1].exprs, RHS: yyDollar[3].exprs[0]} 1478 } else { 1479 yyVAL.stmt_lets = &ast.LetsStmt{LHSS: yyDollar[1].exprs, RHSS: yyDollar[3].exprs} 1480 } 1481 } else { 1482 yyVAL.stmt_lets = &ast.LetsStmt{LHSS: yyDollar[1].exprs, RHSS: yyDollar[3].exprs} 1483 } 1484 yyVAL.stmt_lets.SetPosition(yyDollar[1].exprs[0].Position()) 1485 } 1486 case 32: 1487 yyDollar = yyS[yypt-3 : yypt+1] 1488 //line parser.go.y:285 1489 { 1490 yyVAL.stmt_lets = &ast.ChanStmt{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} 1491 yyVAL.stmt_lets.SetPosition(yyDollar[1].expr.Position()) 1492 } 1493 case 33: 1494 yyDollar = yyS[yypt-3 : yypt+1] 1495 //line parser.go.y:290 1496 { 1497 if len(yyDollar[1].exprs) == 2 { 1498 chanStmt := &ast.ChanStmt{LHS: yyDollar[1].exprs[0].(ast.Expr), OkExpr: yyDollar[1].exprs[1].(ast.Expr), RHS: yyDollar[3].expr} 1499 yyVAL.stmt_lets = chanStmt 1500 yyVAL.stmt_lets.SetPosition(chanStmt.LHS.Position()) 1501 } else if len(yyDollar[1].exprs) < 2 { 1502 yylex.Error("missing expressions on left side of channel operator") 1503 yyVAL.stmt_lets = &ast.ChanStmt{RHS: yyDollar[3].expr} 1504 yyVAL.stmt_lets.SetPosition(yyDollar[2].tok.Position()) 1505 } 1506 } 1507 case 34: 1508 yyDollar = yyS[yypt-5 : yypt+1] 1509 //line parser.go.y:304 1510 { 1511 yyVAL.stmt_if = &ast.IfStmt{If: yyDollar[2].expr, Then: yyDollar[4].compstmt, Else: nil} 1512 yyVAL.stmt_if.SetPosition(yyDollar[1].tok.Position()) 1513 } 1514 case 35: 1515 yyDollar = yyS[yypt-7 : yypt+1] 1516 //line parser.go.y:309 1517 { 1518 ifStmt := yyDollar[1].stmt_if.(*ast.IfStmt) 1519 ifStmt.ElseIf = append(ifStmt.ElseIf, &ast.IfStmt{If: yyDollar[4].expr, Then: yyDollar[6].compstmt}) 1520 } 1521 case 36: 1522 yyDollar = yyS[yypt-5 : yypt+1] 1523 //line parser.go.y:314 1524 { 1525 ifStmt := yyDollar[1].stmt_if.(*ast.IfStmt) 1526 if ifStmt.Else != nil { 1527 yylex.Error("multiple else statement") 1528 } 1529 ifStmt.Else = yyDollar[4].compstmt 1530 } 1531 case 37: 1532 yyDollar = yyS[yypt-4 : yypt+1] 1533 //line parser.go.y:324 1534 { 1535 yyVAL.stmt_for = &ast.LoopStmt{Stmt: yyDollar[3].compstmt} 1536 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1537 } 1538 case 38: 1539 yyDollar = yyS[yypt-7 : yypt+1] 1540 //line parser.go.y:329 1541 { 1542 if len(yyDollar[2].expr_idents) < 1 { 1543 yylex.Error("missing identifier") 1544 } else if len(yyDollar[2].expr_idents) > 2 { 1545 yylex.Error("too many identifiers") 1546 } else { 1547 yyVAL.stmt_for = &ast.ForStmt{Vars: yyDollar[2].expr_idents, Value: yyDollar[4].expr, Stmt: yyDollar[6].compstmt} 1548 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1549 } 1550 } 1551 case 39: 1552 yyDollar = yyS[yypt-5 : yypt+1] 1553 //line parser.go.y:340 1554 { 1555 yyVAL.stmt_for = &ast.LoopStmt{Expr: yyDollar[2].expr, Stmt: yyDollar[4].compstmt} 1556 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1557 } 1558 case 40: 1559 yyDollar = yyS[yypt-6 : yypt+1] 1560 //line parser.go.y:345 1561 { 1562 yyVAL.stmt_for = &ast.CForStmt{Stmt: yyDollar[5].compstmt} 1563 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1564 } 1565 case 41: 1566 yyDollar = yyS[yypt-7 : yypt+1] 1567 //line parser.go.y:350 1568 { 1569 yyVAL.stmt_for = &ast.CForStmt{Expr3: yyDollar[4].expr, Stmt: yyDollar[6].compstmt} 1570 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1571 } 1572 case 42: 1573 yyDollar = yyS[yypt-7 : yypt+1] 1574 //line parser.go.y:355 1575 { 1576 yyVAL.stmt_for = &ast.CForStmt{Expr2: yyDollar[3].expr, Stmt: yyDollar[6].compstmt} 1577 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1578 } 1579 case 43: 1580 yyDollar = yyS[yypt-8 : yypt+1] 1581 //line parser.go.y:360 1582 { 1583 yyVAL.stmt_for = &ast.CForStmt{Expr2: yyDollar[3].expr, Expr3: yyDollar[5].expr, Stmt: yyDollar[7].compstmt} 1584 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1585 } 1586 case 44: 1587 yyDollar = yyS[yypt-7 : yypt+1] 1588 //line parser.go.y:365 1589 { 1590 yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Stmt: yyDollar[6].compstmt} 1591 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1592 } 1593 case 45: 1594 yyDollar = yyS[yypt-8 : yypt+1] 1595 //line parser.go.y:370 1596 { 1597 yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr3: yyDollar[5].expr, Stmt: yyDollar[7].compstmt} 1598 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1599 } 1600 case 46: 1601 yyDollar = yyS[yypt-8 : yypt+1] 1602 //line parser.go.y:375 1603 { 1604 yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr2: yyDollar[4].expr, Stmt: yyDollar[7].compstmt} 1605 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1606 } 1607 case 47: 1608 yyDollar = yyS[yypt-9 : yypt+1] 1609 //line parser.go.y:380 1610 { 1611 yyVAL.stmt_for = &ast.CForStmt{Stmt1: yyDollar[2].stmt_var_or_lets, Expr2: yyDollar[4].expr, Expr3: yyDollar[6].expr, Stmt: yyDollar[8].compstmt} 1612 yyVAL.stmt_for.SetPosition(yyDollar[1].tok.Position()) 1613 } 1614 case 48: 1615 yyDollar = yyS[yypt-7 : yypt+1] 1616 //line parser.go.y:387 1617 { 1618 switchStmt := yyDollar[5].stmt_switch_cases.(*ast.SwitchStmt) 1619 switchStmt.Expr = yyDollar[2].expr 1620 yyVAL.stmt_switch = switchStmt 1621 yyVAL.stmt_switch.SetPosition(yyDollar[1].tok.Position()) 1622 } 1623 case 49: 1624 yyDollar = yyS[yypt-0 : yypt+1] 1625 //line parser.go.y:396 1626 { 1627 yyVAL.stmt_switch_cases = &ast.SwitchStmt{} 1628 } 1629 case 50: 1630 yyDollar = yyS[yypt-1 : yypt+1] 1631 //line parser.go.y:400 1632 { 1633 yyVAL.stmt_switch_cases = &ast.SwitchStmt{Default: yyDollar[1].stmt_switch_default} 1634 } 1635 case 51: 1636 yyDollar = yyS[yypt-1 : yypt+1] 1637 //line parser.go.y:404 1638 { 1639 yyVAL.stmt_switch_cases = &ast.SwitchStmt{Cases: []ast.Stmt{yyDollar[1].stmt_switch_case}} 1640 } 1641 case 52: 1642 yyDollar = yyS[yypt-2 : yypt+1] 1643 //line parser.go.y:408 1644 { 1645 switchStmt := yyDollar[1].stmt_switch_cases.(*ast.SwitchStmt) 1646 switchStmt.Cases = append(switchStmt.Cases, yyDollar[2].stmt_switch_case) 1647 yyVAL.stmt_switch_cases = switchStmt 1648 } 1649 case 53: 1650 yyDollar = yyS[yypt-2 : yypt+1] 1651 //line parser.go.y:414 1652 { 1653 switchStmt := yyDollar[1].stmt_switch_cases.(*ast.SwitchStmt) 1654 if switchStmt.Default != nil { 1655 yylex.Error("multiple default statement") 1656 } 1657 switchStmt.Default = yyDollar[2].stmt_switch_default 1658 } 1659 case 54: 1660 yyDollar = yyS[yypt-4 : yypt+1] 1661 //line parser.go.y:424 1662 { 1663 yyVAL.stmt_switch_case = &ast.SwitchCaseStmt{Exprs: []ast.Expr{yyDollar[2].expr}, Stmt: yyDollar[4].compstmt} 1664 yyVAL.stmt_switch_case.SetPosition(yyDollar[1].tok.Position()) 1665 } 1666 case 55: 1667 yyDollar = yyS[yypt-4 : yypt+1] 1668 //line parser.go.y:429 1669 { 1670 yyVAL.stmt_switch_case = &ast.SwitchCaseStmt{Exprs: yyDollar[2].exprs, Stmt: yyDollar[4].compstmt} 1671 yyVAL.stmt_switch_case.SetPosition(yyDollar[1].tok.Position()) 1672 } 1673 case 56: 1674 yyDollar = yyS[yypt-3 : yypt+1] 1675 //line parser.go.y:436 1676 { 1677 yyVAL.stmt_switch_default = yyDollar[3].compstmt 1678 } 1679 case 57: 1680 yyDollar = yyS[yypt-0 : yypt+1] 1681 //line parser.go.y:443 1682 { 1683 yyVAL.exprs = nil 1684 } 1685 case 58: 1686 yyDollar = yyS[yypt-1 : yypt+1] 1687 //line parser.go.y:447 1688 { 1689 yyVAL.exprs = []ast.Expr{yyDollar[1].expr} 1690 } 1691 case 59: 1692 yyDollar = yyS[yypt-4 : yypt+1] 1693 //line parser.go.y:451 1694 { 1695 if len(yyDollar[1].exprs) == 0 { 1696 yylex.Error("syntax error: unexpected ','") 1697 } 1698 yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[4].expr) 1699 } 1700 case 60: 1701 yyDollar = yyS[yypt-4 : yypt+1] 1702 //line parser.go.y:458 1703 { 1704 if len(yyDollar[1].exprs) == 0 { 1705 yylex.Error("syntax error: unexpected ','") 1706 } 1707 yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[4].expr_ident) 1708 } 1709 case 61: 1710 yyDollar = yyS[yypt-1 : yypt+1] 1711 //line parser.go.y:467 1712 { 1713 yyVAL.expr = yyDollar[1].expr_member_or_ident 1714 } 1715 case 62: 1716 yyDollar = yyS[yypt-1 : yypt+1] 1717 //line parser.go.y:471 1718 { 1719 yyVAL.expr = yyDollar[1].expr_literals 1720 } 1721 case 63: 1722 yyDollar = yyS[yypt-5 : yypt+1] 1723 //line parser.go.y:475 1724 { 1725 yyVAL.expr = &ast.TernaryOpExpr{Expr: yyDollar[1].expr, LHS: yyDollar[3].expr, RHS: yyDollar[5].expr} 1726 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1727 } 1728 case 64: 1729 yyDollar = yyS[yypt-3 : yypt+1] 1730 //line parser.go.y:480 1731 { 1732 yyVAL.expr = &ast.NilCoalescingOpExpr{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} 1733 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1734 } 1735 case 65: 1736 yyDollar = yyS[yypt-7 : yypt+1] 1737 //line parser.go.y:485 1738 { 1739 yyVAL.expr = &ast.FuncExpr{Params: yyDollar[3].expr_idents, Stmt: yyDollar[6].compstmt} 1740 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1741 } 1742 case 66: 1743 yyDollar = yyS[yypt-8 : yypt+1] 1744 //line parser.go.y:490 1745 { 1746 yyVAL.expr = &ast.FuncExpr{Params: yyDollar[3].expr_idents, Stmt: yyDollar[7].compstmt, VarArg: true} 1747 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1748 } 1749 case 67: 1750 yyDollar = yyS[yypt-8 : yypt+1] 1751 //line parser.go.y:495 1752 { 1753 yyVAL.expr = &ast.FuncExpr{Name: yyDollar[2].tok.Lit, Params: yyDollar[4].expr_idents, Stmt: yyDollar[7].compstmt} 1754 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1755 } 1756 case 68: 1757 yyDollar = yyS[yypt-9 : yypt+1] 1758 //line parser.go.y:500 1759 { 1760 yyVAL.expr = &ast.FuncExpr{Name: yyDollar[2].tok.Lit, Params: yyDollar[4].expr_idents, Stmt: yyDollar[8].compstmt, VarArg: true} 1761 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1762 } 1763 case 69: 1764 yyDollar = yyS[yypt-2 : yypt+1] 1765 //line parser.go.y:505 1766 { 1767 yyVAL.expr = &ast.ArrayExpr{} 1768 if l, ok := yylex.(*Lexer); ok { 1769 yyVAL.expr.SetPosition(l.pos) 1770 } 1771 } 1772 case 70: 1773 yyDollar = yyS[yypt-5 : yypt+1] 1774 //line parser.go.y:510 1775 { 1776 yyVAL.expr = &ast.ArrayExpr{Exprs: yyDollar[3].exprs} 1777 if l, ok := yylex.(*Lexer); ok { 1778 yyVAL.expr.SetPosition(l.pos) 1779 } 1780 } 1781 case 71: 1782 yyDollar = yyS[yypt-7 : yypt+1] 1783 //line parser.go.y:515 1784 { 1785 yyVAL.expr = &ast.ArrayExpr{Exprs: yyDollar[5].exprs, TypeData: &ast.TypeStruct{Kind: ast.TypeSlice, SubType: yyDollar[2].type_data, Dimensions: yyDollar[1].slice_count}} 1786 if l, ok := yylex.(*Lexer); ok { 1787 yyVAL.expr.SetPosition(l.pos) 1788 } 1789 } 1790 case 72: 1791 yyDollar = yyS[yypt-3 : yypt+1] 1792 //line parser.go.y:520 1793 { 1794 yyVAL.expr = &ast.ParenExpr{SubExpr: yyDollar[2].expr} 1795 if l, ok := yylex.(*Lexer); ok { 1796 yyVAL.expr.SetPosition(l.pos) 1797 } 1798 } 1799 case 73: 1800 yyDollar = yyS[yypt-5 : yypt+1] 1801 //line parser.go.y:525 1802 { 1803 yyVAL.expr = &ast.CallExpr{Name: yyDollar[1].tok.Lit, SubExprs: yyDollar[3].exprs, VarArg: true} 1804 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1805 } 1806 case 74: 1807 yyDollar = yyS[yypt-4 : yypt+1] 1808 //line parser.go.y:530 1809 { 1810 yyVAL.expr = &ast.CallExpr{Name: yyDollar[1].tok.Lit, SubExprs: yyDollar[3].exprs} 1811 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1812 } 1813 case 75: 1814 yyDollar = yyS[yypt-5 : yypt+1] 1815 //line parser.go.y:535 1816 { 1817 yyVAL.expr = &ast.AnonCallExpr{Expr: yyDollar[1].expr, SubExprs: yyDollar[3].exprs, VarArg: true} 1818 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1819 } 1820 case 76: 1821 yyDollar = yyS[yypt-4 : yypt+1] 1822 //line parser.go.y:540 1823 { 1824 yyVAL.expr = &ast.AnonCallExpr{Expr: yyDollar[1].expr, SubExprs: yyDollar[3].exprs} 1825 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1826 } 1827 case 77: 1828 yyDollar = yyS[yypt-4 : yypt+1] 1829 //line parser.go.y:545 1830 { 1831 yyVAL.expr = &ast.ItemExpr{Item: yyDollar[1].expr_ident, Index: yyDollar[3].expr} 1832 yyVAL.expr.SetPosition(yyDollar[1].expr_ident.Position()) 1833 } 1834 case 78: 1835 yyDollar = yyS[yypt-4 : yypt+1] 1836 //line parser.go.y:550 1837 { 1838 yyVAL.expr = &ast.ItemExpr{Item: yyDollar[1].expr, Index: yyDollar[3].expr} 1839 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1840 } 1841 case 79: 1842 yyDollar = yyS[yypt-4 : yypt+1] 1843 //line parser.go.y:555 1844 { 1845 yyVAL.expr = &ast.LenExpr{Expr: yyDollar[3].expr} 1846 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1847 } 1848 case 80: 1849 yyDollar = yyS[yypt-4 : yypt+1] 1850 //line parser.go.y:560 1851 { 1852 yyVAL.expr = &ast.ImportExpr{Name: yyDollar[3].expr} 1853 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1854 } 1855 case 81: 1856 yyDollar = yyS[yypt-4 : yypt+1] 1857 //line parser.go.y:565 1858 { 1859 if yyDollar[3].type_data.Kind == ast.TypeDefault { 1860 yyDollar[3].type_data.Kind = ast.TypePtr 1861 yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data} 1862 } else { 1863 yyVAL.expr = &ast.MakeExpr{TypeData: &ast.TypeStruct{Kind: ast.TypePtr, SubType: yyDollar[3].type_data}} 1864 } 1865 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1866 } 1867 case 82: 1868 yyDollar = yyS[yypt-4 : yypt+1] 1869 //line parser.go.y:575 1870 { 1871 yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data} 1872 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1873 } 1874 case 83: 1875 yyDollar = yyS[yypt-6 : yypt+1] 1876 //line parser.go.y:580 1877 { 1878 yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data, LenExpr: yyDollar[5].expr} 1879 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1880 } 1881 case 84: 1882 yyDollar = yyS[yypt-8 : yypt+1] 1883 //line parser.go.y:585 1884 { 1885 yyVAL.expr = &ast.MakeExpr{TypeData: yyDollar[3].type_data, LenExpr: yyDollar[5].expr, CapExpr: yyDollar[7].expr} 1886 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1887 } 1888 case 85: 1889 yyDollar = yyS[yypt-7 : yypt+1] 1890 //line parser.go.y:590 1891 { 1892 yyVAL.expr = &ast.MakeTypeExpr{Name: yyDollar[4].tok.Lit, Type: yyDollar[6].expr} 1893 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1894 } 1895 case 86: 1896 yyDollar = yyS[yypt-3 : yypt+1] 1897 //line parser.go.y:595 1898 { 1899 yyVAL.expr = &ast.IncludeExpr{ItemExpr: yyDollar[1].expr, ListExpr: yyDollar[3].expr} 1900 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 1901 } 1902 case 87: 1903 yyDollar = yyS[yypt-6 : yypt+1] 1904 //line parser.go.y:600 1905 { 1906 yyDollar[4].expr_map.TypeData = &ast.TypeStruct{Kind: ast.TypeMap, Key: &ast.TypeStruct{Name: "interface"}, SubType: &ast.TypeStruct{Name: "interface"}} 1907 yyVAL.expr = yyDollar[4].expr_map 1908 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1909 } 1910 case 88: 1911 yyDollar = yyS[yypt-10 : yypt+1] 1912 //line parser.go.y:606 1913 { 1914 yyDollar[8].expr_map.TypeData = &ast.TypeStruct{Kind: ast.TypeMap, Key: yyDollar[3].type_data, SubType: yyDollar[5].type_data} 1915 yyVAL.expr = yyDollar[8].expr_map 1916 yyVAL.expr.SetPosition(yyDollar[1].tok.Position()) 1917 } 1918 case 89: 1919 yyDollar = yyS[yypt-5 : yypt+1] 1920 //line parser.go.y:612 1921 { 1922 yyVAL.expr = yyDollar[3].expr_map 1923 yyVAL.expr.SetPosition(yyDollar[3].expr_map.Position()) 1924 } 1925 case 90: 1926 yyDollar = yyS[yypt-1 : yypt+1] 1927 //line parser.go.y:617 1928 { 1929 yyVAL.expr = yyDollar[1].expr_slice 1930 yyVAL.expr.SetPosition(yyDollar[1].expr_slice.Position()) 1931 } 1932 case 91: 1933 yyDollar = yyS[yypt-1 : yypt+1] 1934 //line parser.go.y:622 1935 { 1936 yyVAL.expr = yyDollar[1].expr_chan 1937 yyVAL.expr.SetPosition(yyDollar[1].expr_chan.Position()) 1938 } 1939 case 95: 1940 yyDollar = yyS[yypt-0 : yypt+1] 1941 //line parser.go.y:631 1942 { 1943 yyVAL.expr_idents = []string{} 1944 } 1945 case 96: 1946 yyDollar = yyS[yypt-1 : yypt+1] 1947 //line parser.go.y:635 1948 { 1949 yyVAL.expr_idents = []string{yyDollar[1].tok.Lit} 1950 } 1951 case 97: 1952 yyDollar = yyS[yypt-4 : yypt+1] 1953 //line parser.go.y:639 1954 { 1955 if len(yyDollar[1].expr_idents) == 0 { 1956 yylex.Error("syntax error: unexpected ','") 1957 } 1958 yyVAL.expr_idents = append(yyDollar[1].expr_idents, yyDollar[4].tok.Lit) 1959 } 1960 case 98: 1961 yyDollar = yyS[yypt-1 : yypt+1] 1962 //line parser.go.y:648 1963 { 1964 yyVAL.type_data = &ast.TypeStruct{Name: yyDollar[1].tok.Lit} 1965 } 1966 case 99: 1967 yyDollar = yyS[yypt-3 : yypt+1] 1968 //line parser.go.y:652 1969 { 1970 if yyDollar[1].type_data.Kind != ast.TypeDefault { 1971 yylex.Error("not type default") 1972 } else { 1973 yyDollar[1].type_data.Env = append(yyDollar[1].type_data.Env, yyDollar[1].type_data.Name) 1974 yyDollar[1].type_data.Name = yyDollar[3].tok.Lit 1975 } 1976 } 1977 case 100: 1978 yyDollar = yyS[yypt-2 : yypt+1] 1979 //line parser.go.y:661 1980 { 1981 if yyDollar[2].type_data.Kind == ast.TypeDefault { 1982 yyDollar[2].type_data.Kind = ast.TypePtr 1983 yyVAL.type_data = yyDollar[2].type_data 1984 } else { 1985 yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypePtr, SubType: yyDollar[2].type_data} 1986 } 1987 } 1988 case 101: 1989 yyDollar = yyS[yypt-2 : yypt+1] 1990 //line parser.go.y:670 1991 { 1992 if yyDollar[2].type_data.Kind == ast.TypeDefault { 1993 yyDollar[2].type_data.Kind = ast.TypeSlice 1994 yyDollar[2].type_data.Dimensions = yyDollar[1].slice_count 1995 yyVAL.type_data = yyDollar[2].type_data 1996 } else { 1997 yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeSlice, SubType: yyDollar[2].type_data, Dimensions: yyDollar[1].slice_count} 1998 } 1999 } 2000 case 102: 2001 yyDollar = yyS[yypt-5 : yypt+1] 2002 //line parser.go.y:680 2003 { 2004 yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeMap, Key: yyDollar[3].type_data, SubType: yyDollar[5].type_data} 2005 } 2006 case 103: 2007 yyDollar = yyS[yypt-2 : yypt+1] 2008 //line parser.go.y:684 2009 { 2010 if yyDollar[2].type_data.Kind == ast.TypeDefault { 2011 yyDollar[2].type_data.Kind = ast.TypeChan 2012 yyVAL.type_data = yyDollar[2].type_data 2013 } else { 2014 yyVAL.type_data = &ast.TypeStruct{Kind: ast.TypeChan, SubType: yyDollar[2].type_data} 2015 } 2016 } 2017 case 104: 2018 yyDollar = yyS[yypt-6 : yypt+1] 2019 //line parser.go.y:693 2020 { 2021 yyVAL.type_data = yyDollar[4].type_data_struct 2022 } 2023 case 105: 2024 yyDollar = yyS[yypt-2 : yypt+1] 2025 //line parser.go.y:699 2026 { 2027 yyVAL.type_data_struct = &ast.TypeStruct{Kind: ast.TypeStructType, StructNames: []string{yyDollar[1].tok.Lit}, StructTypes: []*ast.TypeStruct{yyDollar[2].type_data}} 2028 } 2029 case 106: 2030 yyDollar = yyS[yypt-5 : yypt+1] 2031 //line parser.go.y:703 2032 { 2033 if yyDollar[1].type_data_struct == nil { 2034 yylex.Error("syntax error: unexpected ','") 2035 } 2036 yyVAL.type_data_struct.StructNames = append(yyVAL.type_data_struct.StructNames, yyDollar[4].tok.Lit) 2037 yyVAL.type_data_struct.StructTypes = append(yyVAL.type_data_struct.StructTypes, yyDollar[5].type_data) 2038 } 2039 case 107: 2040 yyDollar = yyS[yypt-2 : yypt+1] 2041 //line parser.go.y:713 2042 { 2043 yyVAL.slice_count = 1 2044 } 2045 case 108: 2046 yyDollar = yyS[yypt-3 : yypt+1] 2047 //line parser.go.y:717 2048 { 2049 yyVAL.slice_count = yyDollar[3].slice_count + 1 2050 } 2051 case 109: 2052 yyDollar = yyS[yypt-1 : yypt+1] 2053 //line parser.go.y:723 2054 { 2055 yyVAL.expr_member_or_ident = yyDollar[1].expr_member 2056 } 2057 case 110: 2058 yyDollar = yyS[yypt-1 : yypt+1] 2059 //line parser.go.y:727 2060 { 2061 yyVAL.expr_member_or_ident = yyDollar[1].expr_ident 2062 } 2063 case 111: 2064 yyDollar = yyS[yypt-3 : yypt+1] 2065 //line parser.go.y:733 2066 { 2067 yyVAL.expr_member = &ast.MemberExpr{Expr: yyDollar[1].expr, Name: yyDollar[3].tok.Lit} 2068 yyVAL.expr_member.SetPosition(yyDollar[1].expr.Position()) 2069 } 2070 case 112: 2071 yyDollar = yyS[yypt-1 : yypt+1] 2072 //line parser.go.y:740 2073 { 2074 yyVAL.expr_ident = &ast.IdentExpr{Lit: yyDollar[1].tok.Lit} 2075 yyVAL.expr_ident.SetPosition(yyDollar[1].tok.Position()) 2076 } 2077 case 113: 2078 yyDollar = yyS[yypt-2 : yypt+1] 2079 //line parser.go.y:747 2080 { 2081 num, err := toNumber("-" + yyDollar[2].tok.Lit) 2082 if err != nil { 2083 yylex.Error("invalid number: -" + yyDollar[2].tok.Lit) 2084 } 2085 yyVAL.expr_literals = &ast.LiteralExpr{Literal: num} 2086 yyVAL.expr_literals.SetPosition(yyDollar[2].tok.Position()) 2087 } 2088 case 114: 2089 yyDollar = yyS[yypt-1 : yypt+1] 2090 //line parser.go.y:756 2091 { 2092 num, err := toNumber(yyDollar[1].tok.Lit) 2093 if err != nil { 2094 yylex.Error("invalid number: " + yyDollar[1].tok.Lit) 2095 } 2096 yyVAL.expr_literals = &ast.LiteralExpr{Literal: num} 2097 yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) 2098 } 2099 case 115: 2100 yyDollar = yyS[yypt-1 : yypt+1] 2101 //line parser.go.y:765 2102 { 2103 yyVAL.expr_literals = &ast.LiteralExpr{Literal: stringToValue(yyDollar[1].tok.Lit)} 2104 yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) 2105 } 2106 case 116: 2107 yyDollar = yyS[yypt-1 : yypt+1] 2108 //line parser.go.y:770 2109 { 2110 yyVAL.expr_literals = &ast.LiteralExpr{Literal: trueValue} 2111 yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) 2112 } 2113 case 117: 2114 yyDollar = yyS[yypt-1 : yypt+1] 2115 //line parser.go.y:775 2116 { 2117 yyVAL.expr_literals = &ast.LiteralExpr{Literal: falseValue} 2118 yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) 2119 } 2120 case 118: 2121 yyDollar = yyS[yypt-1 : yypt+1] 2122 //line parser.go.y:780 2123 { 2124 yyVAL.expr_literals = &ast.LiteralExpr{Literal: nilValue} 2125 yyVAL.expr_literals.SetPosition(yyDollar[1].tok.Position()) 2126 } 2127 case 119: 2128 yyDollar = yyS[yypt-0 : yypt+1] 2129 //line parser.go.y:787 2130 { 2131 yyVAL.expr_map = &ast.MapExpr{} 2132 } 2133 case 120: 2134 yyDollar = yyS[yypt-3 : yypt+1] 2135 //line parser.go.y:791 2136 { 2137 yyVAL.expr_map = &ast.MapExpr{Keys: []ast.Expr{yyDollar[1].expr}, Values: []ast.Expr{yyDollar[3].expr}} 2138 } 2139 case 121: 2140 yyDollar = yyS[yypt-6 : yypt+1] 2141 //line parser.go.y:795 2142 { 2143 if yyDollar[1].expr_map.Keys == nil { 2144 yylex.Error("syntax error: unexpected ','") 2145 } 2146 yyVAL.expr_map.Keys = append(yyVAL.expr_map.Keys, yyDollar[4].expr) 2147 yyVAL.expr_map.Values = append(yyVAL.expr_map.Values, yyDollar[6].expr) 2148 } 2149 case 122: 2150 yyDollar = yyS[yypt-6 : yypt+1] 2151 //line parser.go.y:805 2152 { 2153 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: yyDollar[5].expr} 2154 } 2155 case 123: 2156 yyDollar = yyS[yypt-5 : yypt+1] 2157 //line parser.go.y:809 2158 { 2159 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: nil} 2160 } 2161 case 124: 2162 yyDollar = yyS[yypt-5 : yypt+1] 2163 //line parser.go.y:813 2164 { 2165 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: nil, End: yyDollar[4].expr} 2166 } 2167 case 125: 2168 yyDollar = yyS[yypt-7 : yypt+1] 2169 //line parser.go.y:817 2170 { 2171 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, End: yyDollar[4].expr, Cap: yyDollar[6].expr} 2172 } 2173 case 126: 2174 yyDollar = yyS[yypt-8 : yypt+1] 2175 //line parser.go.y:821 2176 { 2177 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr_ident, Begin: yyDollar[3].expr, End: yyDollar[5].expr, Cap: yyDollar[7].expr} 2178 } 2179 case 127: 2180 yyDollar = yyS[yypt-6 : yypt+1] 2181 //line parser.go.y:825 2182 { 2183 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: yyDollar[5].expr} 2184 } 2185 case 128: 2186 yyDollar = yyS[yypt-5 : yypt+1] 2187 //line parser.go.y:829 2188 { 2189 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: nil} 2190 } 2191 case 129: 2192 yyDollar = yyS[yypt-5 : yypt+1] 2193 //line parser.go.y:833 2194 { 2195 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: nil, End: yyDollar[4].expr} 2196 } 2197 case 130: 2198 yyDollar = yyS[yypt-7 : yypt+1] 2199 //line parser.go.y:837 2200 { 2201 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, End: yyDollar[4].expr, Cap: yyDollar[6].expr} 2202 } 2203 case 131: 2204 yyDollar = yyS[yypt-8 : yypt+1] 2205 //line parser.go.y:841 2206 { 2207 yyVAL.expr_slice = &ast.SliceExpr{Item: yyDollar[1].expr, Begin: yyDollar[3].expr, End: yyDollar[5].expr, Cap: yyDollar[7].expr} 2208 } 2209 case 132: 2210 yyDollar = yyS[yypt-3 : yypt+1] 2211 //line parser.go.y:847 2212 { 2213 yyVAL.expr_chan = &ast.ChanExpr{LHS: yyDollar[1].expr, RHS: yyDollar[3].expr} 2214 } 2215 case 133: 2216 yyDollar = yyS[yypt-2 : yypt+1] 2217 //line parser.go.y:851 2218 { 2219 yyVAL.expr_chan = &ast.ChanExpr{RHS: yyDollar[2].expr} 2220 } 2221 case 134: 2222 yyDollar = yyS[yypt-2 : yypt+1] 2223 //line parser.go.y:857 2224 { 2225 yyVAL.expr = &ast.UnaryExpr{Operator: "-", Expr: yyDollar[2].expr} 2226 yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) 2227 } 2228 case 135: 2229 yyDollar = yyS[yypt-2 : yypt+1] 2230 //line parser.go.y:862 2231 { 2232 yyVAL.expr = &ast.UnaryExpr{Operator: "!", Expr: yyDollar[2].expr} 2233 yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) 2234 } 2235 case 136: 2236 yyDollar = yyS[yypt-2 : yypt+1] 2237 //line parser.go.y:867 2238 { 2239 yyVAL.expr = &ast.UnaryExpr{Operator: "^", Expr: yyDollar[2].expr} 2240 yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) 2241 } 2242 case 137: 2243 yyDollar = yyS[yypt-2 : yypt+1] 2244 //line parser.go.y:872 2245 { 2246 yyVAL.expr = &ast.AddrExpr{Expr: yyDollar[2].expr} 2247 yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) 2248 } 2249 case 138: 2250 yyDollar = yyS[yypt-2 : yypt+1] 2251 //line parser.go.y:877 2252 { 2253 yyVAL.expr = &ast.DerefExpr{Expr: yyDollar[2].expr} 2254 yyVAL.expr.SetPosition(yyDollar[2].expr.Position()) 2255 } 2256 case 139: 2257 yyDollar = yyS[yypt-1 : yypt+1] 2258 //line parser.go.y:884 2259 { 2260 yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} 2261 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2262 } 2263 case 140: 2264 yyDollar = yyS[yypt-1 : yypt+1] 2265 //line parser.go.y:889 2266 { 2267 yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} 2268 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2269 } 2270 case 141: 2271 yyDollar = yyS[yypt-1 : yypt+1] 2272 //line parser.go.y:894 2273 { 2274 yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} 2275 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2276 } 2277 case 142: 2278 yyDollar = yyS[yypt-1 : yypt+1] 2279 //line parser.go.y:899 2280 { 2281 yyVAL.expr = &ast.OpExpr{Op: yyDollar[1].expr} 2282 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2283 } 2284 case 143: 2285 yyDollar = yyS[yypt-2 : yypt+1] 2286 //line parser.go.y:906 2287 { 2288 rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: oneLiteral}} 2289 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2290 rhs.SetPosition(yyDollar[1].expr.Position()) 2291 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2292 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2293 } 2294 case 144: 2295 yyDollar = yyS[yypt-2 : yypt+1] 2296 //line parser.go.y:914 2297 { 2298 rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: oneLiteral}} 2299 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2300 rhs.SetPosition(yyDollar[1].expr.Position()) 2301 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2302 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2303 } 2304 case 145: 2305 yyDollar = yyS[yypt-3 : yypt+1] 2306 //line parser.go.y:922 2307 { 2308 rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: yyDollar[3].expr}} 2309 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2310 rhs.SetPosition(yyDollar[1].expr.Position()) 2311 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2312 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2313 } 2314 case 146: 2315 yyDollar = yyS[yypt-3 : yypt+1] 2316 //line parser.go.y:930 2317 { 2318 rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: yyDollar[3].expr}} 2319 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2320 rhs.SetPosition(yyDollar[1].expr.Position()) 2321 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2322 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2323 } 2324 case 147: 2325 yyDollar = yyS[yypt-3 : yypt+1] 2326 //line parser.go.y:938 2327 { 2328 rhs := &ast.OpExpr{Op: &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "|", RHS: yyDollar[3].expr}} 2329 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2330 rhs.SetPosition(yyDollar[1].expr.Position()) 2331 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2332 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2333 } 2334 case 148: 2335 yyDollar = yyS[yypt-3 : yypt+1] 2336 //line parser.go.y:946 2337 { 2338 rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "*", RHS: yyDollar[3].expr}} 2339 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2340 rhs.SetPosition(yyDollar[1].expr.Position()) 2341 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2342 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2343 } 2344 case 149: 2345 yyDollar = yyS[yypt-3 : yypt+1] 2346 //line parser.go.y:954 2347 { 2348 rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "/", RHS: yyDollar[3].expr}} 2349 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2350 rhs.SetPosition(yyDollar[1].expr.Position()) 2351 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2352 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2353 } 2354 case 150: 2355 yyDollar = yyS[yypt-3 : yypt+1] 2356 //line parser.go.y:962 2357 { 2358 rhs := &ast.OpExpr{Op: &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "&", RHS: yyDollar[3].expr}} 2359 rhs.Op.SetPosition(yyDollar[1].expr.Position()) 2360 rhs.SetPosition(yyDollar[1].expr.Position()) 2361 yyVAL.expr = &ast.LetsExpr{LHSS: []ast.Expr{yyDollar[1].expr}, RHSS: []ast.Expr{rhs}} 2362 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2363 } 2364 case 151: 2365 yyDollar = yyS[yypt-3 : yypt+1] 2366 //line parser.go.y:973 2367 { 2368 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "*", RHS: yyDollar[3].expr} 2369 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2370 } 2371 case 152: 2372 yyDollar = yyS[yypt-3 : yypt+1] 2373 //line parser.go.y:978 2374 { 2375 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "/", RHS: yyDollar[3].expr} 2376 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2377 } 2378 case 153: 2379 yyDollar = yyS[yypt-3 : yypt+1] 2380 //line parser.go.y:983 2381 { 2382 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "%", RHS: yyDollar[3].expr} 2383 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2384 } 2385 case 154: 2386 yyDollar = yyS[yypt-3 : yypt+1] 2387 //line parser.go.y:988 2388 { 2389 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "<<", RHS: yyDollar[3].expr} 2390 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2391 } 2392 case 155: 2393 yyDollar = yyS[yypt-3 : yypt+1] 2394 //line parser.go.y:993 2395 { 2396 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: ">>", RHS: yyDollar[3].expr} 2397 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2398 } 2399 case 156: 2400 yyDollar = yyS[yypt-3 : yypt+1] 2401 //line parser.go.y:998 2402 { 2403 yyVAL.expr = &ast.MultiplyOperator{LHS: yyDollar[1].expr, Operator: "&", RHS: yyDollar[3].expr} 2404 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2405 } 2406 case 157: 2407 yyDollar = yyS[yypt-3 : yypt+1] 2408 //line parser.go.y:1005 2409 { 2410 yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "+", RHS: yyDollar[3].expr} 2411 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2412 } 2413 case 158: 2414 yyDollar = yyS[yypt-3 : yypt+1] 2415 //line parser.go.y:1010 2416 { 2417 yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "-", RHS: yyDollar[3].expr} 2418 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2419 } 2420 case 159: 2421 yyDollar = yyS[yypt-3 : yypt+1] 2422 //line parser.go.y:1015 2423 { 2424 yyVAL.expr = &ast.AddOperator{LHS: yyDollar[1].expr, Operator: "|", RHS: yyDollar[3].expr} 2425 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2426 } 2427 case 160: 2428 yyDollar = yyS[yypt-3 : yypt+1] 2429 //line parser.go.y:1022 2430 { 2431 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "==", RHS: yyDollar[3].expr} 2432 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2433 } 2434 case 161: 2435 yyDollar = yyS[yypt-3 : yypt+1] 2436 //line parser.go.y:1027 2437 { 2438 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "!=", RHS: yyDollar[3].expr} 2439 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2440 } 2441 case 162: 2442 yyDollar = yyS[yypt-3 : yypt+1] 2443 //line parser.go.y:1032 2444 { 2445 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "<", RHS: yyDollar[3].expr} 2446 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2447 } 2448 case 163: 2449 yyDollar = yyS[yypt-3 : yypt+1] 2450 //line parser.go.y:1037 2451 { 2452 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: "<=", RHS: yyDollar[3].expr} 2453 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2454 } 2455 case 164: 2456 yyDollar = yyS[yypt-3 : yypt+1] 2457 //line parser.go.y:1042 2458 { 2459 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: ">", RHS: yyDollar[3].expr} 2460 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2461 } 2462 case 165: 2463 yyDollar = yyS[yypt-3 : yypt+1] 2464 //line parser.go.y:1047 2465 { 2466 yyVAL.expr = &ast.ComparisonOperator{LHS: yyDollar[1].expr, Operator: ">=", RHS: yyDollar[3].expr} 2467 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2468 } 2469 case 166: 2470 yyDollar = yyS[yypt-3 : yypt+1] 2471 //line parser.go.y:1054 2472 { 2473 yyVAL.expr = &ast.BinaryOperator{LHS: yyDollar[1].expr, Operator: "&&", RHS: yyDollar[3].expr} 2474 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2475 } 2476 case 167: 2477 yyDollar = yyS[yypt-3 : yypt+1] 2478 //line parser.go.y:1059 2479 { 2480 yyVAL.expr = &ast.BinaryOperator{LHS: yyDollar[1].expr, Operator: "||", RHS: yyDollar[3].expr} 2481 yyVAL.expr.SetPosition(yyDollar[1].expr.Position()) 2482 } 2483 } 2484 goto yystack /* stack new state and value */ 2485 }