相关疑难解决方法(0)

ANTLR4中的语义谓词?

你如何将ANTLR 3中编写的这部分代码翻译成ANTLR 4?

expr: (Identifier '.')=> (refIdentifier)
  | (Identifier '!')=> (refIdentifier)
  | (Identifier '=>')=> (lambdaExpression);
Run Code Online (Sandbox Code Playgroud)

我的意思是这种语义谓词现在似乎不存在.我可以用什么呢?

antlr antlr4

12
推荐指数
1
解决办法
6409
查看次数

句法谓词 - 从 Antlr 3 升级到 Antlr 4

我有语法谓词,我必须转换为 Antlr 4。语法不是我自己写的,所以我不知道如何以有意义的方式转换它们。这些是我必须转换的语法的主要变体。

1.

    simpleSelector
    : elementName 
        ((esPred)=>elementSubsequent)*

    | ((esPred)=>elementSubsequent)+
    ;

    esPred
    : HASH | DOT | LBRACKET | COLON
    ;

    elementSubsequent
    : HASH
    | cssClass
    | attrib
    | pseudo
    ;
Run Code Online (Sandbox Code Playgroud)

2.

        fragment    EMS         :;  // 'em'
        fragment    EXS         :;  // 'ex'
        fragment    LENGTH      :;  // 'px'. 'cm', 'mm', 'in'. 'pt', 'pc'
        fragment    ANGLE       :;  // 'deg', 'rad', 'grad'
        fragment    TIME        :;  // 'ms', 's'
        fragment    FREQ        :;  // 'khz', 'hz'
        fragment    DIMENSION   :;  // nnn'Somethingnotyetinvented'
        fragment    PERCENTAGE  :;  // …
Run Code Online (Sandbox Code Playgroud)

antlr3 antlr4

3
推荐指数
1
解决办法
4234
查看次数

词法分析器中的 ANTLR4 负前瞻

我正在尝试为 PostgreSQL SQL 定义词法分析器规则。

问题在于运算符定义和行注释相互冲突。

例如@---是一个操作符标记@-后跟--注释而不是一个操作符标记@---

grako有可能定义为负先行-样片段:

OP_MINUS: '-' ! ( '-' ) .
Run Code Online (Sandbox Code Playgroud)

在 ANTLR4 中,我找不到任何方法来回滚已经消耗的片段。

有任何想法吗?

这里的原始定义是什么 PostgreSQL 操作符可以是:

The operator name is a sequence of up to NAMEDATALEN-1
(63 by default) characters from the following list:

 + - * / < > = ~ ! @ # % ^ & | ` ?

There are a few restrictions on your choice of name:
-- and /* …
Run Code Online (Sandbox Code Playgroud)

antlr4

3
推荐指数
1
解决办法
2601
查看次数

检查词法分析器中的上一个/左标记

我怎么能找到以前的/左令牌词法
例如

lexer grammar TLexer;

ID     : [a-zA-Z] [a-zA-Z0-9]*;
CARET  : '^';
RTN    : {someCond1}? CARET ID; // CARET not include this token
GLB    : {someCond2}? CARET ID; // CARET not include this token
Run Code Online (Sandbox Code Playgroud)

等等

antlr4

2
推荐指数
1
解决办法
1779
查看次数

标签 统计

antlr4 ×4

antlr ×1

antlr3 ×1