Skip to content

weijiew/lsbasi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧐 Let’s Build A Simple Interpreter.

“不闻不若闻之,闻之若不见之,见之不若知之,知之不若行之。” —— 荀子

仓库名称 lsbasi 是 Let’s Build A Simple Interpreter 首字母缩写。

原作者的 repo 。由于我想自己实现一遍,所以并没有直接 fork 。

顺便写了一个踩坑记录,主要记录学习过程中遇到问题的解决方案以及一些心得体会。

🥳 Commit

常用 emoji 含义如下:

  • ✨ 引入新功能。
  • 🐛 解决 bug 。
  • 📝 更新文档。

🎉 TODO

从算术表达式开始逐步扩展,几乎任何语言都支持算术表达式。

  • 算术表达式。

    • 不带空格的一位整数加法。
    • 支持多位整数,跳过空格功能。支持减法。
    • 多个多位整数的加减法。
    • 乘除实现。
    • 加减乘除混合后的优先级处理。
    • 支持括号。
    • 语法分析树改为抽象语法树(AST)。
    • 观察者模式。
    • 支持一元表达式。
  • Pascal 解释器:

    • 处理 Pascal 关键字 token。
    • 支持解析 Pascal header 。
    • 采用 div 来做整数除法,采用 / 来做浮点数除法。
    • 支持 Pascal 注释。
    • 支持函数。
    • 符号表管理。
    • 嵌套作用域。
    • 报错处理。(提供行号和列号以及错误类型等信息)
    • Executing Procedure Calls。

About

🤯 Let's Build A Simple Interpreter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published