首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Jison,如何扫描右移运算符和嵌套泛型类型定义

使用Jison,如何扫描右移运算符和嵌套泛型类型定义
EN

Stack Overflow用户
提问于 2018-06-03 07:00:36
回答 1查看 46关注 0票数 0

我正在为一种支持右移位运算符和泛型类型的语言编写语法。例如:

function rectangle(): Pair<Tuple<Float, Float>> {
    let x = 0 >> 2; 
}

我的问题是,在扫描过程中,右移位操作符被正确标记,但是Pair<Tuple<Float, Float>>中的>>变成了一个>>标记,而不是两个单独的>标记(除非我添加一个空格)。这是因为在我的.jison文件中,>>>之前:

">>"    { return '>>' }
">"     { return '>' }

在Jison中有解决这个问题的好方法吗?我觉得这是一个常见的问题,因为我的语法与其他所有C风格的语言都很相似,但是我还没有找到解决它的方法(除了编写一个手动分隔>的预扫描脚本)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 07:24:32

最简单的解决方案是不将>>识别为词法分析器中的单个令牌。相反,在解析器中,将两个连续的>标记识别为右移位,然后检查以确保它们之间没有任何内容(没有空格或注释)(如果有,则给出语法错误)。

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

https://stackoverflow.com/questions/50661883

复制
相关文章

相似问题

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