Skip to content

Commit cd5c422

Browse files
committed
- Don't accept partial functions in the parser except in function calls git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18517 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent fd504b6 commit cd5c422

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

Parser/Modelica.g

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,7 +1053,6 @@ expression returns [void* ast] :
10531053
( e=if_expression { ast = e; }
10541054
| e=simple_expression { ast = e; }
10551055
| e=code_expression { ast = e; }
1056-
| e=part_eval_function_expression { ast = e; }
10571056
| e=match_expression { ast = e; }
10581057
)
10591058
;
@@ -1368,7 +1367,7 @@ function_arguments returns [void* ast]
13681367
for_or_expression_list returns [void* ast, int isFor]
13691368
@init{ e = 0; el = 0; forind = 0; } :
13701369
( {LA(1)==IDENT || LA(1)==OPERATOR && LA(2) == EQUALS || LA(1) == RPAR || LA(1) == RBRACE}? { $ast = mk_nil(); $isFor = 0; }
1371-
| ( e=expression
1370+
| ( (e=expression | e=part_eval_function_expression)
13721371
( (COMMA el=for_or_expression_list2)
13731372
| (FOR forind=for_indices)
13741373
)?
@@ -1389,7 +1388,7 @@ for_or_expression_list returns [void* ast, int isFor]
13891388
for_or_expression_list2 returns [void* ast]
13901389
@init{ e = 0; el = 0; } :
13911390
{LA(2) == EQUALS}? { ast = mk_nil(); }
1392-
| e=expression (COMMA el=for_or_expression_list2)? { ast = mk_cons(e, or_nil(el)); }
1391+
| (e=expression | e=part_eval_function_expression) (COMMA el=for_or_expression_list2)? { ast = mk_cons(e, or_nil(el)); }
13931392
;
13941393
13951394
named_arguments returns [void* ast]
@@ -1399,7 +1398,7 @@ named_arguments returns [void* ast]
13991398
14001399
named_argument returns [void* ast]
14011400
@init{ id = 0; e = 0; } :
1402-
( id=IDENT | id=OPERATOR) EQUALS e=expression { ast = Absyn__NAMEDARG(token_to_scon(id),e); }
1401+
( id=IDENT | id=OPERATOR) EQUALS (e=expression | e=part_eval_function_expression) { ast = Absyn__NAMEDARG(token_to_scon(id),e); }
14031402
;
14041403
14051404
output_expression_list [int* isTuple] returns [void* ast]

0 commit comments

Comments
 (0)