@@ -66,7 +66,7 @@ goto rule ## func ## Ex; }}
6666 #define or_nil(x) (x != 0 ? x : mk_nil())
6767 #define mk_some_or_none(x) (x ? mk_some(x) : mk_none())
6868 #define mk_tuple2(x1,x2) mk_box2(0,x1,x2)
69- #define make_redeclare_keywords(replaceable,redeclare) (replaceable && redeclare ? Absyn__REDECLARE_5fREPLACEABLE : replaceable ? Absyn__REPLACEABLE : redeclare ? Absyn__REDECLARE : NULL)
69+ #define make_redeclare_keywords(replaceable,redeclare) ((( replaceable) && ( redeclare)) ? Absyn__REDECLARE_5fREPLACEABLE : (( replaceable) ? Absyn__REPLACEABLE : (( redeclare) ? Absyn__REDECLARE : NULL)) )
7070 #define make_inner_outer(i,o) (i && o ? Absyn__INNEROUTER : i ? Absyn__INNER : o ? Absyn__OUTER : Absyn__UNSPECIFIED)
7171#if 0
7272 /* Enable if you don' t want to generate the tree */
@@ -330,6 +330,7 @@ element_list returns [void* ast] @init {
330330element returns [ void* ast] @declarations {
331331 void * final;
332332 void * innerouter;
333+ void * redecl;
333334} :
334335 ic= import_clause { $ast = Absyn__ELEMENT(RML_FALSE,mk_none(),Absyn__UNSPECIFIED,mk_scon(" import" ), ic, INFO($start), mk_none());}
335336 | ec= extends_clause { $ast = Absyn__ELEMENT(RML_FALSE,mk_none(),Absyn__UNSPECIFIED,mk_scon(" extends" ), ec, INFO($start),mk_none());}
@@ -338,21 +339,21 @@ element returns [void* ast] @declarations {
338339 ( ( cdef= class_definition[ f != NULL] | cc= component_clause )
339340 {
340341 if (!cc)
341- $ast = Absyn__ELEMENT(final, mk_some_or_none (make_redeclare_keywords(false ,r) ),
342+ $ast = Absyn__ELEMENT(final, r ! = NULL ? mk_some (make_redeclare_keywords(false ,r ! = NULL)) : mk_none( ),
342343 innerouter, mk_scon(" ??" ),
343344 Absyn__CLASSDEF(RML_FALSE, cdef.ast),
344345 INFO($start), mk_none());
345346 else
346- $ast = Absyn__ELEMENT(final, mk_some_or_none (make_redeclare_keywords(false ,r) ), innerouter,
347+ $ast = Absyn__ELEMENT(final, r ! = NULL ? mk_some (make_redeclare_keywords(false ,r ! = NULL)) : mk_none( ), innerouter,
347348 mk_scon(" component" ), cc, INFO($start), mk_none());
348349 }
349350 | (REPLACEABLE ( cdef= class_definition[ f != NULL] | cc= component_clause ) constr= constraining_clause_comment? )
350351 {
351352 if (cc)
352- $ast = Absyn__ELEMENT(final, mk_some_or_none (make_redeclare_keywords(true ,r)), innerouter,
353+ $ast = Absyn__ELEMENT(final, mk_some (make_redeclare_keywords(true ,r ! = NULL )), innerouter,
353354 mk_scon(" replaceable component" ), cc, INFO($start), mk_some_or_none(constr));
354355 else
355- $ast = Absyn__ELEMENT(final, mk_some_or_none (make_redeclare_keywords(true ,r)), innerouter,
356+ $ast = Absyn__ELEMENT(final, mk_some (make_redeclare_keywords(true ,r ! = NULL )), innerouter,
356357 mk_scon(" replaceable ??" ), Absyn__CLASSDEF(RML_TRUE, cdef.ast), INFO($start), mk_some_or_none(constr));
357358 }
358359 )
0 commit comments