资源简介
编译原理课设---表达式的LR翻译器,中间代码为四元式,包括文档和代码
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
//and or not true false( ) i rop #
int action[18][10]={ { 0 0 4 5 6 7 0 8 0 0}//0
{ 9 0 0 0 0 0 -2 0 0 100}//1
{-2 10 0 0 0 0 -2 0 0 -2}//2
{-4 -4 0 0 0 0 -4 0 0 -4}//3
{ 0 0 4 5 6 7 0 8 0 0}//4
{-7 -7 0 0 0 0 -7 0 0 -7}//5
{-8 -8 0 0 0 0 -8 0 0 -8}//6
{ 0 0 4 5 6 7 0 8 0 0}//7
{ 0 0 0 0 0 0 0 0 13 0}//8
{ 0 0 4 5 6 7 0 8 0 0}//9
{ 0 0 4 5 6 7 0 8 0 0}//10
{-5 -5 0 0 0 0 -5 0 0 -5}//11
{ 9 0 0 0 0 0 16 0 0 0}//12
{ 0 0 0 0 0 0 0 17 0 0}//13
{-1 10 0 0 0 0 -1 0 0 -1}//14
{-3 -3 0 0 0 0 -3 0 0 -3}//15
{-6 -6 0 0 0 0 -6 0 0 -6}//16
{-9 -9 0 0 0 0 -9 0 0 -9}};//17
//B T F
int gotol[18][3]={ {1 2 3}//0
{0 0 0}//1
{0 0 0}//2
{0 0 0}//3
{0 0 11}//4
{0 0 0}//5
{0 0 0}//6
{12 2 3}//7
{0 0 0}//8
{0 14 3}//9
{0 0 15}//10
{0 0 0}//11
{0 0 0}//12
{0 0 0}//13
{0 0 0}//14
{0 0 0}//15
{0 0 0}//16
{0 0 0}};//17
//终结符集合
string endls[10]={“and““or““not““true““false“ “(““)“ “i““rop““#“ };
//非终结符集合
string noends[3]={“B““T““F“};
//产生式集合
string products[10]={“B““B and T“ “T““T or F““F““not F““( B )““true“ “false““i rop i“};
//栈类
class statestack
{
private:
int *base;//栈底指针
int *top;//栈顶指针
int size;//栈内元素个数
int stacksize;//栈的大小
public:
statestack()
{
size=0;
stacksize=20;
base=new int[stacksize];;
top=base;
}
int getTop()//获取栈顶的元素。
{
if(base==top)
{
return -1;
}
else
{
return *(top-1);
}
}
bool statePush(int elem)//元素入栈
{
++size;
(*top)=elem;
++top;
return true;
}
void statePop(int time)//元素出栈
{
for(int i=0;i {
--top;
--size;
}
}
void printState()//输出栈内的所有元素
{
string str=“ “;
int *pre;
for(pre=base;pre {
if(*pre>9)
{
char ch1=(*pre/10)+48;
char ch2=(*pre%10)+48;
str+=ch1;
str+=ch2;
}
else
{
char ch=*pre+48;
str+=ch;
}
}
cout<se::left)< }
};
class symbolstack
{
private
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10608 2014-01-13 11:40 BoolAnalyze.cpp
文件 720913 2014-01-13 11:49 李帅奇.docx
文件 32053 2014-01-13 11:43 源代码.docx
文件 114176 2014-01-06 11:53 绘图1.vsd
文件 116736 2014-01-05 16:04 绘图4.vsd
- 上一篇:stc-isp-15xx-v6.69
- 下一篇:中国轮廓图
相关资源
- 空间坐标系之间的旋转表达方式的相
- 基于LR方法的WHILE循环语句的编译系统
- 目标代码生成 四元式
- DO-WHILE循环语句的翻译程序设计(简单
- IF-ELSE条件语句的翻译程序设计LL1法、
- STM32F1单片机+四元数欧拉角姿态解算
- 中间代码生成四元式设计
- 论文研究-基于四元数ESPRIT的极化敏感
- Mahony和DCM理论
- 利用dmp读取mpu6050四元数和pitch,roll,
- 匿名姿态解算算法带注释
- IF-ELSE条件语句的翻译程序设计递归下
- 《Quaternions》四元数,作者Ken Shoemak
- 基于四元数解算陀螺仪姿态角算法的
- 四元数与三维旋转,Krasjet
- MPU9250九轴数据融合解算四元数
- 四轴飞控源码 四元素算法 直接可用
- 互补滤波器四元数姿态解算算法
- mpu6050 姿态解算 四元数 欧拉角
- Quaternions for Computer Graphics by John Vinc
- LR分析表-语法树-四元式
- FOR循环语句的翻译程序设计(LL法、输
- 编译原理 词法、语法、语义分析生成
- Qt Creator+opengl实现四元数鼠标控制轨迹
- 旋转矩阵到四元数源代码新
- MPU9250九轴数据融合解算四元数第二版
- 编译原理 四元式中间代码
- 移植到KEA上mpu6050的dmp库
- IF-ELSE条件语句的翻译程序设计简单优
- IF-ELSE条件语句的翻译程序设计递归下
评论
共有 条评论