📄 wsgram.c
字号:
/* A Bison parser, made from wmlscript/wsgram.y by GNU Bison version 1.28 */#define YYBISON 1 /* Identify Bison output. */#define yyparse ws_yy_parse#define yylex ws_yy_lex#define yyerror ws_yy_error#define yylval ws_yy_lval#define yychar ws_yy_char#define yydebug ws_yy_debug#define yynerrs ws_yy_nerrs#define YYLSP_NEEDED#define tINVALID 257#define tTRUE 258#define tFALSE 259#define tINTEGER 260#define tFLOAT 261#define tSTRING 262#define tIDENTIFIER 263#define tACCESS 264#define tAGENT 265#define tBREAK 266#define tCONTINUE 267#define tIDIV 268#define tIDIVA 269#define tDOMAIN 270#define tELSE 271#define tEQUIV 272#define tEXTERN 273#define tFOR 274#define tFUNCTION 275#define tHEADER 276#define tHTTP 277#define tIF 278#define tISVALID 279#define tMETA 280#define tNAME 281#define tPATH 282#define tRETURN 283#define tTYPEOF 284#define tUSE 285#define tUSER 286#define tVAR 287#define tWHILE 288#define tURL 289#define tDELETE 290#define tIN 291#define tLIB 292#define tNEW 293#define tNULL 294#define tTHIS 295#define tVOID 296#define tWITH 297#define tCASE 298#define tCATCH 299#define tCLASS 300#define tCONST 301#define tDEBUGGER 302#define tDEFAULT 303#define tDO 304#define tENUM 305#define tEXPORT 306#define tEXTENDS 307#define tFINALLY 308#define tIMPORT 309#define tPRIVATE 310#define tPUBLIC 311#define tSIZEOF 312#define tSTRUCT 313#define tSUPER 314#define tSWITCH 315#define tTHROW 316#define tTRY 317#define tEQ 318#define tLE 319#define tGE 320#define tNE 321#define tAND 322#define tOR 323#define tPLUSPLUS 324#define tMINUSMINUS 325#define tLSHIFT 326#define tRSSHIFT 327#define tRSZSHIFT 328#define tADDA 329#define tSUBA 330#define tMULA 331#define tDIVA 332#define tANDA 333#define tORA 334#define tXORA 335#define tREMA 336#define tLSHIFTA 337#define tRSSHIFTA 338#define tRSZSHIFTA 339#line 1 "wmlscript/wsgram.y"/* * * wsgram.y * * Author: Markku Rossi <mtr@iki.fi> * * Copyright (c) 1999-2000 WAPIT OY LTD. * All rights reserved. * * Bison grammar for the WMLScript compiler. * */#include "wmlscript/wsint.h"#define YYPARSE_PARAM pctx#define YYLEX_PARAM pctx/* The required yyerror() function. This is actually not used but to report the internal parser errors. All other errors are reported by using the `wserror.h' functions. */extern void yyerror(char *msg);#if WS_DEBUG/* Just for debugging purposes. */WsCompilerPtr global_compiler = NULL;#endif /* WS_DEBUG */#line 33 "wmlscript/wsgram.y"typedef union{ WsUInt32 integer; WsFloat vfloat; char *identifier; WsUtf8String *string; WsBool boolean; WsList *list; WsFormalParm *parm; WsVarDec *vardec; WsPragmaMetaBody *meta_body; WsStatement *stmt; WsExpression *expr;} YYSTYPE;#ifndef YYLTYPEtypedef struct yyltype { int timestamp; int first_line; int first_column; int last_line; int last_column; char *text; } yyltype;#define YYLTYPE yyltype#endif#include <stdio.h>#ifndef __cplusplus#ifndef __STDC__#define const#endif#endif#define YYFINAL 257#define YYFLAG -32768#define YYNTBASE 109#define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 163)static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 106, 2, 107, 2, 104, 97, 2, 87, 88, 102, 100, 89, 101, 108, 103, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 86, 98, 92, 99, 93, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 96, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 90, 95, 91, 105, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85};#if YYDEBUG != 0static const short yyprhs[] = { 0, 0, 3, 5, 7, 9, 12, 16, 18, 20, 22, 24, 28, 31, 34, 37, 42, 45, 47, 49, 51, 54, 58, 62, 65, 69, 71, 73, 75, 77, 80, 89, 90, 92, 93, 95, 96, 98, 100, 104, 106, 108, 110, 113, 115, 117, 120, 123, 125, 129, 131, 132, 134, 136, 139, 143, 146, 148, 152, 155, 156, 159, 167, 173, 179, 181, 191, 202, 206, 207, 209, 211, 215, 217, 221, 225, 229, 233, 237, 241, 245, 249, 253, 257, 261, 265, 269, 271, 277, 279, 283, 285, 289, 291, 295, 297, 301, 303, 307, 309, 313, 317, 319, 323, 327, 331, 335, 337, 341, 345, 349, 351, 355, 359, 361, 365, 369, 373, 377, 379, 382, 385, 388, 391, 394, 397, 400, 403, 405, 408, 411, 413, 416, 421, 426, 428, 430, 432, 434, 436, 438, 440, 444, 447, 451, 453};static const short yyrhs[] = { 110, 125, 0, 125, 0, 1, 0, 111, 0, 110, 111, 0, 31, 112, 86, 0, 1, 0, 113, 0, 114, 0, 116, 0, 35, 9, 8, 0, 10, 115, 0, 16, 8, 0, 28, 8, 0, 16, 8, 28, 8, 0, 26, 117, 0, 118, 0, 119, 0, 120, 0, 27, 121, 0, 23, 18, 121, 0, 32, 11, 121, 0, 122, 123, 0, 122, 123, 124, 0, 8, 0, 8, 0, 8, 0, 126, 0, 125, 126, 0, 127, 21, 9, 87, 128, 88, 132, 129, 0, 0, 19, 0, 0, 130, 0, 0, 86, 0, 9, 0, 130, 89, 9, 0, 132, 0, 135, 0, 86, 0, 144, 86, 0, 139, 0, 140, 0, 13, 86, 0, 12, 86, 0, 142, 0, 90, 133, 91, 0, 1, 0, 0, 134, 0, 131, 0, 134, 131, 0, 33, 136, 86, 0, 33, 1, 0, 137, 0, 136, 89, 137, 0, 9, 138, 0, 0, 92, 146, 0, 24, 87, 144, 88, 131, 17, 131, 0, 24, 87, 144, 88, 131, 0, 34, 87, 144, 88, 131, 0, 141, 0, 20, 87, 143, 86, 143, 86, 143, 88, 131, 0, 20, 87, 33, 136, 86, 143, 86, 143, 88, 131, 0, 29, 143, 86, 0, 0, 144, 0, 145, 0, 144, 89, 145, 0, 146, 0, 9, 92, 145, 0, 9, 77, 145, 0, 9, 78, 145, 0, 9, 82, 145, 0, 9, 75, 145, 0, 9, 76, 145, 0, 9, 83, 145, 0, 9, 84, 145, 0, 9, 85, 145, 0, 9, 79, 145, 0, 9, 81, 145, 0, 9, 80, 145, 0, 9, 15, 145, 0, 147, 0, 147, 93, 145, 94, 145, 0, 148, 0, 147, 69, 148, 0, 149, 0, 148, 68, 149, 0, 150, 0, 149, 95, 150, 0, 151, 0, 150, 96, 151, 0, 152, 0, 151, 97, 152, 0, 153, 0, 152, 64, 153, 0, 152, 67, 153, 0, 154, 0, 153, 98, 154, 0, 153, 99, 154, 0, 153, 65, 154, 0, 153, 66, 154, 0, 155, 0, 154, 72, 155, 0, 154, 73, 155, 0, 154, 74, 155, 0, 156, 0, 155, 100, 156, 0, 155, 101, 156, 0, 157, 0, 156, 102, 157, 0, 156, 103, 157, 0, 156, 14, 157, 0, 156, 104, 157, 0, 158, 0, 30, 157, 0, 25, 157, 0, 70, 9, 0, 71, 9, 0, 100, 157, 0, 101, 157, 0, 105, 157, 0, 106, 157, 0, 159, 0, 9, 70, 0, 9, 71, 0, 160, 0, 9, 161, 0, 9, 107, 9, 161, 0, 9, 108, 9, 161, 0, 9, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 87, 144, 88, 0, 87, 88, 0, 87, 162, 88, 0, 145, 0, 162, 89, 145, 0};#endif#if YYDEBUG != 0static const short yyrline[] = { 0, 121, 123, 124, 130, 132, 135, 137, 141, 143, 144, 147, 152, 156, 167, 178, 200, 204, 206, 207, 210, 228, 248, 283, 286, 290, 291, 292, 296, 298, 301, 316, 318, 321, 324, 327, 329, 332, 351, 371, 380, 381, 383, 385, 386, 387, 389, 391, 394, 402, 409, 412, 415, 421, 425, 428, 432, 438, 442, 457, 460, 464, 467, 471, 474, 477, 481, 486, 493, 495, 499, 501, 505, 507, 509, 511, 513, 515, 517, 519, 521, 523, 525, 527, 529, 531, 535, 537, 541, 543, 547, 549, 553, 555, 559, 561, 565, 567, 571, 573, 575, 579, 581, 583, 585, 587, 591, 593, 595, 597, 601, 603, 605, 609, 611, 613, 615, 617, 621, 623, 625, 627, 629, 631, 647, 649, 651, 655, 657, 659, 663, 665, 675, 677, 681, 684, 686, 688, 690, 692, 694, 696, 700, 703, 707, 713};#endif#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)static const char * const yytname[] = { "$","error","$undefined.","tINVALID","tTRUE","tFALSE","tINTEGER","tFLOAT","tSTRING","tIDENTIFIER","tACCESS","tAGENT","tBREAK","tCONTINUE","tIDIV","tIDIVA","tDOMAIN","tELSE","tEQUIV","tEXTERN","tFOR","tFUNCTION","tHEADER","tHTTP","tIF","tISVALID","tMETA","tNAME","tPATH","tRETURN","tTYPEOF","tUSE","tUSER","tVAR","tWHILE","tURL","tDELETE","tIN","tLIB","tNEW","tNULL","tTHIS","tVOID","tWITH","tCASE","tCATCH","tCLASS","tCONST","tDEBUGGER","tDEFAULT","tDO","tENUM","tEXPORT","tEXTENDS","tFINALLY","tIMPORT","tPRIVATE","tPUBLIC","tSIZEOF","tSTRUCT","tSUPER","tSWITCH","tTHROW","tTRY","tEQ","tLE","tGE","tNE","tAND","tOR","tPLUSPLUS","tMINUSMINUS","tLSHIFT","tRSSHIFT","tRSZSHIFT","tADDA","tSUBA","tMULA","tDIVA","tANDA","tORA","tXORA","tREMA","tLSHIFTA","tRSSHIFTA","tRSZSHIFTA","';'","'('","')'","','","'{'","'}'","'='","'?'","':'","'|'","'^'","'&'","'<'","'>'","'+'","'-'","'*'","'/'","'%'","'~'","'!'","'#'","'.'","CompilationUnit","Pragmas","Pragma","PragmaDeclaration","ExternalCompilationUnitPragma","AccessControlPragma","AccessControlSpecifier","MetaPragma","MetaSpecifier","MetaName","MetaHttpEquiv","MetaUserAgent","MetaBody","MetaPropertyName","MetaContent","MetaScheme","FunctionDeclarations","FunctionDeclaration","ExternOpt","FormalParameterListOpt","SemicolonOpt","FormalParameterList","Statement","Block","StatementListOpt","StatementList","VariableStatement","VariableDeclarationList","VariableDeclaration","VariableInitializedOpt","IfStatement","IterationStatement","ForStatement","ReturnStatement","ExpressionOpt","Expression","AssignmentExpression","ConditionalExpression","LogicalORExpression","LogicalANDExpression","BitwiseORExpression","BitwiseXORExpression","BitwiseANDExpression","EqualityExpression","RelationalExpression","ShiftExpression","AdditiveExpression","MultiplicativeExpression","UnaryExpression","PostfixExpression","CallExpression","PrimaryExpression","Arguments","ArgumentList", NULL};#endifstatic const short yyr1[] = { 0, 109, 109, 109, 110, 110, 111, 111, 112, 112, 112, 113, 114, 115, 115, 115, 116, 117, 117, 117, 118, 119, 120, 121, 121, 122, 123, 124, 125, 125, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 138, 138, 139, 139, 140, 140, 141, 141, 142, 143, 143, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151, 151, 152, 152, 152, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 161, 161, 162, 162};static const short yyr2[] = { 0, 2, 1, 1, 1, 2, 3, 1, 1, 1, 1, 3, 2, 2, 2, 4, 2, 1, 1, 1, 2, 3, 3, 2, 3, 1, 1, 1, 1, 2, 8, 0, 1, 0, 1, 0, 1, 1, 3, 1, 1, 1, 2, 1, 1, 2, 2, 1, 3, 1, 0, 1, 1, 2, 3, 2, 1, 3, 2, 0, 2, 7, 5, 5, 1, 9, 10, 3, 0, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 4, 4, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 1, 3};static const short yydefact[] = { 0, 7, 32, 0, 0, 4, 2, 28, 0, 0, 0, 0, 0, 8, 9, 10, 7, 5, 1, 29, 0, 0, 0, 12, 0, 0, 0, 16, 17, 18, 19, 0, 6, 0, 13, 14, 0, 25, 20, 0, 0, 11, 33, 0, 21, 26, 23, 22, 37, 0, 34, 15, 27, 24, 0, 0, 49, 0, 35, 38, 135, 136, 137, 138, 139, 140, 134, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 52, 39, 0, 0, 40, 43, 44, 64, 47, 0, 70, 72, 86, 88, 90, 92, 94,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -