From 0846ea04c5e644dba19e4f2555e4518540ec4e01 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sun, 3 Jan 2016 13:44:53 -0800 Subject: [PATCH] Support typedef and @encode with a void specifier. --- Parser.ypp.in | 2 ++ 1 file changed, 2 insertions(+) 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 -- 2.49.0