typedef long * yy;
#define yyu (-2147483647L)
static yy yynull;
extern yy yyh;
extern yy yyhx;
static yyErr(n,l)
{
yyAbort(n,"cpp", l);
}
extern yy yyglov_FirstWithPos;
yy yyglov_InsideMODULELIST = (yy) yyu;
yyeq_FLAG(t1, t2) yy t1, t2;
{
switch(t1[0]) {
case 1: return (t2[0] == 1)
;
case 2: return (t2[0] == 2)
;
}
}
yyPrint_FLAG(t) yy t;
{
switch(t[0]) {
case 1:
yyTerm("yes");
yyNoArgs();
break;
case 2:
yyTerm("no");
yyNoArgs();
break;
}
}
yybroadcast_FLAG(t,In,Out,Handler)
yy t, In, *Out; int (*Handler) ();
{
yy A, B;
A = In;
if (! Handler(yybroadcast_FLAG, t, In, Out)) {
switch(t[0]) {
case 1:
*Out = A;
break;
case 2:
*Out = A;
break;
}
}
}
yyeq_Flag(t1, t2) yy t1, t2;
{
switch(t1[0]) {
case 1: return (t2[0] == 1)
;
case 2: return (t2[0] == 2)
;
}
}
yyPrint_Flag(t) yy t;
{
switch(t[0]) {
case 1:
yyTerm("yes");
yyNoArgs();
break;
case 2:
yyTerm("no");
yyNoArgs();
break;
}
}
yybroadcast_Flag(t,In,Out,Handler)
yy t, In, *Out; int (*Handler) ();
{
yy A, B;
A = In;
if (! Handler(yybroadcast_Flag, t, In, Out)) {
switch(t[0]) {
case 1:
*Out = A;
break;
case 2:
*Out = A;
break;
}
}
}
yy yyglov_HeaderAndConstructorsEmitted = (yy) yyu;
yy yyglov_DeclList = (yy) yyu;
yy yyglov_CurMatchNumber = (yy) yyu;
yy yyglov_CurRuleNumber = (yy) yyu;
yy yyglov_CurTmpList = (yy) yyu;
yy yyglov_ListOfLocalVars = (yy) yyu;
cppwalker(yyin_1, yyin_2)
yy yyin_1;
yy yyin_2;
{
{
yy yyb;
yy yyv_L;
yy yy_0_1;
yy yyv_M;
yy yy_0_2;
yy yy_1;
yy yy_2_1;
yy yy_3;
yy yy_4_1;
yy yy_5;
yy yyv_Name;
yy yy_7_1;
yy yy_8_1;
yy yy_8_2;
yy yy_9;
yy yy_10;
yy yy_11_1;
yy yy_12_1;
yy_0_1 = yyin_1;
yy_0_2 = yyin_2;
yyv_L = yy_0_1;
yyv_M = yy_0_2;
yyb = yyh;
yyh += 4; if (yyh > yyhx) yyExtend();
yy_1 = yyb + 0;
yy_1[0] = 2;
yyglov_InsideMODULELIST = yy_1;
yy_2_1 = yyv_L;
ProcessDomains_DECLLIST(yy_2_1);
yy_3 = yyb + 1;
yy_3[0] = 1;
yyglov_InsideMODULELIST = yy_3;
yy_4_1 = yyv_M;
ProcessDomains_MODULELIST(yy_4_1);
yy_5 = yyb + 2;
yy_5[0] = 2;
yyglov_InsideMODULELIST = yy_5;
InitVisits();
get_basename(&yy_7_1);
yyv_Name = yy_7_1;
yy_8_1 = yyv_Name;
yy_8_2 = ((yy)"cpp");
OpenOutputWithExtension(yy_8_1, yy_8_2);
yy_9 = yyb + 3;
yy_9[0] = 2;
yyglov_HeaderAndConstructorsEmitted = yy_9;
yy_10 = yyv_L;
yyglov_DeclList = yy_10;
yy_11_1 = yyv_L;
EmitDomainForwardDecls(yy_11_1);
yy_12_1 = yyv_L;
VisitDECLLIST(yy_12_1);
EmitFinalText();
CloseOutput();
return;
}
}
HeaderAndConstructors()
{
{
yy yyb;
yy yy_1_1_1;
yy yyv_L;
yy yy_1_1_2;
yy yy_1_1_3_1;
yy yy_1_1_4;
{
yy yysb = yyb;
yyb = yyh;
yyh += 1; if (yyh > yyhx) yyExtend();
yy_1_1_1 = yyglov_HeaderAndConstructorsEmitted;
if (yy_1_1_1 == (yy) yyu) yyErr(1,52);
if (yy_1_1_1[0] != 2) goto yyfl_4_1_1_1;
yy_1_1_2 = yyglov_DeclList;
if (yy_1_1_2 == (yy) yyu) yyErr(1,53);
yyv_L = yy_1_1_2;
yy_1_1_3_1 = yyv_L;
CppFileHeader(yy_1_1_3_1);
yy_1_1_4 = yyb + 0;
yy_1_1_4[0] = 1;
yyglov_HeaderAndConstructorsEmitted = yy_1_1_4;
goto yysl_4_1_1;
yyfl_4_1_1_1 : ;
goto yysl_4_1_1;
yysl_4_1_1 : ;
yyb = yysb;
}
return;
}
}
ProcessDomains_DECLLIST(yyin_1)
yy yyin_1;
{
{
yy yyb;
yy yy_0_1;
yy yyv_H;
yy yy_0_1_1;
yy yyv_T;
yy yy_0_1_2;
yy yy_1_1;
yy yy_2_1;
yy_0_1 = yyin_1;
if (yy_0_1[0] != 1) goto yyfl_8_1;
yy_0_1_1 = ((yy)yy_0_1[1]);
yy_0_1_2 = ((yy)yy_0_1[2]);
yyv_H = yy_0_1_1;
yyv_T = yy_0_1_2;
yy_1_1 = yyv_H;
ProcessDomains_DECL(yy_1_1);
yy_2_1 = yyv_T;
ProcessDomains_DECLLIST(yy_2_1);
return;
yyfl_8_1 : ;
}
{
yy yyb;
yy yy_0_1;
yy_0_1 = yyin_1;
if (yy_0_1[0] != 2) goto yyfl_8_2;
return;
yyfl_8_2 : ;
}
yyErr(2,73);
}
ProcessDomains_DECL(yyin_1)
yy yyin_1;
{
{
yy yyb;
yy yy_0_1;
yy yyv_Def;
yy yy_0_1_1;
yy yyv_Start;
yy yy_0_1_2;
yy yyv_Stop;
yy yy_0_1_3;
yy yyv_Pos;
yy yy_0_1_4;
yy yy_1_1;
yy_0_1 = yyin_1;
if (yy_0_1[0] != 4) goto yyfl_9_1;
yy_0_1_1 = ((yy)yy_0_1[1]);
yy_0_1_2 = ((yy)yy_0_1[2]);
yy_0_1_3 = ((yy)yy_0_1[3]);
yy_0_1_4 = ((yy)yy_0_1[4]);
yyv_Def = yy_0_1_1;
yyv_Start = yy_0_1_2;
yyv_Stop = yy_0_1_3;
yyv_Pos = yy_0_1_4;
yy_1_1 = yyv_Def;
DeclareDomain(yy_1_1);
return;
yyfl_9_1 : ;
}
{
yy yyb;
yy yy_0_1;
yy_0_1 = yyin_1;
return;
yyfl_9_2 : ;
}
yyErr(2,83);
}
DeclareDomain(yyin_1)
yy yyin_1;
{
{
yy yyb;
yy yyv_D;
yy yy_0_1;
yy yy_0_1_1;
yy yyv_Id;
yy yy_0_1_1_1;
yy yyv_FunctorDefs;
yy yy_0_1_1_2;
yy yyv_Pos;
yy yy_0_1_1_3;
yy yy_1_1_1_1;
yy yyv_Meaning;
yy yy_1_1_1_2;
yy yy_1_1_2_1_1;
yy yy_1_1_2_1_2_1;
yy yy_1_1_2_1_2_2;
yy yy_1_1_2_1_2_3;
yy yy_1_1_2_1_2_4;
yy yy_1_1_2_2_1;
yy yyv_WithPos;
yy yy_1_1_2_2_1_1;
yy yy_1_1_2_2_2_1;
yy yy_1_1_2_2_2_2;
yy yy_1_1_2_2_2_3;
yy yy_1_1_2_2_2_4;
yy yy_2_1;
yy yy_2_2;
yy yy_2_2_1;
yy yy_3_1;
yy yy_3_2;
yy_0_1 = yyin_1;
yy_0_1_1 = yy_0_1;
yyv_D = yy_0_1;
if (yy_0_1_1[0] != 1) goto yyfl_10_1;
yy_0_1_1_1 = ((yy)yy_0_1_1[1]);
yy_0_1_1_2 = ((yy)yy_0_1_1[2]);
yy_0_1_1_3 = ((yy)yy_0_1_1[3]);
yyv_Id = yy_0_1_1_1;
yyv_FunctorDefs = yy_0_1_1_2;
yyv_Pos = yy_0_1_1_3;
yyb = yyh;
yyh += 2; if (yyh > yyhx) yyExtend();
{
yy yysb = yyb;
yy_1_1_1_1 = yyv_Id;
if (! HasMeaning(yy_1_1_1_1, &yy_1_1_1_2)) goto yyfl_10_1_1_1;
yyv_Meaning = yy_1_1_1_2;
{
yy yysb = yyb;
yy_1_1_2_1_1 = yyglov_InsideMODULELIST;
if (yy_1_1_2_1_1 == (yy) yyu) yyErr(1,93);
if (yy_1_1_2_1_1[0] != 2) goto yyfl_10_1_1_1_2_1;
yy_1_1_2_1_2_1 = ((yy)"multiple declaration of '");
yy_1_1_2_1_2_2 = yyv_Id;
yy_1_1_2_1_2_3 = ((yy)"'");
yy_1_1_2_1_2_4 = yyv_Pos;
ErrorI(yy_1_1_2_1_2_1, yy_1_1_2_1_2_2, yy_1_1_2_1_2_3, yy_1_1_2_1_2_4);
goto yysl_10_1_1_1_2;
yyfl_10_1_1_1_2_1 : ;
yy_1_1_2_2_1 = yyglov_FirstWithPos;
if (yy_1_1_2_2_1 == (yy) yyu) yyErr(1,96);
if (yy_1_1_2_2_1[0] != 2) goto yyfl_10_1_1_1_2_2;
yy_1_1_2_2_1_1 = ((yy)yy_1_1_2_2_1[1]);
yyv_WithPos = yy_1_1_2_2_1_1;
yy_1_1_2_2_2_1 = ((yy)"multiple declaration of '");
yy_1_1_2_2_2_2 = yyv_Id;
yy_1_1_2_2_2_3 = ((yy)"' in imported modules");
yy_1_1_2_2_2_4 = yyv_WithPos;
ErrorI(yy_1_1_2_2_2_1, yy_1_1_2_2_2_2, yy_1_1_2_2_2_3, yy_1_1_2_2_2_4);
goto yysl_10_1_1_1_2;
yyfl_10_1_1_1_2_2 : ;
goto yyfl_10_1_1_1;
yysl_10_1_1_1_2 : ;
yyb = yysb;
}
goto yysl_10_1_1;
yyfl_10_1_1_1 : ;
goto yysl_10_1_1;
yysl_10_1_1 : ;
yyb = yysb;
}
yy_2_1 = yyv_Id;
yy_2_2_1 = yyv_D;
yy_2_2 = yyb + 0;
yy_2_2[0] = 1;
yy_2_2[1] = ((long)yy_2_2_1);
DefMeaning(yy_2_1, yy_2_2);
yy_3_1 = yyv_FunctorDefs;
yy_3_2 = yyv_Id;
DeclareFunctors(yy_3_1, yy_3_2);
return;
yyfl_10_1 : ;
}
yyErr(2,88);
}
DeclareFunctors(yyin_1, yyin_2)
yy yyin_1;
yy yyin_2;
{
{
yy yyb;
yy yy_0_1;
yy yyv_H;
yy yy_0_1_1;
yy yyv_T;
yy yy_0_1_2;
yy yyv_Id;
yy yy_0_2;
yy yy_1_1;
yy yy_1_2;
yy yy_2_1;
yy yy_2_2;
yy_0_1 = yyin_1;
yy_0_2 = yyin_2;
if (yy_0_1[0] != 1) goto yyfl_11_1;
yy_0_1_1 = ((yy)yy_0_1[1]);
yy_0_1_2 = ((yy)yy_0_1[2]);
yyv_H = yy_0_1_1;
yyv_T = yy_0_1_2;
yyv_Id = yy_0_2;
yy_1_1 = yyv_H;
yy_1_2 = yyv_Id;
DeclareFunctor(yy_1_1, yy_1_2);
yy_2_1 = yyv_T;
yy_2_2 = yyv_Id;
DeclareFunctors(yy_2_1, yy_2_2);
return;
yyfl_11_1 : ;
}
{
yy yyb;
yy yy_0_1;
yy yy_0_2;
yy_0_1 = yyin_1;
yy_0_2 = yyin_2;
if (yy_0_1[0] != 2) goto yyfl_11_2;
return;
yyfl_11_2 : ;
}
yyErr(2,104);
}
DeclareFunctor(yyin_1, yyin_2)
yy yyin_1;
yy yyin_2;
{
{
yy yyb;
yy yyv_Def;
yy yy_0_1;
yy yy_0_1_1;
yy yyv_Functor;
yy yy_0_1_1_1;
yy yyv_Args;
yy yy_0_1_1_2;
yy yyv_Pos;
yy yy_0_1_1_3;
yy yyv_Type;
yy yy_0_2;
yy yy_1_1_1_1;
yy yyv_Meaning;
yy yy_1_1_1_2;
yy yy_1_1_2_1_1;
yy yy_1_1_2_1_2_1;
yy yy_1_1_2_1_2_2;
yy yy_1_1_2_1_2_3;
yy yy_1_1_2_1_2_4;
yy yy_1_1_2_2_1;
yy yyv_WithPos;
yy yy_1_1_2_2_1_1;
yy yy_1_1_2_2_2_1;
yy yy_1_1_2_2_2_2;
yy yy_1_1_2_2_2_3;
yy yy_1_1_2_2_2_4;
yy yy_2_1_1;
yy yy_2_1_2_1;
yy yy_3_1;
yy yy_3_2;
yy yy_3_2_1;
yy yy_3_2_2;
yy_0_1 = yyin_1;
yy_0_2 = yyin_2;
yy_0_1_1 = yy_0_1;
yyv_Def = yy_0_1;
if (yy_0_1_1[0] != 1) goto yyfl_12_1;
yy_0_1_1_1 = ((yy)yy_0_1_1[1]);
yy_0_1_1_2 = ((yy)yy_0_1_1[2]);
yy_0_1_1_3 = ((yy)yy_0_1_1[3]);
yyv_Functor = yy_0_1_1_1;
yyv_Args = yy_0_1_1_2;
yyv_Pos = yy_0_1_1_3;
yyv_Type = yy_0_2;
yyb = yyh;
yyh += 3; if (yyh > yyhx) yyExtend();
{
yy yysb = yyb;
yy_1_1_1_1 = yyv_Functor;
if (! HasMeaning(yy_1_1_1_1, &yy_1_1_1_2)) goto yyfl_12_1_1_1;
yyv_Meaning = yy_1_1_1_2;
{
yy yysb = yyb;
yy_1_1_2_1_1 = yyglov_InsideMODULELIST;
if (yy_1_1_2_1_1 == (yy) yyu) yyErr(1,115);
if (yy_
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
用YACC实现的一个小的编译工具,在Unix_Linux下运行。.gz (46个子文件)
memphis-1.6
README 2KB
doc
language.ps 219KB
usage.ps 197KB
primer.ps 292KB
LICENSE 20KB
examples
README 2KB
polish
tst 6B
README 941B
Number.t 78B
polish.m 503B
build 477B
spec.g 1KB
multi
README 229B
build 253B
treedef.m 96B
treeuse.m 479B
inter
tst 122B
tokens.l 857B
README 231B
ast.m 704B
build 354B
main.c 26B
err.c 143B
grammar.y 1KB
inter.m 1KB
subtypes
prog.m 3KB
README 451B
build 164B
trees
prog.m 1KB
README 446B
build 163B
mrts
mrts.cpp 230B
build 27B
memphis
yylex.c 42KB
auxil.c 1KB
yytab.c 54KB
errmsg.c 2KB
grammar.c 18KB
cpp.c 68KB
sig.c 18KB
build 328B
idents.c 4KB
grts.c 4KB
gen.h 437B
main.c 3KB
text.c 7KB
共 46 条
- 1
资源评论
GZM888888
- 粉丝: 147
- 资源: 2912
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功