根据网站,我对Near.js很陌生,我想知道与规则相比,标记器/词法分析器做了什么:
默认情况下,nearley 将输入拆分为字符流。这称为无扫描仪解析。标记器将输入拆分为称为标记的更大单元流。这发生在解析之前的单独阶段。例如,分词器可能会转换
512 + 10
为["512", "+", "10"]
:注意它是如何删除空格的,并将多位数字组合成一个数字。
那岂不是一样:
Math -> Number _ "+" _ Number
Number -> [0-9]:+
我不明白词法分析器的目的是什么。我看到在这种情况下规则总是可用的,并且不需要词法分析器。