编译原理-交互实现递归下降法-使用web实现
课本:清华大学《编译原理》,页面使用了bootstrap框架的样式
这是之前写的课程项目,我记得有几个bug没修,好像是清空输入框的bug,不过基本能用
下面是界面以及语法成功与失败的效果展示图
部分代码展示
function F_prime() {
if (token[lookahead] === '*') { //若待分析字符匹配‘*’
print("F' → *F'", isSuccess); //打印当前步骤信息
stack[--stack_top] = 'F'; //将产生式右→左压栈
stack[++stack_top] = '\'';
stack[++stack_top] = '*';
step++; //分析步数+1
print("\"*\"匹配", isSuccess); //打印当前步骤信息
stack[stack_top--] = null; //出栈
step++; //分析步数+1
lookahead++; //因为匹配到一个终结符,所以分析下一个字符
F_prime();
} else {
print("F' → ε", isSuccess); //打印当前步骤信息
stack[stack_top--] = null; //出栈
stack[stack_top--] = null;
step++; //分析步数+1
}
}
完整代码
完整代码在gitee仓库https://gitee.com/yaoyaole929/csdn/tree/main/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86