Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
OpenGEODE
Commits
65e0a869
Commit
65e0a869
authored
Aug 10, 2014
by
Maxime Perrotin
Browse files
Added syntax check for CHOICE selectors
parent
6ccdef40
Changes
2
Hide whitespace changes
Inline
Side-by-side
ogParser.py
View file @
65e0a869
...
@@ -1527,12 +1527,18 @@ def selector_expression(root, context):
...
@@ -1527,12 +1527,18 @@ def selector_expression(root, context):
field_name
=
root
.
children
[
1
].
text
.
replace
(
'_'
,
'-'
).
lower
()
field_name
=
root
.
children
[
1
].
text
.
replace
(
'_'
,
'-'
).
lower
()
try
:
try
:
if
receiver_bty
.
kind
==
'ChoiceType'
:
errors
.
append
(
error
(
root
,
'Wrong syntax for a CHOICE selector. '
'Use "var := {field}: value" instead of '
'"var!{field} := value"'
.
format
(
field
=
field_name
)))
for
n
,
f
in
receiver_bty
.
Children
.
viewitems
():
for
n
,
f
in
receiver_bty
.
Children
.
viewitems
():
if
n
.
lower
()
==
field_name
:
if
n
.
lower
()
==
field_name
:
node
.
exprType
=
f
.
type
node
.
exprType
=
f
.
type
break
break
else
:
else
:
msg
=
'Field "{}" not found in expression {}'
.
format
(
field_name
)
msg
=
'Field "{}" not found in expression {}'
.
format
(
field_name
,
receiver
.
inputString
)
errors
.
append
(
error
(
root
,
msg
))
errors
.
append
(
error
(
root
,
msg
))
except
AttributeError
:
except
AttributeError
:
# When parsing for syntax or copy-paste, receiver_bty may
# When parsing for syntax or copy-paste, receiver_bty may
...
...
tests/regression/test-branchcoverage/myfunction.pr
View file @
65e0a869
...
@@ -22,7 +22,7 @@ dcl VAR5 mychoice;
...
@@ -22,7 +22,7 @@ dcl VAR5 mychoice;
DECISION var1
DECISION var1
/* CIF COMMENT (615, 128), (191, 35) */
/* CIF COMMENT (615, 128), (191, 35) */
COMMENT 'Check range overlapping';
COMMENT 'Check range overlapping';
/* CIF ANSWER (3
70
, 191), (90, 24) */
/* CIF ANSWER (3
66
, 191), (90, 24) */
(-500:500):
(-500:500):
/* CIF ANSWER (480, 191), (70, 24) */
/* CIF ANSWER (480, 191), (70, 24) */
(=0):
(=0):
...
@@ -31,68 +31,81 @@ dcl VAR5 mychoice;
...
@@ -31,68 +31,81 @@ dcl VAR5 mychoice;
/* CIF ANSWER (660, 191), (70, 24) */
/* CIF ANSWER (660, 191), (70, 24) */
(>0):
(>0):
ENDDECISION;
ENDDECISION;
/* CIF DECISION (525, 2
45
), (70, 50) */
/* CIF DECISION (525, 2
30
), (70, 50) */
DECISION var2
DECISION var2
/* CIF COMMENT (615, 2
52
), (241, 35) */
/* CIF COMMENT (615, 2
37
), (241, 35) */
COMMENT 'Check unreachable branch check';
COMMENT 'Check unreachable branch check';
/* CIF ANSWER (38
9
, 3
15
), (53, 33) */
/* CIF ANSWER (38
5
, 3
00
), (53, 33) */
(<0):
(<0):
/* CIF ANSWER (47
1
, 3
15
), (68, 33) */
/* CIF ANSWER (4
6
7, 3
00
), (68, 33) */
(>300):
(>300):
/* CIF ANSWER (5
68
, 3
15
), (72, 33) */
/* CIF ANSWER (5
57
, 3
00
), (72, 33) */
(-10:-5):
(-10:-5):
/* CIF ANSWER (6
42
, 3
15
), (86, 24) */
/* CIF ANSWER (6
38
, 3
00
), (86, 24) */
(256:300):
(256:300):
ENDDECISION;
ENDDECISION;
/* CIF DECISION (52
5
,
405
), (71, 50) */
/* CIF DECISION (52
4
,
348
), (71, 50) */
DECISION var3;
DECISION var3;
/* CIF ANSWER (4
70
, 4
75
), (71, 24) */
/* CIF ANSWER (4
66
, 4
18
), (71, 24) */
(10:20):
(10:20):
/* CIF ANSWER (570, 4
75
), (70, 24) */
/* CIF ANSWER (570, 4
18
), (70, 24) */
(/=50):
(/=50):
ENDDECISION;
ENDDECISION;
/* CIF DECISION (49
9
,
529
), (123, 50) */
/* CIF DECISION (49
8
,
457
), (123, 50) */
DECISION present(var4)
DECISION present(var4)
/* CIF COMMENT (643,
536
), (252, 35) */
/* CIF COMMENT (643,
464
), (252, 35) */
COMMENT 'Check coverage of CHOICE answers';
COMMENT 'Check coverage of CHOICE answers';
/* CIF ANSWER (527, 5
99
), (66, 34) */
/* CIF ANSWER (527, 5
27
), (66, 34) */
(a):
(a):
ENDDECISION;
ENDDECISION;
/* CIF DECISION (523,
693
), (74, 50) */
/* CIF DECISION (523,
576
), (74, 50) */
DECISION var5
DECISION var5
/* CIF COMMENT (611,
691
), (241, 50) */
/* CIF COMMENT (611,
574
), (241, 50) */
COMMENT 'Check duplicates and
COMMENT 'Check duplicates and
coverage of ENUMERATED values';
coverage of ENUMERATED values';
/* CIF ANSWER (390,
763
), (70, 24) */
/* CIF ANSWER (390,
646
), (70, 24) */
(hello):
(hello):
/* CIF ANSWER (4
70, 763
), (72, 24) */
/* CIF ANSWER (4
66, 646
), (72, 24) */
(world):
(world):
/* CIF ANSWER (5
62, 763
), (72, 24) */
/* CIF ANSWER (5
58, 646
), (72, 24) */
(world):
(world):
/* CIF ANSWER (661,
763
), (70, 24) */
/* CIF ANSWER (661,
646
), (70, 24) */
(hello):
(hello):
ENDDECISION;
ENDDECISION;
/* CIF DECISION (525,
837
), (70, 50) */
/* CIF DECISION (525,
686
), (70, 50) */
DECISION var5
DECISION var5
/* CIF COMMENT (615,
844
), (224, 35) */
/* CIF COMMENT (615,
693
), (224, 35) */
COMMENT 'should be no error due to ELSE';
COMMENT 'should be no error due to ELSE';
/* CIF ANSWER (4
12, 907
), (105, 24) */
/* CIF ANSWER (4
08, 756
), (105, 24) */
(howareyou):
(howareyou):
/* CIF ANSWER (608,
907
), (70, 24) */
/* CIF ANSWER (608,
756
), (70, 24) */
else:
else:
ENDDECISION;
ENDDECISION;
/* CIF NEXTSTATE (525, 981), (70, 35) */
/* CIF TASK (496, 795), (127, 35) */
TASK var4!uia:= true
/* CIF COMMENT (630, 795), (160, 40) */
COMMENT 'incorrect syntax and
non-existent field';
/* CIF TASK (500, 845), (120, 35) */
TASK var4!a := true
/* CIF COMMENT (640, 842), (135, 40) */
COMMENT 'incorrect syntax';
/* CIF TASK (469, 895), (180, 35) */
TASK var5 := howareyou:true;
/* CIF TASK (507, 945), (105, 35) */
TASK tutu!i!y := 5;
/* CIF NEXTSTATE (525, 995), (70, 35) */
NEXTSTATE wait;
NEXTSTATE wait;
/* CIF STATE (132
4
, 193), (80, 35) */
/* CIF STATE (132
0
, 193), (80, 35) */
STATE *(wait);
STATE *(wait);
/* CIF INPUT (127
7
, 248), (173, 35) */
/* CIF INPUT (127
3
, 248), (173, 35) */
INPUT start_something(var2);
INPUT start_something(var2);
/* CIF NEXTSTATE (1329, 298), (70, 35) */
/* CIF NEXTSTATE (1329, 298), (70, 35) */
NEXTSTATE -;
NEXTSTATE -;
ENDSTATE;
ENDSTATE;
/* CIF STATE (1215, 52), (70, 35) */
/* CIF STATE (1215, 52), (70, 35) */
STATE wait;
STATE wait;
/* CIF INPUT (116
6
, 107), (137, 40) */
/* CIF INPUT (116
2
, 107), (137, 40) */
INPUT start_something
INPUT start_something
(var2);
(var2);
/* CIF NEXTSTATE (1203, 162), (70, 35) */
/* CIF NEXTSTATE (1203, 162), (70, 35) */
...
@@ -100,12 +113,12 @@ coverage of ENUMERATED values';
...
@@ -100,12 +113,12 @@ coverage of ENUMERATED values';
ENDSTATE;
ENDSTATE;
/* CIF STATE (958, 325), (70, 35) */
/* CIF STATE (958, 325), (70, 35) */
STATE *;
STATE *;
/* CIF INPUT (90
5
, 380), (173, 35) */
/* CIF INPUT (90
1
, 380), (173, 35) */
INPUT start_something(var2);
INPUT start_something(var2);
/* CIF NEXTSTATE (958, 430), (70, 35) */
/* CIF NEXTSTATE (958, 430), (70, 35) */
NEXTSTATE wait;
NEXTSTATE wait;
ENDSTATE;
ENDSTATE;
/* CIF STATE (112
9
, 294), (97, 35) */
/* CIF STATE (112
5
, 294), (97, 35) */
STATE wait, toto;
STATE wait, toto;
/* CIF INPUT (1089, 349), (178, 35) */
/* CIF INPUT (1089, 349), (178, 35) */
INPUT start_something (var2);
INPUT start_something (var2);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment