%type <bool_> MessageScope
%type <type_> ModifiedType
%type <typedIdentifier_> PrefixedType
+%type <expression_> PrimitiveType
%type <type_> QualifiedType
%type <argument_> SelectorCall_
%type <argument_> SelectorCall
| "*" PrefixedType { CYSetLast($2->type_) = CYNew CYTypePointerTo(); $$ = $2; }
;
+PrimitiveType
+ : Variable { $$ = $1; }
+ | "void" { $$ = CYNew cy::Syntax::New(CYNew CYVariable(CYNew CYIdentifier("Type")), CYNew CYArgument(CYNew CYString("v"))); }
+ ;
+
QualifiedType
- : Variable { $$ = CYNew CYTypeVariable($1); }
+ : PrimitiveType { $$ = CYNew CYTypeVariable($1); }
| "const" QualifiedType { $$ = CYNew CYTypeConstant($2); }
;
TypeOpt
: "(" LexSetRegExp EncodedType ")" { $$ = $3; }
- | "(" LexSetRegExp "void" ")" { $$ = CYNew CYString("v"); }
| { $$ = NULL; }
;