我是新的antlr4 ...我搜索了很多,以獲得每個令牌的行數和列數antlr4 ...我有一個良好knewoleadge flex和野牛,我做了一個完整的編譯器爲PHP與flex和野牛......在flex和野牛我是通過簡單的代碼獲得的行和列的數量:在bison.y如何獲取antlr4中每個令牌的行數和列數?
我定義的結構:
struct R{
int i;
float f;
char c;
char* str;
int myLineNo;
int myColno;
}r;
namespace_name_parts: // rule
T_STRING {
$<Expre>$=new var_dec($<r.str>1,$<r.myLineNo>1,$<r.myColno>1);
};
和flex.l我寫:
int lineNo = 1;
int colNo = 1;
"while" {
yylval.r.myLineNo= lineNo;
yylval.r.myColno = colNo;
colNo += strlen(yytext);
return T_WHILE ;
}
這樣我可以得到數字和公司的行lumn Flex和野牛... 注:我需要的數量和列的打印我自己的類型檢查錯誤的行
這樣可以幫助我得到antlr4
['Token'接口](http://www.antlr.org/api/Java/org/antlr/v4/runtime/Token.html)有你需要的所有方法:'getLine()'和'getCharPositionInLine()'。 –
好的...可以給我示例如何使用這個接口嗎?@Lucas Trzesniewski – Micle
不,我不會教你ANTLR的基礎知識,本網站*不是*爲此。 [閱讀文檔](https://github.com/antlr/antlr4/blob/master/doc/index.md),這個用法應該是*很明顯。 –