antlr4

    1热度

    1回答

    的Python(均为2/3)中的代码语法的解析器蟒模块中以下行从语法ANTLR4结果产生: self.state = 79 self.state() 正如预期的那样,这导致以下错误: TypeError: 'int' object is not callable

    1热度

    1回答

    我有一个简单Antlr4语法: grammar: test; expression: IF LPAREN logical ',' otherrule',' otherrule RPAREN # myExpression logical: ......; otherrule: ......; IF: 'if'; LPAREN : '('; RPAREN

    0热度

    1回答

    我的antlr(我使用的是IntelliJ插件)匹配我的解析器规则中的第一个表达式的所有输入,这显然会导致错误。 简单的例子: grammar test; rule : WORD '+' WORD; WORD : [a-z]+; 立即测试: 输入= 'faefae' 得到我: 线1:6不匹配输入 '' 期待 '+' (到目前为止它是有道理的) 输入= 'faefae +': 线1:0不匹配

    0热度

    1回答

    我有一个antlr4.7这样的语法,其中所有子规则都被标记。 date_expr : attr op=('+' | '-') dt_interval=ISO8601_INTERVAL #dateexpr_Op | DATETIME_NAME #dateexpr_Named | d=(DATETIME_LITERAL | DATE_LITERAL

    0热度

    1回答

    我想做的语义检查的语言,我用ANTLR4生成解析器和访问者类。但是我遇到了一个问题。 如果我用这个方法print(type(newList[0].expression())) 我会得到一个类型这样<class 'IDILParser.IDILParser.IdenetExpressionContext'> 但是,如果我运行下面的代码,我会得到这样的NameError: name 'IDILPars

    0热度

    1回答

    我有一个解析器规则定义为:“” text: '"'.*?'"' ; 然而这failes如果文本包含标点符号。 ",;:!?./§/*-+)({}[]abc" line 1:1 token recognition error at: ',' line 1:2 token recognition error at: ';' line 1:4 token recognition error a

    2热度

    1回答

    我使用Antlr4解析C代码,我使用下面的语法解析: ​​ 默认情况下上面的语法不提供任何解析规则获得预处理器语句。 我改变了语法稍微得到通过添加以下行 externalDeclaration : functionDefinition | declaration | ';' // stray ; | preprocessorDeclaration ; preprocessorDecl

    1热度

    1回答

    试图使用ANTLR 4为Oracle DB中的某些Select语句创建简单的语法。并面临一个小问题。我有以下的语法: 语法&词法 column : (tableAlias '.')? IDENT ((AS)? colAlias)? | expression ((AS)? colAlias)? | caseWhenClause ((AS)? colAlias)? | rankAggregat

    0热度

    3回答

    我有一个语法是这样的: grammar MyGrammar; field : f1 (STROKE f2 f3)? ; f1 : FIELDTEXT+ ; f2 : 'A' ; f3 : NUMBER4 ; FIELDTEXT : ~['/'] ; NUMBER4 : [0-9][0-9][0-9][0-9]; STROKE : '/' ; 此作品不够好,田间地头f1 f2

    0热度

    1回答

    我想知道如何在语法分析过程中检查所有路径在函数中的返回值。所以说,在词法 RETURN: 'return'; PRINT: 'print'; IF:'if'; ELSE: 'else'; THEN:'then'; PLUS: '+'; MINUS:'-'; EQUALS: '=='; DIGIT: '0'..'9'; OPEN:'{'; CLOSE:'}'; STRING: