# 第14章 案例与练习
# 一、前言
综合上一章的知识,用完整的案例串联语言能力,并通过练习巩固扩展思路。
# 二、目标
- 能组合算术、比较、分支与打印完成任务
- 会修改示例并使用调试开关观察变化
- 能据此设计自己的小练习并验证
# 三、设计
核心流程图:
架构交互图:
# 四、实现
目录树(关注项):
examples/hello.lxg
examples/arithmetic.lxg
examples/conditions.lxg
examples/error_undeclared.lxg
examples/error_type_mismatch.lxg
命令:
# 运行案例
java -jar target/my-language-0.1.0-SNAPSHOT.jar examples/arithmetic.lxg
java -jar target/my-language-0.1.0-SNAPSHOT.jar examples/conditions.lxg
# 调试开关
java -jar target/my-language-0.1.0-SNAPSHOT.jar examples/conditions.lxg --dump-ast
代码对照:算术样例
let a = 10;
let b = 3;
print a + b;
print a - b;
print a * b;
print a / b;
print (a + b) * (a - b);
代码对照:条件样例
let a = 5;
let b = 10;
if (a < b) { print "a<b"; } else { print "no"; }
if (a == 5) { print true; } else { print false; }
# 五、测试
- 端到端:新增/调整用例,输出应与手算一致
- 语义:错误样例应产生带位置的诊断信息
# 六、总结
- 案例是“知识归一”的最好方式;建议先改小处(字面量/顺序),再到结构(分支/循环),最后到语义与生成扩展