首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表的词法分析

列表的词法分析
EN

Stack Overflow用户
提问于 2013-03-08 09:11:00
回答 1查看 122关注 0票数 0

我必须为一种具有表单[1,2,3]['c','s','q','t']列表的语言创建一个词汇。

我真的不明白我是否需要在莱克星阶段与名单相匹配。所以,例如

2:1、2、3;

be

NUM(2)冒号LSQBRACKET NUM(1)逗号NUM(2)逗号NUM(3) RSQBRACKET半

NUM(2)冒号表(1,2,3)半

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-03-08 09:17:40

从技术上讲,这取决于你。如果你只需要匹配非常简单的列表文字,那么也许你就可以像对待字符串文本一样对待它们了。(但是,这不太可能是一个好办法)。

您通常希望lexer输出一系列简单的令牌。lexer应该是相对简单的--一个经验法则是它不应该需要递归。

因此,例如,要求它输出一个“列表”标记会适得其反--雷克萨斯将不得不对嵌套列表进行递归,这意味着它将实现一个迷你解析器。将该作业留给解析器处理。

第一个例子提供了一个更简单的lexer,它对于后期的解析器仍然很有用。

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

https://stackoverflow.com/questions/15290367

复制
相关文章

相似问题

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