ANTLR示例的指南或批准

时间:2014-07-15 23:06:12

标签: sql antlr relational-algebra

我有一个AlgebraRelacional.g4文件。我需要使用类似CSV文件的语法读取文件,将内容放在一些内存表中,然后用它解析关系代数操作。你能告诉我我做得对吗?

要阅读的示例数据文件:

cod_buy(char);name_suc(char);Import(int);date_buy(date)    
“P-11”;”DC Med”;900;01/03/14    
“P-14”;”Center”;1500;02/05/14

目前的ANTLR语法:

grammar AlgebraRelacional;

SEL     : '\u03C3'
        ;
PRO     : '\u220F'
        ;
UNI     : '\u222A' 
        ;
DIF     : '\u002D'
        ;
PROC    : '\u0058' 
        ;
INT     : '\u2229'
        ;

AND     : 'AND'
        ;
OR      : 'OR'
        ;
NOT     : 'NOT'
        ;

EQ          : '='
            ;
DIFERENTE   : '!='
            ;
MAYOR       : '>'
            ;
MENOR       : '<'
            ;

SUMA    : '+'
        ;
MULTI   : '*'
;


IPAREN  : '('
        ;
DPAREN  : ')'
        ;
COMA    : ','
        ;
PCOMA   : ';'
        ;
Comillas: '"'
        ;

file  : hdr row+ ;
hdr   : row ;
row   : field (',' field)* '\r'? '\n' ;
field : TEXT | STRING | ;

TEXT   : ~[,\n\r"]+ ;
STRING : '"' ('""'|~'"')* '"' ;

1 个答案:

答案 0 :(得分:-1)

我建议你阅读本文档(http://is.muni.cz/th/208197/fi_b/bc_thesis.pdf),它包含有关如何为关系代数编写解析器的有用信息。这不是ANTLR,但你只需要将BNF中的语法翻译成EBNF。