0
我想實現一個簡單的解析與自定義.c文件添加語法。我該怎麼辦...?與詞法分析器唯一的規則ANTLR
例如:test.c 。
// I don’t need this in output
int func1(int a, int b);
//I need this.
@parseme int func2(int a, int b);
//and this …
@parseme
void func3()
{
Int a;
//put here where ever
…
{
//inside block
}
return;
}
。
我想在詞法分析階段使用模糊分析方法,然後在解析器規則上用TokenRewriteStream和模板重寫記號。
那麼這是一個詞法分析器一塊...
lexer grammar Lexi;
options {filter = true;}
// Pick everything between @parseme and ';' or '{ }'
METHOD
: HEADER .* (';' | BODY)
;
fragment
HEADER
: '@' ('parseme' | 'PARSEME') ;
fragment
BODY: '{' .* '}' ;
.
... 問題很簡單的一個專家看: 1詞法分析器停止解析時,發現「;」之前到達最後一個「}」的「@ parseme void func3()...。 「 2- Lexer停止解析時,右側捲曲塊內發現。 3 - 當然更多的情況下還沒有測試。
問題很明顯。解決方案呢?我希望如此 !!
謝謝。