编译课程设计报告书(3)

2018-12-05 13:26

if(!strcmp (StrToken,word[i])) {

return i+1; } }

return 0; }

int Op(char c) {

switch(c) {

case '=':return 8;break; case '+':return 9;break; case '*':return 10;break; case ',':return 12;break; case '(':return 13;break; case ')':return 14;break; default :return 0;break; } }

void Concat(char *StrToken,char in)//connat a signal to a string {

char *temp=new char[1]; temp[0]=in;

strcat(StrToken,temp); }

void main() {

int i;

cout<<\ cin.getline(String,50); int length=strlen(String);

cout<<\:\ cout<<\characterisitc\

while(IsBc(String[point])) {

point++; }

i=point; do {

while(IsBc(String[i])) {

10

i++; }

point=i;

Readc(ch,String[i]); char *te=new char[2]; te[0]=ch;

strcpy(StrToken,te); StrToken[1]='\\0';

if (IsLetter(String[i]))//the first is letter {

int j=i+1;

while((IsLetter(String[j])||IsDigit(String[j]))&&j

Concat(StrToken,String[j]); StrToken[j-i+1]='\\0'; j++; }

if(KeyWord(StrToken)) {

cout<<\

\ } else {

Node *node=(Node *)new Node; node->Set(StrToken,6,ip); Iden->Push(node); cout<<\

\ } i=j;

}// end letter

else if(IsDigit(String[i]))// the first is digit {

int j=i+1;

while(IsDigit(String[j])&& j

Concat(StrToken,String[j]);//concat to strToken StrToken[j-i+1]='\\0'; j++; }

Node *node=(Node *)new Node; node->Set(StrToken,7,cp); Const->Push(node);

11

cout<<\\>\ i=j;

}//end digit

else if(Op(String[i]))// the first is ope {

switch (Op(String[i])) {

case 8: case 9: case 12: case 13:

case 14:cout<<\

\ case 10: {

if(String[i+1]=='*') {

i++;

Concat(StrToken,'*'); cout<<\

\ } else

cout<<\

\ } break; } i++; }// end op else //other { i++;

cout<<\无此种单词符号。>\ }

}while(String[i]!='#');

cout<<\

cout<<\ Iden->Disp();

cout<<\ cout<<\ Const->Disp();

cout<<\}

12

(3)运行结果

13

2.算符优先分析程序设计 (1)流程图

开始 输出优先关系表 输入字符串 ‘#’压栈 当前字符为Y 栈中为N ‘#’ ? “#N#” 不是句子 N Y 栈顶终结符与当前字出栈 符比较 N 是句子 大于? Y 结束 规约 入栈 下一个字符

14


编译课程设计报告书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:C14020 证券投资研究的直接目标是寻找预期差 90分

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: