// Create a scanner that reads from the input stream passed to us
CSLexer lexer = new CSLexer(new ANTLRFileStream(f));
tokens.TokenSource = lexer;
// Create a parser that reads from the scanner
CSParser parser = new CSParser(tokens);
// start parsing at the compilationUnit rule
CSParser.compilati
我正在开发一个工具,将Oracle SQL转换为ANSI SQL。我有一个语法,将分析Oracle SQL和ANSI SQL。
我想从AST的where子句部分提取Oracle外部联接表达式,并在AST的from子句部分的末尾插入新的联接子句,以用于匹配的select或子查询。
具有重写规则的树解析器可以进行这种类型的树转换吗?
例如,获取从Oracle SQL生成的AST
SELECT
a.columna, b.columnb
FROM
tablea a,
tableb b
WHERE
a.columna2 (+) = b.columnb2 (+)
AND
a.col
抱歉,标题不好,不知道怎么写。无论如何,我正在使用ANTLR来生成一个解析树。我正在尝试解析函数参数,它有点工作,但是有一些东西我想要改变,但我不太清楚如何去做。
下面是我目前的设置:
function
: FUNCTION WORD LPAREN functionParams RPAREN ARROW WORD LBRACE RBRACE
;
functionParams
: (AMP WORD COMMA)*
;
// these could be wrong, I wrote these in by hand
AMP: '&