首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nearley托卡器与规则

Nearley托卡器与规则
EN

Stack Overflow用户
提问于 2018-08-27 19:08:49
回答 1查看 374关注 0票数 3

我对nearly.js非常陌生,我想知道与规则相比,标记器/词汇者会做些什么,根据该网站:

默认情况下,“近邻”将输入拆分为一个字符流。这被称为无扫描解析。令牌器将输入拆分成一个更大的单元流,称为令牌。在解析之前,这种情况会在单独的阶段发生。例如,令牌程序可能会将512 + 10转换为["512", "+", "10"]:注意它如何删除空格,并将多位数字组合成一个数字。

难道这不是和:

代码语言:javascript
复制
Math -> Number _ "+" _ Number
Number -> [0-9]:+

我看不出书呆子的目的是什么。我认为,在这种情况下,规则总是可以使用的,而且没有必要使用词汇。

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 11:42:44

在摆弄了他们之后,我发现了令牌的使用,比如我们有以下内容:

代码语言:javascript
复制
Keyword -> "if"|"else"
Identifier -> [a-zA-Z_]+

这是行不通的,如果我们尝试编译它,就会得到不明确的语法," if“将被匹配为关键字和标识符,但是,标记程序:

代码语言:javascript
复制
{
"keyword": /if|else/
"identifier": /[a-zA-Z_]+/
}

尝试编译这不会导致语法不明确,因为标记器是智能的(至少在本例中显示的是Moo)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52045590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档