antlr3

    3熱度

    1回答

    想象一下,我有以下規則。我想讓TYPE_ID爲可選項,但如果AST缺失,則將其替換爲AST中的某個默認值。 assignment : TYPE_ID? ID '->' expression TYPE_ID : ('A'..'Z')('a'..'z'|'A'..'Z'|'0'..'9')* ; 例如我有以下代碼來解析,給出了上述規則,假定根據需要expression作品。 monday ->

    2熱度

    2回答

    看一看我的語法 grammar protocol; options { language = Java; output = AST; } //imaginary tokens tokens{ BOOL; CHAR; STRING; } parse : declaration ; declaration : vari

    2熱度

    1回答

    所述的Antlr某種程度上忽略字符如〜,@,#,$,%,* ,(,),{,},[,]來自輸入字符串。 我測試了輸入字符串的下面的語法,如show ~~~,show〜@#$%等,但Antlr轉義eclipse/antlr工程解釋器上的字符。我希望這樣的場景拋出一個異常,而不是從它們中恢復。如果你之前遇到過這種情況,請告訴我,如果是這樣,你做了什麼來擺脫它。 grammar Sample; opti

    1熱度

    1回答

    我正在使用ANTLR構建AST。我想要寫一個,這個字符串匹配生產: ${identifier} 在我的語法文件我有: reference : DOLLAR LBRACE IDENT RBRACE -> ^(NODE_VAR_REFERENCE IDENT) ; 這工作得很好。我使用自己的適配器來發射樹節點。 使用的重寫規則爲我創建了兩個節點:一個用於NODE_VAR_REFER

    1熱度

    1回答

    我試圖寫一段語法來表達的層次結構字段訪問,像ABC其中Ç是場AB和b是a。 評價的a.b.c.d.e我們需要評估A.B.C.D的值,然後得到Ë價值的價值。 要evalutate值ABCD,我們需要evalute ABC的值,然後得到d的價值等等... 如果你有一個這樣的樹(箭頭指「 lhs是rhs的父親「): Node(e) -> Node(d) -> Node(c) -> Node(b) ->

    0熱度

    1回答

    我與Antlr3運行工作在VS 2012 Express和而試圖建立的項目,我從生成收到以下錯誤: C:\dev\projects\vs\ANTLR\T\obj\Debug\TParser.cs(587,23,587,29): error CS0102: The type 'T.TParser' already contains a definition for 'Follow C:\dev\p

    2熱度

    2回答

    我試圖通過下列方式運行ANTLR 3.4 : java -classpath "d:\extracted\antlrworks1.4.3" org.antlr.Tool %p%\parser.g -o %p%\output or java -classpath "%p%lib\antlrworks-1.4.3.jar" org.antlr.Tool %p%\parser.g -o %p%\ou

    1熱度

    1回答

    對於我試圖解析的標記語言,我決定給解析器生成一個嘗試ANTLR。我是這個領域的新手,我正在搞點東西。 我的語法是 grammar Test; DIGIT : ('0'..'9'); LETTER : ('A'..'Z'); SLASH : '/'; restriction : ('E' ap) | ('L' ap) | 'N'; ap : LETTER LE

    1熱度

    2回答

    我有一個ANTLR規則會返回一個向量: main returns [std::vector<int> v] : ('ERROR' t3=INT{v.push_back(atoi((const char*)$t3.text->chars));} '='t4=INT{v.push_back(atoi((const char*)$t4.text->chars));}

    3熱度

    1回答

    給定輸入"term >1",數字(1)和比較運算符(>)應該在AST中生成單獨的節點。這怎麼能實現? 在我的測試匹配只發生如果「c」和「1」,其中分隔與像這樣的空間「term < 1」。 當前語法: startExpression : orEx; expressionLevel4 : LPARENTHESIS! orEx RPARENTHESIS! | atomicExpression;