Skip to content

Commit 30169ab

Browse files
committed
halt added to control language
1 parent c73ad18 commit 30169ab

File tree

9 files changed

+1947
-1983
lines changed

9 files changed

+1947
-1983
lines changed

src/main/java/nl/utwente/groove/control/parse/CtrlChecker.java

Lines changed: 464 additions & 436 deletions
Large diffs are not rendered by default.

src/main/java/nl/utwente/groove/control/parse/CtrlLexer.java

Lines changed: 486 additions & 450 deletions
Large diffs are not rendered by default.

src/main/java/nl/utwente/groove/control/parse/CtrlParser.java

Lines changed: 755 additions & 691 deletions
Large diffs are not rendered by default.

src/main/java/nl/utwente/groove/control/parse/CtrlTokenMaker.java

Lines changed: 130 additions & 304 deletions
Large diffs are not rendered by default.

src/main/java/nl/utwente/groove/control/parse/CtrlTree.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,9 @@ public Term toTerm() throws FormatException {
277277
}
278278
}
279279
break;
280+
case CtrlParser.HALT:
281+
result = prot.delta();
282+
break;
280283
default:
281284
assert false;
282285
}

src/main/resources/nl/utwente/groove/resource/antlr/Ctrl.g

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,9 @@ stat
253253
| //@S expr SEMI
254254
//@B An expression used as a statement.
255255
expr SEMI^ // SEMI retained for token positioning
256+
| //@S HALT
257+
//@B Stops exploration, without marking the state as final
258+
HALT
256259
;
257260

258261
/** @H Variable declaration with optional initialisation. */
@@ -506,6 +509,7 @@ DO : 'do';
506509
ELSE : 'else';
507510
FALSE : 'false';
508511
FUNCTION : 'function';
512+
HALT : 'halt';
509513
IF : 'if';
510514
IMPORT : 'import';
511515
INT : 'int';

src/main/resources/nl/utwente/groove/resource/antlr/Ctrl.tokens

Lines changed: 52 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -32,54 +32,55 @@ FALSE=34
3232
FUNCTION=35
3333
FUNCTIONS=36
3434
GEQ=37
35-
ID=38
36-
IF=39
37-
IMPORT=40
38-
IMPORTS=41
39-
INT=42
40-
INT_LIT=43
41-
IntegerNumber=44
42-
LANGLE=45
43-
LCURLY=46
44-
LEQ=47
45-
LPAR=48
46-
Letter=49
47-
MINUS=50
48-
ML_COMMENT=51
49-
NEQ=52
50-
NODE=53
51-
NOT=54
52-
NonIntegerNumber=55
53-
OR=56
54-
OTHER=57
55-
OUT=58
56-
PACKAGE=59
57-
PAR=60
58-
PARS=61
59-
PERCENT=62
60-
PLUS=63
61-
PRIORITY=64
62-
PROGRAM=65
63-
PosDigit=66
64-
QUOTE=67
65-
RANGLE=68
66-
RCURLY=69
67-
REAL=70
68-
REAL_LIT=71
69-
RECIPE=72
70-
RECIPES=73
71-
RPAR=74
72-
SEMI=75
73-
SHARP=76
74-
SLASH=77
75-
SL_COMMENT=78
76-
STAR=79
77-
STRING=80
78-
STRING_LIT=81
79-
TRUE=82
80-
TRY=83
81-
UNDER=84
82-
UNTIL=85
83-
VAR=86
84-
WHILE=87
85-
WS=88
35+
HALT=38
36+
ID=39
37+
IF=40
38+
IMPORT=41
39+
IMPORTS=42
40+
INT=43
41+
INT_LIT=44
42+
IntegerNumber=45
43+
LANGLE=46
44+
LCURLY=47
45+
LEQ=48
46+
LPAR=49
47+
Letter=50
48+
MINUS=51
49+
ML_COMMENT=52
50+
NEQ=53
51+
NODE=54
52+
NOT=55
53+
NonIntegerNumber=56
54+
OR=57
55+
OTHER=58
56+
OUT=59
57+
PACKAGE=60
58+
PAR=61
59+
PARS=62
60+
PERCENT=63
61+
PLUS=64
62+
PRIORITY=65
63+
PROGRAM=66
64+
PosDigit=67
65+
QUOTE=68
66+
RANGLE=69
67+
RCURLY=70
68+
REAL=71
69+
REAL_LIT=72
70+
RECIPE=73
71+
RECIPES=74
72+
RPAR=75
73+
SEMI=76
74+
SHARP=77
75+
SLASH=78
76+
SL_COMMENT=79
77+
STAR=80
78+
STRING=81
79+
STRING_LIT=82
80+
TRUE=83
81+
TRY=84
82+
UNDER=85
83+
UNTIL=86
84+
VAR=87
85+
WHILE=88
86+
WS=89

src/main/resources/nl/utwente/groove/resource/antlr/CtrlChecker.g

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ stat
144144
)*
145145
{ helper.endBranch(); }
146146
)
147+
| HALT
147148
| ^( STAR
148149
{ helper.startBranch(); }
149150
stat

src/main/resources/nl/utwente/groove/resource/antlr/CtrlChecker.tokens

Lines changed: 52 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -32,54 +32,55 @@ FALSE=34
3232
FUNCTION=35
3333
FUNCTIONS=36
3434
GEQ=37
35-
ID=38
36-
IF=39
37-
IMPORT=40
38-
IMPORTS=41
39-
INT=42
40-
INT_LIT=43
41-
IntegerNumber=44
42-
LANGLE=45
43-
LCURLY=46
44-
LEQ=47
45-
LPAR=48
46-
Letter=49
47-
MINUS=50
48-
ML_COMMENT=51
49-
NEQ=52
50-
NODE=53
51-
NOT=54
52-
NonIntegerNumber=55
53-
OR=56
54-
OTHER=57
55-
OUT=58
56-
PACKAGE=59
57-
PAR=60
58-
PARS=61
59-
PERCENT=62
60-
PLUS=63
61-
PRIORITY=64
62-
PROGRAM=65
63-
PosDigit=66
64-
QUOTE=67
65-
RANGLE=68
66-
RCURLY=69
67-
REAL=70
68-
REAL_LIT=71
69-
RECIPE=72
70-
RECIPES=73
71-
RPAR=74
72-
SEMI=75
73-
SHARP=76
74-
SLASH=77
75-
SL_COMMENT=78
76-
STAR=79
77-
STRING=80
78-
STRING_LIT=81
79-
TRUE=82
80-
TRY=83
81-
UNDER=84
82-
UNTIL=85
83-
VAR=86
84-
WHILE=87
85-
WS=88
35+
HALT=38
36+
ID=39
37+
IF=40
38+
IMPORT=41
39+
IMPORTS=42
40+
INT=43
41+
INT_LIT=44
42+
IntegerNumber=45
43+
LANGLE=46
44+
LCURLY=47
45+
LEQ=48
46+
LPAR=49
47+
Letter=50
48+
MINUS=51
49+
ML_COMMENT=52
50+
NEQ=53
51+
NODE=54
52+
NOT=55
53+
NonIntegerNumber=56
54+
OR=57
55+
OTHER=58
56+
OUT=59
57+
PACKAGE=60
58+
PAR=61
59+
PARS=62
60+
PERCENT=63
61+
PLUS=64
62+
PRIORITY=65
63+
PROGRAM=66
64+
PosDigit=67
65+
QUOTE=68
66+
RANGLE=69
67+
RCURLY=70
68+
REAL=71
69+
REAL_LIT=72
70+
RECIPE=73
71+
RECIPES=74
72+
RPAR=75
73+
SEMI=76
74+
SHARP=77
75+
SLASH=78
76+
SL_COMMENT=79
77+
STAR=80
78+
STRING=81
79+
STRING_LIT=82
80+
TRUE=83
81+
TRY=84
82+
UNDER=85
83+
UNTIL=86
84+
VAR=87
85+
WHILE=88
86+
WS=89

0 commit comments

Comments
 (0)