我有一个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 : '"' ('""'|~'"')* '"' ;
答案 0 :(得分:-1)
我建议你阅读本文档(http://is.muni.cz/th/208197/fi_b/bc_thesis.pdf),它包含有关如何为关系代数编写解析器的有用信息。这不是ANTLR,但你只需要将BNF中的语法翻译成EBNF。