1 /* Cycript - Optimizing JavaScript Compiler/Runtime
 
   2  * Copyright (C) 2009-2013  Jay Freeman (saurik)
 
   5 /* GNU General Public License, Version 3 {{{ */
 
   7  * Cycript is free software: you can redistribute it and/or modify
 
   8  * it under the terms of the GNU General Public License as published
 
   9  * by the Free Software Foundation, either version 3 of the License,
 
  10  * or (at your option) any later version.
 
  12  * Cycript is distributed in the hope that it will be useful, but
 
  13  * WITHOUT ANY WARRANTY; without even the implied warranty of
 
  14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  15  * GNU General Public License for more details.
 
  17  * You should have received a copy of the GNU General Public License
 
  18  * along with Cycript.  If not, see <http://www.gnu.org/licenses/>.
 
  28 #include "Standard.hpp"
 
  69     struct Element *elements;
 
  73 #define JOC_TYPE_INOUT  (1 << 0)
 
  74 #define JOC_TYPE_IN     (1 << 1)
 
  75 #define JOC_TYPE_BYCOPY (1 << 2)
 
  76 #define JOC_TYPE_OUT    (1 << 3)
 
  77 #define JOC_TYPE_BYREF  (1 << 4)
 
  78 #define JOC_TYPE_CONST  (1 << 5)
 
  79 #define JOC_TYPE_ONEWAY (1 << 6)
 
  82     enum Primitive primitive;
 
  92         struct Signature signature;
 
  96 struct Type *joc_parse_type(char **name, char eos, bool variable, bool signature);
 
  97 void joc_parse_signature(struct Signature *signature, char **name, char eos, bool variable);
 
  99 _finline bool IsFunctional(Primitive primitive) {
 
 100     return primitive == block_P || primitive == function_P;
 
 103 _finline bool IsAggregate(Primitive primitive) {
 
 104     return primitive == struct_P || primitive == union_P;
 
 109 #endif/*SIG_TYPES_H*/