From: Jay Freeman (saurik) Date: Sun, 3 Jan 2016 21:44:53 +0000 (-0800) Subject: Support typedef and @encode with a void specifier. X-Git-Tag: v0.9.590~73 X-Git-Url: https://git.saurik.com/cycript.git/commitdiff_plain/0846ea04c5e644dba19e4f2555e4518540ec4e01?hp=17e71f88011c8c04350d38e999ac9047152e7325 Support typedef and @encode with a void specifier. --- diff --git a/Parser.ypp.in b/Parser.ypp.in index c2f48ce..3423e0d 100644 --- a/Parser.ypp.in +++ b/Parser.ypp.in @@ -2145,11 +2145,13 @@ TypedIdentifierField TypedIdentifierEncoding : TypedIdentifierNo[pass] { $$ = $pass; } | TypeQualifierLeftOpt[modifier] "struct" "{" StructFieldListOpt[fields] "}" TypeQualifierRightOpt[typed] { if ($typed->identifier_ != NULL) CYERR($typed->location_, "unexpected identifier"); $$ = $typed; $$->specifier_ = CYNew CYTypeStruct(NULL, CYNew CYStructTail($fields)); CYSetLast($modifier) = $$->modifier_; $$->modifier_ = $modifier; } + | "void" TypeSignifierNone[typed] { $$ = $typed; $$->specifier_ = CYNew CYTypeVoid(); } ; TypedIdentifierDefinition : TypedIdentifierYes[pass] { $$ = $pass; } | TypeQualifierLeftOpt[modifier] "struct" IdentifierTypeOpt[name] "{" StructFieldListOpt[fields] "}" TypeQualifierRightOpt[typed] { if ($typed->identifier_ == NULL) CYERR($typed->location_, "expected identifier"); $$ = $typed; $$->specifier_ = CYNew CYTypeStruct($name, CYNew CYStructTail($fields)); CYSetLast($modifier) = $$->modifier_; $$->modifier_ = $modifier; } + | "void" TypeSignifier[typed] { $$ = $typed; $$->specifier_ = CYNew CYTypeVoid(); } ; PrimaryExpression