Skip to content

Commit 14c854e

Browse files
committed
add flags.var to parser for procedure params marked VAR
1 parent 9899ad9 commit 14c854e

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

include/express/type.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ struct TypeBody_ {
164164
* element = expression [ ':' repetition ] .
165165
* TODO exp2cxx and exp2py do not use this! Are all use cases handled by libexppp?
166166
*/
167+
unsigned var : 1; /** denotes variable marked 'VAR' - i.e. one where changes are propagated back to the caller */
167168
unsigned encoded : 1; /**< encoded string */
168169
} flags;
169170
Type base; /**< underlying base type if any can also contain true type if this type is a type reference */

src/express/expparse.y

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,11 +1121,11 @@ expression_list(A) ::= expression_list(B) TOK_COMMA expression(C).
11211121

11221122
var(A) ::= /* NULL */.
11231123
{
1124-
A.var = 1;
1124+
A.var = 0;
11251125
}
11261126
var(A) ::= TOK_VAR.
11271127
{
1128-
A.var = 0;
1128+
A.var = 1;
11291129
}
11301130

11311131
formal_parameter(A) ::= var(B) id_list(C) TOK_COLON parameter_type(D).
@@ -1140,7 +1140,7 @@ formal_parameter(A) ::= var(B) id_list(C) TOK_COLON parameter_type(D).
11401140

11411141
e = EXPcreate_from_symbol(Type_Attribute, tmp);
11421142
v = VARcreate(e, D);
1143-
v->flags.optional = B.var;
1143+
v->flags.var = B.var; /* NOTE this was flags.optional... ?! */
11441144
v->flags.parameter = true;
11451145
param->data = (Generic)v;
11461146

src/express/generated/expparse.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3131,14 +3131,14 @@ static void yy_reduce(
31313131
case 115: /* var ::= */
31323132
#line 1123 "expparse.y"
31333133
{
3134-
yygotominor.yy252.var = 1;
3134+
yygotominor.yy252.var = 0;
31353135
}
31363136
#line 3137 "expparse.c"
31373137
break;
31383138
case 116: /* var ::= TOK_VAR */
31393139
#line 1127 "expparse.y"
31403140
{
3141-
yygotominor.yy252.var = 0;
3141+
yygotominor.yy252.var = 1;
31423142
}
31433143
#line 3144 "expparse.c"
31443144
break;
@@ -3155,7 +3155,7 @@ static void yy_reduce(
31553155

31563156
e = EXPcreate_from_symbol(Type_Attribute, tmp);
31573157
v = VARcreate(e, yymsp[0].minor.yy297);
3158-
v->flags.optional = yymsp[-3].minor.yy252.var;
3158+
v->flags.var = yymsp[-3].minor.yy252.var; /* NOTE this was flags.optional... ?! */
31593159
v->flags.parameter = true;
31603160
param->data = (Generic)v;
31613161

src/express/generated/verification_info.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ set(baseline_perplex_version "1.0.0")
55
set(baseline_lempar_c_md5 60741b9dd886b77a5732a2e85d6d56b0)
66
set(baseline_perplex_template_c_md5 7db377251a8c99c835f06df129d95bed)
77
set(baseline_expscan_l_md5 c86358d3e57ce6916c28a63262fad6e6)
8-
set(baseline_expparse_y_md5 59a62d64cb9252e439308d45cbc4ff5d)
8+
set(baseline_expparse_y_md5 ab4adaa9f6b7430499cff3709fff7456)
99
set(baseline_expscan_c_md5 98381bfb4cbce672eb6f438e71c40101)
1010
set(baseline_expscan_h_md5 3052c058a37045b43f96e4c04039bce3)
11-
set(baseline_expparse_c_md5 9b859ebac1b57ee7b5b19e1bdaf43a5e)
11+
set(baseline_expparse_c_md5 e5ea5b4acf97bfb308e63e5ed7949acb)
1212
set(baseline_expparse_h_md5 e4a5599839b2a9f7a6915a0dcc7747b0)

src/express/token_type.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ struct type_flags {
1818
unsigned optional: 1;
1919
unsigned unique: 1;
2020
unsigned fixed: 1;
21-
unsigned var: 1; /* when formal is "VAR" */
21+
unsigned var: 1; /**< when formal is "VAR" */
2222
};
2323

2424
struct entity_body {

0 commit comments

Comments
 (0)