0
在我的語法中,我有一個賦值規則。它是形式 assignment: VAR_TYPE ID '=' expr;
ANTLR匹配等級名稱
在VAR_TYPE
我有一些硬編碼值喜歡整數,字符串等
我想知道的是我怎麼能匹配在文件中聲明的任何類的名字嗎?
假設有人宣稱class Foo
和Class Bar
。如何在不利用ID
的情況下將此標記爲有效輸入 。因爲如果我的廣告|ID
到VAR_TYPE
規則,ID
永遠不會是 匹配,我不希望這樣。
爲什麼不使用'ID'而不是'VAR_TYPE'來開始?然後,你可以維護一個可擴展容器(這是特定於語言的;使用['std :: vector'](http://www.cplusplus.com/reference/vector/vector/)與C++,['list'] (http://docs.python.org/2/library/stdtypes.html#mutable-sequence-types)與Python,['System.Collecions.Generic.List'](http://msdn.microsoft.com/ en-us/library/6sh2ey19.aspx)與C#)聲明類型並使用它來保持跟蹤,如果使用未知類型則會引發錯誤。 – refi64
好的。所以你的建議是放棄VAR_TYPE? – coredump
非常。這就是我通常所做的,以避免過度複雜的事情。你使用什麼語言? – refi64