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  }