1.介绍
此项目为本学期开设的编译原理课程课设,采用递归下降法,主要实现词法分析,语法分析,语义分析,初学者代码简陋。
前端界面根据记事本项目修改而来。
1.功能
- 基本数据类型num , string bool
- 内置函数 readNum(), readString(), readBool(),print()
- 实现了的运算 + - * / ** % > < >= <= != ==
- 实现if else ,单层while
- 实现了代码的读取与保存
2.不足
- 不支持注释功能
- 不支持多层if else
- 不支持while语句的嵌套(没整函数的作用域)
2.项目目录
mainForm为主启动类。
3.简单演示
1.基本运算
num a = 1,b = 0;
print(a + b);
print(a - b);
print(a * b);
num c = 2, d = 3;
print("乘方:" + c ** d);
print("取余:" + c % d);
2.if语句
num a = 100, b = 101;
if (a > b) {
print("a大");
} else {
print("b大");
}
3.基本函数
num a = 0;
a = readInt();
print("运行结果" + a);
4.while语句
num a = 0,result = 0;
while(a < 10) {
a = a + 1;
result = result + a;
}
print("result:" + result);
4.总结
初学者代码简陋,仅为课设需要,很多功能任务仍未实现,收获颇多,深知学习之路任重而道远。
源码地址GitHub - Plutous/KaiCompile: 编译原理课设,基于Java实现,实现词法分析语法分析语义分析