1 /* Cycript - Optimizing JavaScript Compiler/Runtime
 
   2  * Copyright (C) 2009-2015  Jay Freeman (saurik)
 
   5 /* GNU Affero General Public License, Version 3 {{{ */
 
   7  * This program is free software: you can redistribute it and/or modify
 
   8  * it under the terms of the GNU Affero General Public License as published by
 
   9  * the Free Software Foundation, either version 3 of the License, or
 
  10  * (at your option) any later version.
 
  12  * This program is distributed in the hope that it will be useful,
 
  13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
  14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  15  * GNU Affero General Public License for more details.
 
  17  * You should have received a copy of the GNU Affero General Public License
 
  18  * along with this program.  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*/