根据《Crafting Interpreter》的用Java实现Lox语言的个人练习代码,不定时更新。代码中可能会穿插基于个人理解的注释。Java裸写前端的好处在于既暴露了前端的处理逻辑,又避免被淹没在如C++之流的语法细节中去。以后再把clox补上(大概会可接受范围内改写成cpplox)。
继续摸解释器,摸到类部分,预计明天会摸完。代码貌似有些bug,有些代码解析貌似会出锅,大概完事以后还得debug一波,或者直接copy & paste其他人的jlox代码对照哪个位置抄错了...计划把解释器完善以后加详细注释。
进展到基于抽象语法树遍历的解释生成,敲完作用域部分。
进展到Parser部分。不太适应Java的啰嗦,但大体还行。意外学习到了visitor的设计模式。