* Pandi, Krisztian
* Raduly, Csaba
* Szabados, Kristof
+ * Szabo, Bence Janos
* Szabo, Janos Zoltan – initial implementation
* Szalai, Gabor
* Tatarka, Gabor
Statement **elements;
} stmt_list;
+ struct {
+ size_t nElements;
+ const char **elements;
+ } uid_list;
struct {
Value *lower;
IdentifierOrAddressKeyword StructFieldRef PredefOrIdentifier
%type <string_val> CstringList
%type <ustring_val> Quadruple
+%type <uid_list> USI UIDlike
%type <typetype> PredefinedType
%type <portoperationmode> PortOperationMode
optArrayDef
optExtendedFieldReference
FriendModuleDef
+USI
+UIDlike
+
%destructor {
delete $$.lower;
delete $1;
$$->set_location(infile, @$);
}
+| USI
+ {
+ $$ = new Value(Value::V_USTR, new ustring($1.elements, $1.nElements));
+ for(size_t i = 0; i < $1.nElements; ++i) {
+ Free((char*)$1.elements[i]);
+ }
+ Free($1.elements);
+ $$->set_location(infile, @$);
+ }
;
CstringList:
}
;
+USI:
+ CharKeyword '(' optError UIDlike optError ')'
+ {
+ $$ = $4;
+ }
+;
+
+UIDlike:
+ Cstring
+ {
+ $$.nElements = 1;
+ $$.elements = (const char**)
+ Realloc($$.elements, ($$.nElements) * sizeof(*$$.elements));
+ $$.elements[$$.nElements-1] = $1;
+ }
+| UIDlike optError ',' optError Cstring {
+ $$.nElements = $1.nElements + 1;
+ $$.elements = (const char**)
+ Realloc($1.elements, ($$.nElements) * sizeof(*$$.elements));
+ $$.elements[$$.nElements-1] = $5;
+ }
+;
+
Quadruple: // 479
CharKeyword '(' optError Group optError ',' optError Plane optError ','
optError Row optError ',' optError Cell optError ')'