如何使用ANTLR将代码@header和@members放在Lexer而不是Parser中?

时间:2011-12-30 22:20:45

标签: parsing antlr

假设我有一个包含此代码的语法文件。

// START:members
@header {
using System.Collections.Generic;
}

@members {
public static Dictionary<string, string> memory = new Dictionary<string, string>();
}

ANTLR将代码放在Parser中。

public partial class Eval : TreeParser
{
 ... 

    /** Map variable name to Integer object holding value */
    //HashMap memory = new HashMap();
    Dictionary<string, int> memory = new Dictionary<string, int>();

有没有办法将代码放在Lexer而非Parser中使用ANTLR?

1 个答案:

答案 0 :(得分:1)

@header@members分别是@parser::header@parser::members的缩写。

要将代码放入词法分析器,请执行:@lexer::header@lexer::members