学习使用的PL/0编译器增强版PL/0plusplusCompiler(五)使用<>代替#不等于号
来源:互联网 发布:wince6.0导航软件 编辑:程序博客网 时间:2024/06/05 15:28
思路就是在检测小于号时检测一下如果后边为大于号就把当前的token组合识别为不等于号。
/*词法分析,获取一个符号*/int getsym(){ int i,j,k; while( ch==' '||ch==10||ch==9) { getchdo; } if(ch>='a'&&ch<='z') { k=0; do{ if(k<al) { a[k]=ch; k++; } getchdo; }while(ch>='a'&&ch<='z'||ch>='0'&&ch<='9'); a[k]=0; strcpy(id,a); i=0; j=norw-1; do{ k=(i+j)/2; if(strcmp(id,word[k])<=0) { j=k-1; } if(strcmp(id,word[k])>=0) { i=k+1; } }while(i<=j); if(i-1>j) { sym=wsym[k]; } else { sym=ident; } } else { if(ch>='0'&&ch<='9') { k=0; num=0; sym=number; do{ num=10*num+ch-'0'; k++; getchdo; }while(ch>='0'&&ch<='9'); /*获取数字的值*/ k--; if(k>nmax) { error(30); } } else { if(ch==':') /*检测赋值符号*/ { getchdo; if(ch=='=') { sym=becomes; getchdo; } else { sym=nul; /*不能识别的符号*/ } } else { if(ch=='<') /*检测小于或小于等于符号*/ { getchdo; if(ch=='=') { sym=leq; getchdo; } else { if(ch=='>'){ /*检测不等于号*/ sym=neq; getchdo; }else{ sym=lss; } } } else { if(ch=='>') /*检测大于或大于等于符号*/ { getchdo; if(ch=='=') { sym=geq; getchdo; } else { sym=gtr; } } else { sym=ssym[ch];/* 当符号不满足上述条件时,全部按照单字符号处理*/ //getchdo; //richard if(sym!=period) { getchdo; } //end richard } } } } } return 0;}
0 0
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(五)使用<>代替#不等于号
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(一)源码及使用
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(二)加入支持命令行参数
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(三)加入“man” 功能
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(六)扩展if-then-else
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(七)扩展repeat-until
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(四)使用gdb调试PL0词法分析
- pl/0编译器
- oracle使用五(PL/SQL)
- PL/0编译器设计扩展
- PL/0编译器---增加注释
- PL-SQL的使用
- PL/SQL的使用
- PL/SQL使用技巧(PL/SQL 7.0.0以上)
- 使用instantclient代替oarcle的client以安装使用PL/SQL Developer
- PL/SQL学习五
- 编译原理实验:写一个PL/0的编译器
- 使用PL/SQL Developer的Event Monitor代替Output做调试。
- 简易 的QQ APP登录以及注册页面的实现
- block
- SwipeRefreshLayout设置进度条的高度
- CSS学习(十)——列表与导航
- WinForm DataGridView 鼠标点击选中整行
- 学习使用的PL/0编译器增强版PL/0plusplusCompiler(五)使用<>代替#不等于号
- 根据经纬度算出geohash
- Android 录像保存后在文件管理或相册里不显示问题
- jQuery.html() .text()和.val() 的用法
- 亚像素图像图像平移
- STL源码剖析笔记
- R求一个时间前N天的时间点
- 很多控件的消息处理
- java基础——抽象类