@@@@ OQL parsing

SVN:b931[6025]
This commit is contained in:
Pierre Goiffon
2018-08-28 13:54:15 +00:00
parent 9631021f84
commit 5e7db7a27e
3 changed files with 6 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
rem must be run with current directory = the directory of the batch
rem PEAR is required to build
php -d include_path=".;C:\iTop\PHP\PEAR" ".\PHP\LexerGenerator\cli.php" ..\oql-lexer.plex
php -d include_path=".;C:\Dev\wamp64\bin\php\php5.6.31\pear" ".\PHP\LexerGenerator\cli.php" ..\oql-lexer.plex
php ".\PHP\ParserGenerator\cli.php" ..\oql-parser.y
php -r "echo date('Y-m-d');" > ..\version.txt
pause

View File

@@ -88,6 +88,7 @@ where = "WHERE"
join = "JOIN"
on = "ON"
coma = ","
matches = "MATCHES"
par_open = "("
par_close = ")"
math_div = "/"

View File

@@ -105,6 +105,7 @@ expression_basic(A) ::= PAR_OPEN expression_prio4(X) PAR_CLOSE. { A = X; }
expression_basic(A) ::= expression_basic(X) list_operator(Y) list(Z). { A = new BinaryOqlExpression(X, Y, Z); }
expression_prio1(A) ::= expression_basic(X). { A = X; }
expression_prio1(A) ::= match_expression(X). { A = X; }
expression_prio1(A) ::= expression_prio1(X) operator1(Y) expression_basic(Z). { A = new BinaryOqlExpression(X, Y, Z); }
expression_prio2(A) ::= expression_prio1(X). { A = X; }
@@ -117,6 +118,9 @@ expression_prio4(A) ::= expression_prio3(X). { A = X; }
expression_prio4(A) ::= expression_prio4(X) operator4(Y) expression_prio3(Z). { A = new BinaryOqlExpression(X, Y, Z); }
match_expression(A) ::= field_id(X) MATCHES scalar(Y). { A = new MatchOqlExpression(X, Y); }
list(A) ::= PAR_OPEN list_items(X) PAR_CLOSE. {
A = new ListOqlExpression(X);
}
@@ -235,7 +239,6 @@ func_name(A) ::= F_FLOOR(X). { A=X; }
func_name(A) ::= F_INET_ATON(X). { A=X; }
func_name(A) ::= F_INET_NTOA(X). { A=X; }
%code {
class OQLParserException extends OQLException