首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Antlr -多个lexer导入

Antlr -多个lexer导入
EN

Stack Overflow用户
提问于 2014-10-28 11:50:01
回答 1查看 460关注 0票数 0

我正在尝试构建一个包含多个lexer导入的组合Antlr语法。但是,这不管用。我在合并语法文件中导入了两个lexer文件。但是我得到了这个错误: error (103):解析器规则a在lexer中是不允许的。

代码语言:javascript
复制
 lexer grammar LSub ;

    SPACE : ' ' ;

    lexer grammar L ;

    LETTER : 'a'..'z' ;
    // SPACE : ' ' ;
    NUMBER : '0'..'9' ;


    parser grammar P1 ;

    letter : LETTER ;
    spaces : SPACE+ ;


    grammar C ;
    import L, LSub, P1 ;

    stuff : ( letters spaces )+ ;

    LETTER : 'a'..'z' ;

此外,如果我尝试它,那么两个级别的lexer导入,即假设我有两个L1和L2,& L2导入L1,在组合语法中,如果我导入了L2。然后,在Test类中,我得到了nullpointerexception。

代码语言:javascript
复制
lexer grammar LSub ;

SPACE : ' ' ;
lexer grammar L ;

import LSub;

LETTER : 'a'..'z' ;
// SPACE : ' ' ;
NUMBER : '0'..'9' ;


parser grammar P1 ;

letter : LETTER ;
spaces : SPACE+ ;

parser grammar P2 ;
import P1 ;

letters : letter+ ;

grammar C ;
import L, P2 ;

stuff : ( letters spaces )+ ;

LETTER : 'a'..'z' ;

这个问题有解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-14 07:03:08

在任何解析器文件中都不允许使用多个lexer。这是反3.5中的一个平局。尝试在L中导入LSub,然后在P1中导入L。你可能会得到。

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

https://stackoverflow.com/questions/26607624

复制
相关文章

相似问题

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