Skip to content

Commit af8246e

Browse files
committed
grammar file updated for stream-monitor statements
1 parent bb569f0 commit af8246e

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/main/antlr/While.g4

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ SIMULATE : 'simulate';
3131
VALIDATE : 'validate';
3232
CLASSIFY : 'classify';
3333
ADAPT : 'adapt';
34+
MONITOR : 'monitor';
3435
TICK : 'tick';
36+
WINDOW : 'window';
3537
BREAKPOINT : 'breakpoint';
3638
SUPER : 'super';
3739
DESTROY : 'destroy';
@@ -49,6 +51,8 @@ CLASSIFIES: 'classifies';
4951
RETRIEVES: 'retrieves';
5052
DOMAIN : 'domain';
5153
CONTEXT : 'context';
54+
STREAMER : 'streamer';
55+
EMITS : 'emits';
5256

5357
//Keywords: constants
5458
TRUE : 'True';
@@ -94,6 +98,9 @@ FMU : 'FMO';
9498
PORT : 'port';
9599
SPARQLMODE : 'SPARQL';
96100
INFLUXMODE : 'INFLUXDB';
101+
// MONITORTYPE : 'Monitor';
102+
// QUERYRESULTTYPE : 'QueryResult';
103+
CLOCK : 'clock';
97104
// Note that the IN, OUT constants are also used in
98105
// TypeChecker.kt:translateType in the FMU branch; adapt strings there if
99106
// changing the syntax here
@@ -117,13 +124,13 @@ namelist : NAME (COMMA NAME)*;
117124
program : (class_def)* MAIN statement END (class_def)*;
118125

119126
//classes
120-
class_def : (abs=ABSTRACT)? (hidden=HIDE)? CLASS className = NAME (LT namelist GT)? (EXTENDS superType = type)? OPARAN (external=fieldDeclList)? CPARAN
127+
class_def : (abs=ABSTRACT)? (hidden=HIDE)? (streamer=STREAMER)? CLASS className = NAME (LT namelist GT)? (EXTENDS superType = type)? OPARAN (external=fieldDeclList)? CPARAN
121128
(internal = fieldDeclInitList)?
122129
(models_block)?
123130
(classifies_block (retrieves_block)?)?
124131
method_def*
125132
END;
126-
method_def : (abs=ABSTRACT)? (builtinrule=RULE)? (domainrule=DOMAIN)? (overriding=OVERRIDE)? type NAME OPARAN paramList? CPARAN (statement END)?;
133+
method_def : (abs=ABSTRACT)? (builtinrule=RULE)? (domainrule=DOMAIN)? (overriding=OVERRIDE)? type NAME OPARAN paramList? CPARAN emits_block? (statement END)?;
127134

128135
models_block : MODELS owldescription=STRING SEMI #simple_models_block
129136
| MODELS OPARAN guard=expression CPARAN owldescription=STRING SEMI models_block #complex_models_block
@@ -132,14 +139,18 @@ classifies_block : CLASSIFIES owldescription=STRING SEMI # adapt
132139
;
133140
retrieves_block : RETRIEVES selectquery=STRING SEMI # adaptation_retrieves_block
134141
;
142+
emits_block : EMITS OPARAN expression (COMMA expression)* CPARAN;
143+
135144
//Statements
136145
statement : SKIP_S SEMI # skip_statment
137146
| ((declType = type)? target=expression ASS)? CLASSIFY OPARAN context=expression CPARAN SEMI # classify_statement
138147
| ADAPT OPARAN adapter=expression CPARAN SEMI # adapt_statement
139-
| (declType = type)? expression ASS expression SEMI # assign_statement
148+
| (declType = type)? target=expression ASS MONITOR OPARAN registeredQuery=expression (COMMA expression)* CPARAN SEMI # monitor_statement
149+
| (clock = CLOCK)? (declType = type)? expression ASS expression SEMI # assign_statement
140150
| ((declType = type)? target=expression ASS)? SUPER OPARAN (expression (COMMA expression)*)? CPARAN SEMI # super_statement
141151
| RETURN expression SEMI # return_statement
142152
| fmu=expression DOT TICK OPARAN time=expression CPARAN SEMI # tick_statement
153+
| (declType = type)? target=expression ASS WINDOW OPARAN monitor=expression CPARAN SEMI # window_statement
143154
| ((declType = type)? target=expression ASS)? expression DOT NAME OPARAN (expression (COMMA expression)*)? CPARAN SEMI # call_statement
144155
// TODO: allow new statements without assignment
145156
| (declType = type)? target=expression ASS NEW newType = type OPARAN (expression (COMMA expression)*)? CPARAN (MODELS owldescription = expression)? SEMI # create_statement
@@ -194,6 +205,7 @@ expression : THIS # this_expression
194205
type : NAME #simple_type
195206
| NAME LT typelist GT #nested_type
196207
| FMU OBRACK fmuParamList? CBRACK #fmu_type
208+
// | MONITORTYPE LT typelist GT #monitor_type
197209
;
198210
typelist : type (COMMA type)*;
199211
param : type NAME;

0 commit comments

Comments
 (0)