自己写:错误位置和词位置对得上吗

补全 where,返回每个 Token 的 行:列,输出第 1、11、14 个 Token 的位置(从 1 数起)。 let rate = 12; let msg = "hi there"; total = rate &

开始练习 →

一个 Lexer 算写完了的判据是什么

判断自己的 Lexer 写完了,最靠得住的判据是【0】。

开始练习 →

词法这一站不负责的是什么

下面这几件事里,词法分析不负责的是【0】。

开始练习 →

完整 Lexer 跑一遍的四个数

把完整的 Lexer 跑在那段源码上,输出四个数:词数、关键字数、字符串那个词的字符数、最后一个词的列号。 let rate = 12; let msg = "hi there"; total = rate >=

开始练习 →

自己写:把八节的规则合成一个 Lexer

补全 lex 的三条分支(数字、字符串、双字符运算符),输出切出的词数。 let rate = 12; let msg = "hi there"; total = rate >= 3; 玩具语言的词法规则:关键字

开始练习 →

自己写:带类别的 Token 流

补全 kind,给每个词判类别,输出前四个词的类别用 / 拼起来。 let rate = 12; let msg = "hi there"; total = rate >= 3; 玩具语言的词法规则:关键字 let

开始练习 →

自己写:一次核完四件事

补全 audit,把自己切出来的结果和标准答案在四个维度上比:词数、类别序列、字符串内容、位置。返回第一处不同的名字,全对返回 四项全过。

开始练习 →

自己写:错误也要能报出来

补全 run:源码合法就返回词数,遇到非法字符就返回 行:列。三段各跑一次。 玩具语言的词法规则:关键字 let if else while;标识符以字母或下划线开头;数字是连续的数位;字符串用一对双引号括起来(不含转义);双字符运算符 &

开始练习 →

自己写:交出完整的 Lexer

把八节的东西合起来:补全 lex 的四处 TODO,输出四个数——词数、关键字数、字符串字符数、最后一个词的列号。 let rate = 12; let msg = "hi there"; total = rate &g

开始练习 →

词法和语法各管什么

上一站切好了一排词,然后呢 ? 上一站 lexer 把 let rate = 12 ; 切成 5 个 token。这一站 parser 要做的是【0】。

开始练习 →