X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/ea2d184cbcdf25cfa51727f175356fe2ee211136..d428e0289e70ff5725f7b606ce1a69bd96e110d3:/sig/types.hpp diff --git a/sig/types.hpp b/sig/types.hpp index 3e8d1f2..e6240a1 100644 --- a/sig/types.hpp +++ b/sig/types.hpp @@ -1,7 +1,28 @@ +/* Cycript - Optimizing JavaScript Compiler/Runtime + * Copyright (C) 2009-2012 Jay Freeman (saurik) +*/ + +/* GNU Lesser General Public License, Version 3 {{{ */ +/* + * Cycript is free software: you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Cycript is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Cycript. If not, see . +**/ +/* }}} */ + #ifndef SIG_TYPES_H #define SIG_TYPES_H -#include "minimal/stdlib.h" +#include "Standard.hpp" namespace sig { @@ -10,7 +31,8 @@ enum Primitive { union_P = '(', string_P = '*', selector_P = ':', - object_P = '@', + block_P = '?', + object_P = 'W', boolean_P = 'B', uchar_P = 'C', uint_P = 'I', @@ -62,13 +84,16 @@ struct Type { } data; struct Signature signature; - char *extra; } data; }; struct Type *joc_parse_type(char **name, char eos, bool variable, bool signature); void joc_parse_signature(struct Signature *signature, char **name, char eos, bool variable); +_finline bool IsAggregate(Primitive primitive) { + return primitive == struct_P || primitive == union_P; +} + } #endif/*SIG_TYPES_H*/