首页
学习
活动
专区
圈层
工具
发布

Xtext消歧
EN

Stack Overflow用户
提问于 2015-08-28 14:07:28
回答 1查看 65关注 0票数 0

考虑到以下语法:

代码语言:javascript
复制
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals

generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Program:
    {Range} ID '.' '.' ID
  | {Group} ID ID ID ID
;

terminal ID:
    'a' | '.'
;

以及以下投入:

代码语言:javascript
复制
a . . a

我认为可以解析字符串的方式有两种:作为Range (第一个选项)或作为Group (第二个选项)。当我在生成的IDE中尝试并检查Ecore模型时,将实例化一个Range

是什么使Xtext决定支持Range

编辑:,我想知道为什么Xtext语法本身并不含糊,因为range 'a'..'z'可以被解析为Group of Keyword, Wildcard, Wildcard, Keyword,也可以被解析为CharacterRange of Keyword, Keyword

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-29 20:07:10

关键词成为词汇规则的一口井。因此,您有两个Lexer规则

代码语言:javascript
复制
terminal FULL_STOP_KEYWORD: '.' ;

代码语言:javascript
复制
terminal ID: 'a' | '.';

莱克星不是有状态的。只有一条规则能赢。这样“.”将始终以关键字的形式出现,而不作为ID

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

https://stackoverflow.com/questions/32273005

复制
相关文章

相似问题

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