Update groupId to org.onap.ccsdk.sli
[ccsdk/sli/core.git] / sli / common / src / main / antlr4 / org / onap / ccsdk / sli / core / sli / ExprGrammar.g4
1
2 grammar ExprGrammar;
3
4 options {
5         language = Java;
6 }
7
8
9 COMPAREOP : '==' | '!=' | '>' | '<' | '>=' | '<=';
10
11 RELOP : 'and' | 'or';
12
13 ADDOP : '+' | '-';
14
15 MULTOP : '/' | '*';
16
17 NUMBER : ('0'..'9')+;
18
19 STRING : '\'' ~[\']* '\'';
20
21 IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'-')*;
22
23 // CONTEXT_VAR : '$' IDENTIFIER;
24
25 WS: [ \n\t\r]+ -> skip;
26
27 constant : NUMBER | STRING ;
28
29 variableLead : ('$')? variableTerm ;
30
31 variableTerm : IDENTIFIER ('[' expr ']')? ;
32
33 variable : variableLead ('.' variableTerm)* ('.')?;
34
35 // variable : CONTEXT_VAR  ( '[' expr ']' )? ('.' IDENTIFIER )? ;
36
37 atom : constant | variable;
38
39
40 expr : atom
41      | parenExpr
42      | multExpr
43      | addExpr
44      | compareExpr
45      | relExpr
46      | funcExpr;
47
48 parenExpr : '(' expr ')';
49
50 term : atom | parenExpr | funcExpr;
51
52 multExpr : term (MULTOP term)*;
53
54 addExpr : multExpr (ADDOP multExpr)*;
55
56 compareExpr : addExpr COMPAREOP addExpr;
57
58 relExpr : compareExpr (RELOP expr)*;
59
60 funcExpr : IDENTIFIER '(' expr (',' expr)* ')';
61
62
63
64
65
66
67