#include <yacc.h>
#define YYPARSEFAST
#line 7 "D:\\Document\\complier\\YACC\\TINY.Y"
#define YYPARSER /* distinguishes Yacc output from other code files */
#include "globals.h"
#include "util.h"
#include "scan.h"
#include "parse.h"
#define YYSTYPE TreeNode *
static char * savedName; /* for use in assignments */
static int savedLineNo; /* ditto */
static TreeNode * savedTree; /* stores syntax tree for later return */
#line 20 "D:\\Document\\complier\\YACC\\TINY.c"
/* repeated because of possible precompiled header */
#include <yacc.h>
#define YYPARSEFAST
#include "TINY.h"
#ifndef YYSTYPE
#define YYSTYPE int
#endif
#ifndef YYSTACK_SIZE
#define YYSTACK_SIZE 100
#endif
/* (state) stack */
#if (YYSTACK_SIZE) != 0
static yystack_t YYNEAR yystack[(YYSTACK_SIZE)];
yystack_t YYFAR *YYNEAR YYDCDECL yysstackptr = yystack;
yystack_t YYFAR *YYNEAR YYDCDECL yystackptr = yystack;
#else
yystack_t YYFAR *YYNEAR YYDCDECL yysstackptr = NULL;
yystack_t YYFAR *YYNEAR YYDCDECL yystackptr = NULL;
#endif
/* attribute stack */
#if (YYSTACK_SIZE) != 0
static YYSTYPE YYNEAR yyattributestack[(YYSTACK_SIZE)];
#ifdef YYPROTOTYPE
void YYFAR *YYNEAR YYDCDECL yysattributestackptr = yyattributestack;
void YYFAR *YYNEAR YYDCDECL yyattributestackptr = yyattributestack;
#else
char YYFAR *YYNEAR YYDCDECL yysattributestackptr = (char YYFAR *) yyattributestack;
char YYFAR *YYNEAR YYDCDECL yyattributestackptr = (char YYFAR *) yyattributestack;
#endif
#else
#ifdef YYPROTOTYPE
void YYFAR *YYNEAR YYDCDECL yysattributestackptr = NULL;
void YYFAR *YYNEAR YYDCDECL yyattributestackptr = NULL;
#else
char YYFAR *YYNEAR YYDCDECL yysattributestackptr = NULL;
char YYFAR *YYNEAR YYDCDECL yyattributestackptr = NULL;
#endif
#endif
int YYNEAR YYDCDECL yysstack_size = (YYSTACK_SIZE);
int YYNEAR YYDCDECL yystack_size = (YYSTACK_SIZE);
/* attributes */
YYSTYPE YYNEAR yyval;
YYSTYPE YYNEAR yylval;
#ifdef YYPROTOTYPE
void YYFAR *YYNEAR YYDCDECL yyvalptr = &yyval;
void YYFAR *YYNEAR YYDCDECL yylvalptr = &yylval;
#else
char YYFAR *YYNEAR YYDCDECL yyvalptr = (char *) &yyval;
char YYFAR *YYNEAR YYDCDECL yylvalptr = (char *) &yylval;
#endif
size_t YYNEAR YYDCDECL yyattribute_size = sizeof(YYSTYPE);
/* yyattribute */
#ifdef YYDEBUG
#ifdef YYPROTOTYPE
static YYSTYPE YYFAR *yyattribute1(int index)
#else
static YYSTYPE YYFAR *yyattribute1(index)
int index;
#endif
{
YYSTYPE YYFAR *p = &((YYSTYPE YYFAR *) yyattributestackptr)[yytop + index];
return p;
}
#define yyattribute(index) (*yyattribute1(index))
#else
#define yyattribute(index) (((YYSTYPE YYFAR *) yyattributestackptr)[yytop + (index)])
#endif
#ifdef YYDEBUG
#ifdef YYPROTOTYPE
static void yyinitdebug(YYSTYPE YYFAR **p, int count)
#else
static void yyinitdebug(p, count)
YYSTYPE YYFAR **p;
int count;
#endif
{
int i;
yyassert(p != NULL);
yyassert(count >= 1);
for (i = 0; i < count; i++) {
p[i] = &((YYSTYPE YYFAR *) yyattributestackptr)[yytop + i - (count - 1)];
}
}
#endif
#ifdef YYPROTOTYPE
void YYCDECL yyparseaction(int action)
#else
void YYCDECL yyparseaction(action)
int action;
#endif
{
switch (action) {
case 0:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 30 "D:\\Document\\complier\\YACC\\TINY.Y"
savedTree = yyattribute(1 - 1);
#line 133 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 1:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[4];
yyinitdebug(yya, 4);
#endif
{
#line 33 "D:\\Document\\complier\\YACC\\TINY.Y"
YYSTYPE t = yyattribute(1 - 3);
if (t != NULL)
{ while (t->sibling != NULL)
t = t->sibling;
t->sibling = yyattribute(3 - 3);
yyval = yyattribute(1 - 3); }
else yyval = yyattribute(3 - 3);
#line 153 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 2:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 41 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 166 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 3:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 43 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 179 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 4:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 44 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 192 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 5:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 45 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 205 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 6:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 46 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 218 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 7:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 47 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = yyattribute(1 - 1);
#line 231 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 8:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 48 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = NULL;
#line 244 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 9:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[6];
yyinitdebug(yya, 6);
#endif
{
#line 51 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = newStmtNode(IfK);
yyval->child[0] = yyattribute(2 - 5);
yyval->child[1] = yyattribute(4 - 5);
#line 260 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 10:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[8];
yyinitdebug(yya, 8);
#endif
{
#line 56 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = newStmtNode(IfK);
yyval->child[0] = yyattribute(2 - 7);
yyval->child[1] = yyattribute(4 - 7);
yyval->child[2] = yyattribute(6 - 7);
#line 277 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 11:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[5];
yyinitdebug(yya, 5);
#endif
{
#line 63 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = newStmtNode(RepeatK);
yyval->child[0] = yyattribute(2 - 4);
yyval->child[1] = yyattribute(4 - 4);
#line 293 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 12:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[2];
yyinitdebug(yya, 2);
#endif
{
#line 68 "D:\\Document\\complier\\YACC\\TINY.Y"
savedName = copyString(tokenString);
savedLineNo = lineno;
#line 307 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 13:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[5];
yyinitdebug(yya, 5);
#endif
{
#line 71 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = newStmtNode(AssignK);
yyval->child[0] = yyattribute(4 - 4);
yyval->attr.name = savedName;
yyval->lineno = savedLineNo;
#line 324 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
break;
case 14:
{
#ifdef YYDEBUG
YYSTYPE YYFAR *yya[3];
yyinitdebug(yya, 3);
#endif
{
#line 78 "D:\\Document\\complier\\YACC\\TINY.Y"
yyval = newStmtNode(ReadK);
yyval->attr.name =
copyString(tokenString);
#line 340 "D:\\Document\\complier\\YACC\\TINY.c"
}
}
br
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
93317432CompilerDemo.rar (60个子文件)
CompilerDemo
SAMPLE.TNY 263B
CODE.C 3KB
CompilerDemo.dsw 547B
YACC
TINY.Y 5KB
TINY.c 19KB
TINY.h 446B
GLOBALS.H 3KB
TINY.v 8KB
MAIN2.o 9KB
SCAN.C 6KB
PARSE.C 5KB
SCAN.o 4KB
CODE.H 2KB
SYMTAB.H 959B
TM.C 16KB
CompilerDemo.dsp 5KB
CompilerDemo.opt 48KB
SAMPLE.TM 920B
Debug
vc60.pdb 52KB
CODE.obj 7KB
CompilerDemo.pch 210KB
CompilerDemo.pdb 521KB
PARSE.obj 13KB
SYMTAB.obj 6KB
SCAN.obj 10KB
vc60.idb 41KB
CGEN.obj 18KB
UTIL.obj 13KB
CompilerDemo.ilk 228KB
CompilerDemo.exe 188KB
ANALYZE.obj 8KB
MAIN1.obj 5KB
UTIL.C 5KB
ANALYZE.H 652B
PARSE.H 484B
TINY.EXE 40KB
TinyC.zip 54KB
CompilerDemo.ncb 57KB
Makefile.win 1KB
README.DOS 2KB
GLOBALS.H 3KB
SYMTAB.C 3KB
MAIN1.C 2KB
MAIN2.C 1KB
CompilerDemo.plg 1010B
SCAN.H 659B
gmon.out 4KB
MAKEFILE 1KB
TM.EXE 14KB
PARSE.o 4KB
MAIN.C 2KB
LEX
TINY.c 11KB
TINY.h 110B
TINY.L 2KB
Lex - A Lexical Analyzer Generator.htm 56KB
UTIL.H 1KB
CGEN.H 679B
UTIL.o 4KB
CGEN.C 7KB
ANALYZE.C 4KB
共 60 条
- 1
资源评论
phubing
- 粉丝: 607
- 资源: 850
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功