antlr3

    1熱度

    2回答

    我們正在開發一個DSL,我們正在面臨的一些問題: 問題1: 在我們的DSL,它允許這樣做: A + B + C 但不是這樣: A + B - C 如果用戶需要使用兩個或多個不同的運營商,他需要插入圓括號: A + (B - C) 或 (A + B) - C。 問題2: 在我們的DSL中,最先例的運算符必須用圓括號包圍。 例如,而不是使用這種方式: A + B * C 的用戶需要使用這樣的: A +

    -1熱度

    2回答

    幾個星期的休息之後,它的時間與ANTLR再次打... 無論如何,我有以下詞法定義令牌: fragment EQ: '='; fragment NE: '<>'; BOOLEAN_FIELD : ('ISTRAINED'|'ISCITIZEN') ; BOOLEAN_CONSTANT : ('TRUE'|'FALSE'|'Y'|'N') ; BO

    2熱度

    1回答

    我一直在努力解決我的解析器中的「多個替代方案」錯誤,但現在卻沒有成功。我一直在使用Sam Harwell的ANTLR3和VS2010端口將Bart Kiers出色的微型語言(TL)教程代碼轉換爲C#。對這些傢伙的出色工作表示讚賞。我相信我已經準確地跟隨了巴特的教程,但由於我是ANTLR的新手,我無法確定。 我確實有TL代碼純數學的基礎上很好地工作,即沒有「功能」或「如果那麼否則」或「而」(見一個小

    1熱度

    1回答

    我正在將語法從LALR翻譯成ANTLR,並且我在翻譯這一規則時出現分段表達式的問題。 附上樣品語法: grammar Test; options { language = Java; output = AST; } parse : expression ';' ; expression : binaryExpression | pieces

    1熱度

    1回答

    我在ANTLR 3中已經有了一個相當基本的語法,並且我正在執行以下操作: - 如果'+'出現在'term'前面,只需將其刪除即可是多餘的(完成)。 - 如果在'term'前面出現' - ',則保留它,但是爲第一個子節點添加一個'0',以便我有效地從「-2」變爲「0-2」。 expression: unaryterm ((ADD^ | MINUS^) term)* ; unaryte

    0熱度

    1回答

    分裂字母字符和數字我有分別解析字母字符和數字的語法: grammar Demo; options { language = C; } program : process+ ; process : Alphanumeric {printf("\%s",$Alphanumeric.text->chars);} ; Alphanumeric : (A

    1熱度

    3回答

    我想用C語法創建AST,可以找到here。 l = k*j*5 - 10; 我得到這樣的:然而,它沒有當我輸入驗證碼考慮與業務優先級,對於爲例 : 的操作是用這個編碼管理 multiplicative_expression : primary_expression (('*'^ additive_expression) | ('/'^ additive_expression) | ('%'^

    0熱度

    1回答

    我是Antlr的新手,我的設置如下:Windows 7,Java JDK 1.7.0_17,AntlrWorks 1.5,Antlr 3.5。 的AntlrWorks幫助 - 關於顯示以下信息: ANTLRWorks 1.5 ANTLR 3.5 StringTemplate的V3 3.2.1 StringTemplate的V4 4.0.7-SNAPSHOT 的Java 1.7.0_17公司(Ora

    0熱度

    1回答

    我有一個組合的ANTLR語法,它應該用於解析幾行信息。在編寫語法時,可能並不是所有的行都已經完全知道,並且在語法中定義。這應該得到承認。 下面是一個簡單的一個: rule: (line)+ EOF; LF: ('\n'|'\r\n'); WS: ' '; INTEGER: ('0'..'9'); VALUE: ('a'..'z'|'A'..'Z'|'0'..'9'); line:

    0熱度

    1回答

    我正在學習關於計算機科學課程中的解析/解析。爲此我們使用ANTLR。 我在修改一個XML語言,所以它不再具有模糊性,但是當我對語法進行更改時,ANTLR會抱怨。 我知道這個具體的問題已被問過,但它並沒有真正的幫助! ANTLR: rule Tokens has non-LL(*) decision due to recursive rule invocations reachable from a