Antlr 4 Lexer统治模糊

时间:2015-07-13 18:50:10

标签: c# antlr antlr4 lexer

所以我要构建一个语法来解析c++头文件。

我只为头文件编写了语法,我并不打算为实现编写任何语法。

我的问题是如果方法是在标头中实现而不是仅仅定义。

Foo bar()
{
    //some code
};

我只想将bar的实现与

相匹配
BLOCK 
    : '{' INTERNAL_BLOCK*? '}'
    ;

fragment INTERNAL_BLOCK
    : BLOCK
    | ~('}')
    ;

但是这会干扰包含{ ... }的任何其他语法,因为这将始终匹配两个大括号之间的内容。无论如何都要指定在存在歧义时使用哪个令牌?

P.S。我不知道BLOCK的语法是否有效,但你得到了要点。

0 个答案:

没有答案