你好,我是winter。 在前面的课程中,我在JavaScript和CSS的部分,多次提到了编译原理相关的知识。这一部分的知识,如果我们从编译原理“龙书”等正规的资料中学习,就会耗费掉不少的时间,所以我在这里设计了一个小实验,帮助你快速理解编译原理相关的知识。 今天的内容比较特殊,我们来做一段详细的代码实验,详细的代码我放在了文章里,如果你正在收听音频,可以点击文章查看详情。 ## 分析 按照编译原理相关的知识,我们来设计一下工作,这里我们分成几个步骤。 - 定义四则运算:产出四则运算的词法定义和语法定义。 - 词法分析:把输入的字符串流变成token。 - 语法分析:把token变成抽象语法树AST。 - 解释执行:后序遍历AST,执行得出结果。 ## 定义四则运算 四则运算就是加减乘除四种运算,例如: ``` 1 + 2 * 3 ``` 首先我们来定义词法,四则运算里面只有数字和运算符,所以定义很简单,但是我们还要注意空格和换行符,所以词法定义大概是下面这样的。
  • Token