+/* Cycript (Objective-C): Type Encoding {{{ */
+SuffixedType
+ : { $$ = NULL; }
+ | "(" PrefixedType ")" { $$ = $2; }
+ | SuffixedType "[" NumericLiteral "]" { $$ = CYNew CYEncodedPart($1, "arrayOf", CYNew CYArgument($3)); }
+ ;
+
+PrefixedType
+ : SuffixedType { $$ = $1; }
+ | "*" PrefixedType { $$ = CYNew CYEncodedPart($2, "pointerTo"); }
+ ;
+
+ModifiedType
+ : Variable { $$ = CYNew CYEncodedType($1); }
+ | "const" ModifiedType { $2->base_ = CYNew CYCall(CYNew CYDirectMember($2->base_, CYNew CYString("constant"))); $$ = $2; }
+ ;
+
+TypedIdentifier
+ : ModifiedType PrefixedType { $1->parts_ = $2; $$ = $1;}
+ ;
+
+PrimaryExpression
+ : AtEncode "(" TypedIdentifier ")" { $$ = $3; }
+ ;
+/* }}} */