📄 y_tab.c
字号:
#line 164 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = AND;
#line 470 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 23:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 170 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = OR;
#line 487 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 24:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 175 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(1 - 1);
#line 500 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 25:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 178 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = LT;
#line 517 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 26:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 184 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = MT;
#line 534 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 27:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 190 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = LE;
#line 551 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 28:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 196 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = ME;
#line 568 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 29:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 202 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = EQ;
#line 585 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 30:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 208 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = NE;
#line 602 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 31:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 213 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(1 - 1);
#line 615 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 32:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 216 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = PLUS;
#line 632 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 33:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 222 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = MINUS;
#line 649 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 34:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 227 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(1 - 1);
#line 662 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 35:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 230 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = TIMES;
#line 679 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 36:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 236 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(1 - 3);
yyval->child[1] = yyattribute(3 - 3);
yyval->attr.op = OVER;
#line 696 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 37:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 241 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(1 - 1);
#line 709 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 38:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 244 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(2 - 3);
#line 722 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 39:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 246 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(IK);
yyval->attr.val.i = atoi(lookAhead);
yyval->type = Integer;
#line 738 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 40:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 251 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(FK);
yyval->attr.val.f = atof(lookAhead);
yyval->type = Float;
#line 754 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 41:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 256 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(CK);
yyval->attr.val.c = lookAhead[1];
yyval->type = Char;
#line 771 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 42:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 261 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = yyattribute(1 - 1);
#line 784 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 43:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[3];
yyinitdebug(yya, 3);
#endif
{
#line 263 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(OpK);
yyval->child[0] = yyattribute(2 - 2);
yyval->attr.op = NOT;
#line 800 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 44:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 267 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = NULL;
#line 813 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 45:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 269 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(IdK);
yyval->attr.name =
copyString(tokenString);
yyval->lineno = lineno;
yyval->attr.isDecl = FALSE;
#line 831 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 46:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 275 "F:\\\261\340\322\353\\CCompiler\\parser.y"
savedName=
copyString(tokenString);
savedLineNo = lineno;
#line 847 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
case 47:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[6];
yyinitdebug(yya, 6);
#endif
{
#line 280 "F:\\\261\340\322\353\\CCompiler\\parser.y"
yyval = newExpNode(ArrK);
yyval->attr.name = savedName;
yyval->child[0] = yyattribute(4 - 5);
yyval->lineno = savedLineNo;
yyval->attr.isDecl = FALSE;
#line 865 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
}
}
break;
default:
yyassert(0);
break;
}
}
#line 288 "F:\\\261\340\322\353\\CCompiler\\parser.y"
void yyerror(char * message)
{ fprintf(listing,"Syntax error at line %d: %s\n",lineno,message);
fprintf(listing,"Current token: ");
printToken(yychar,tokenString);
Error = TRUE;
// return 0;
}
/* yylex calls getToken to make Yacc/Bison output
* compatible with ealier versions of the TINY scanner
*/
#ifdef YYPROTOTYPE
int YYCDECL yygettoken(void)
#else
int YYCDECL yygettoken()
#endif
{
return yylex();
}
static int yylex(void)
{ return getToken(); }
TreeNode * parse(void)
{ yyparse();
return savedTree;
}
#line 906 "F:\\\261\340\322\353\\CCompiler\\y_tab.c"
#ifdef YYDEBUG
YYCONST yysymbol_t YYNEARFAR YYBASED_CODE YYDCDECL yysymbol[] = {
{ "$end", 0 },
{ "error", 256 },
{ "IF", 257 },
{ "ELSE", 258 },
{ "WHILE", 259 },
{ "MAIN", 261 },
{ "BREAK", 265 },
{ "RINT", 266 },
{ "RFLOAT", 267 },
{ "RCHAR", 268 },
{ "ID", 269 },
{ "FLOAT", 270 },
{ "INT", 271 },
{ "CHAR", 272 },
{ "ASSIGN", 273 },
{ "EQ", 274 },
{ "NE", 275 },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -