Update to 2.0.0 tree from current Fremantle build
[opencv] / apps / cvenv / EiC / typemod.c
diff --git a/apps/cvenv/EiC/typemod.c b/apps/cvenv/EiC/typemod.c
deleted file mode 100644 (file)
index bd0c2a3..0000000
+++ /dev/null
@@ -1,436 +0,0 @@
-/* typemod%.c
- *
- *     (C) Copyright Apr 15 1995, Edmond J. Breen.
- *                ALL RIGHTS RESERVED.
- * This code may be copied for personal, non-profit use only.
- *
- * Type Construction
- */
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <stdarg.h>
-#include "global.h"
-#include "func.h"
-#include "xalloc.h"
-#include "metric.h"
-#include "cdecl.h"
-
-#define crt_type()  (type_expr *) xcalloc(sizeof(type_expr), 1)
-#define rtn_type(x) xfree(x)
-
-
-int EiC_gettype(type_expr * t)
-{
-    if(t)
-       return t->obj;
-    else
-       return -1;
-}
-void *EiC_getInf(type_expr * t)
-{
-    if(t)
-       return t->u.inf;
-    else
-       return NULL;
-       
-}
-
-type_expr *EiC_copytype(type_expr * t)
-{
-    type_expr *copy = NULL, *h;
-    if (t) {
-       copy = h = crt_type();
-       *h = *t;
-       h->alias = 1;
-       t = t->nxt;
-       while (t) {
-           h->nxt = crt_type();
-           h = h->nxt;
-           *h = *t;
-           h->alias = 1;
-           t = t->nxt;
-       }
-    }
-    return copy;
-}
-
-type_expr *EiC_copyBaseType(type_expr * t)
-{
-    type_expr *copy = NULL, *h;
-    while(t && !t->base)
-       t = t->nxt;
-    if (t) {
-       copy = h = crt_type();
-       *h = *t;
-       h->alias = 1;
-       t = t->nxt;
-       while (t) {
-           h->nxt = crt_type();
-           h = h->nxt;
-           *h = *t;
-           h->alias = 1;
-           t = t->nxt;
-       }
-    }
-    return copy;
-}
-
-type_expr *EiC_transtype(type_expr * t)
-{
-    type_expr *copy = NULL, *h;
-    if (t) {
-       copy = h = crt_type();
-       *h = *t;
-       t = t->nxt;
-       while (t) {
-           h->nxt = crt_type();
-           h = h->nxt;
-           *h = *t;
-           t = t->nxt;
-       }
-    }
-    return copy;
-}
-
-type_expr *EiC_addtype(unsigned obj, type_expr * t)
-{
-  extern int EiC_ptrSafe;
-  type_expr *new;
-  new = crt_type();
-  if (new) {
-    new->obj = obj;
-    new->nxt = t;
-  }
-  if(obj == t_pointer) {
-    if(EiC_ptrSafe) 
-      setSafe(new);
-    else
-      setUnSafe(new);
-  }
-  return new;
-}
-
-type_expr *EiC_catTypes(type_expr *t1, type_expr * t2)
-{
-    type_expr *p;
-    p = t1;
-    if(p) {
-       while(p->nxt)
-           p = p->nxt;
-       p->nxt = t2;
-       return t1;
-    }
-    return t2;
-}
-
-int compareConst(type_expr * t1, type_expr *t2)
-{
-    while (t1 && t2)
-       if(!isconst(t1) && isconst(t2))
-           return 0;
-       else {
-           t1 = t1->nxt;
-           t2 = t2->nxt;
-       }
-    return 1;
-}
-
-int EiC_compareSafe(type_expr * t1, type_expr *t2)
-{
-    /* compare  Safe  */
-    while (t1 && t2 && (EiC_gettype(t1) == EiC_gettype(t2)))
-       if(issafe(t1) != issafe(t2))
-           return 0;
-       else {
-           t1 = t1->nxt;
-           t2 = t2->nxt;
-       }
-    return 1;
-}
-
-
-int EiC_compatibletypes(type_expr *t1, type_expr * t2)
-{
-    /* A weaker version of sametypes */
-    switch(t1->obj) {
-    case t_pointer:
-    case t_array:     /* do pointers & arrays */
-       if(t2->obj != t_pointer && t2->obj != t_array)
-           break;
-       if (t1->obj == t_pointer && t2->obj == t_pointer)
-           if (t1->nxt->obj == t_void ||
-               t2->nxt->obj == t_void)
-               return 1;
-       return EiC_sametypes(t1->nxt, t2->nxt);
-    } 
-    return EiC_sametypes(t1,t2);
-}
-
-int EiC_sametypes(type_expr * t1, type_expr * t2)
-{
-    int i;
-    switch(t1->obj) {
-    case t_struct:     /* do structures */
-       if (t2->obj != t_struct)
-           return 0;
-       else {
-           struct_t *s1, *s2;
-           s1 = (struct_t *) EiC_getInf(t1);
-           s2 = (struct_t *) EiC_getInf(t2);
-           if(s1 == s2)
-               return 1;
-           else if (s1->n != s2->n)
-               return 0;
-           else {
-               for (i = 0; i < s1->n; i++) {
-                   if (!EiC_sametypes(s1->type[i], s2->type[i]))
-                       return 0;
-                   if(strcmp(s1->id[i],s2->id[i]) != 0)
-                       return 0;
-               }
-           }
-       }
-       return 1;
-    case t_builtin:
-    case t_func:
-    case t_funcdec:  /* check functions are compatible */
-       if(t2->obj != t_func && t2->obj != t_funcdec &&
-          t2->obj != t_builtin)
-           break;
-       return EiC_sameFuncs(t1,t2);
-    case t_pointer:
-    case t_array:     /* do pointers & arrays */
-       if(t2->obj != t1->obj)
-           break;
-       if (t1->obj == t_pointer && t2->obj == t_pointer)
-           if (t1->nxt->obj == t_void ||
-               t2->nxt->obj == t_void)
-               return 1;
-       return EiC_sametypes(t1->nxt, t2->nxt);
-    case t_int:
-    case t_enum:
-       if(t2->obj == t_int || t2->obj == t_enum)
-           return 1;
-
-    } 
-    while (t1 && t2) {
-       if (t1->obj != t2->obj)
-           break;
-       t1 = t1->nxt;
-       t2 = t2->nxt;
-    }
-    if (t1 != t2)
-       return 0;
-    return 1;
-}
-
-void EiC_setAsBaseType(type_expr * t)
-{
-    while (t) {
-       t->base = 1;
-       t = t->nxt;
-    }
-}
-
-int EiC_bastype(type_expr * t)
-{
-    while (t && t->nxt)
-       t = t->nxt;
-    if(t)
-       return t->obj;
-    else
-       return -1;
-}
-static void *basinf(type_expr * t)
-{
-    while (t && t->nxt)
-       t = t->nxt;
-    if(t)
-       return t->u.inf;
-    else
-       return NULL;
-}
-static char basalias(type_expr * t)
-{
-    while (t && t->nxt)
-       t = t->nxt;
-    if(t)
-       return t->alias;
-    else
-       return -1;
-       
-}
-void EiC_set_bastype(unsigned t, type_expr * typ)
-{
-    while (typ && typ->nxt)
-       typ = typ->nxt;
-    if(typ)
-       typ->obj = t;
-}
-
-void EiC_setaliases(type_expr * t, char a)
-{
-    while (t) {
-       t->alias = a;
-       t = t->nxt;
-    }
-}
-
-static void free1type(type_expr * type)
-{
-    void EiC_free_func_inf(func_t * f);
-    void EiC_free_un_mem(type_expr * e);
-
-    if (!type->alias) {
-       int t;
-       if ((t = EiC_gettype(type)) == t_func || t == t_funcdec
-           || t== t_builtin)
-           EiC_free_func_inf(EiC_getInf(type));
-       else if (t == t_struct || t == t_union)
-           EiC_free_un_mem(type);
-    }
-    rtn_type(type);
-}
-
-
-void *EiC_freetype(type_expr * t)
-{
-    type_expr *f;
-    if(!t)
-       return NULL;
-    if (t) 
-       do {
-           f = t->nxt;
-           free1type(t);
-           t = f;
-       } while (t);
-    return NULL;
-}
-
-type_expr *EiC_revtype(type_expr * t)
-{
-    /*
-     * reverse the type list by reversing
-     * separate-ably the dec-spec and decl 
-     * parts.
-     *    REM  decl-spec is the base type(s).
-     */
-    type_expr *h, *r = NULL;
-    if (t) {
-       while (t && !t->base) {
-           r = EiC_addtype(t->obj, r);
-           setInf(r,EiC_getInf(t));
-           r->alias = t->alias;
-           r->base = t->base;
-           r->qual = t->qual;
-           h = t->nxt;
-           t->alias = 1;
-           free1type(t);
-           t = h;
-       }
-       if(r) {
-           h = r;
-           while(h->nxt)
-               h = h->nxt;
-           h->nxt = t;
-       } else
-           r = t;
-    }
-    return r;
-}
-
-
-     
-type_expr *EiC_succType(type_expr * t)
-{
-  if (t) {
-    type_expr *p;
-    p = t->nxt;
-    free1type(t);
-    return p;
-  }
-  return t;
-}
-
-void EiC_exchtype(int obj, type_expr * t)
-{
-  extern int EiC_ptrSafe;
-  t->obj = obj;
-  if(obj == t_pointer) {
-    if(EiC_ptrSafe)
-      setSafe(t);
-    else
-      setUnSafe(t);
-  }
-}
-
-int EiC_get_sizeof(type_expr * t)
-{
-    switch (EiC_gettype(t)) {
-      case t_uchar:
-      case t_char:   return EiC_metric[m_char][0];
-      case t_short:
-      case t_ushort: return EiC_metric[m_short][0];
-      case t_enum:
-      case t_uint:
-      case t_int:    return EiC_metric[m_int][0];
-      case t_long:
-      case t_ulong:  return EiC_metric[m_long][0];
-    case t_llong:    return EiC_metric[m_llong][0];
-      case t_float:  return EiC_metric[m_float][0];
-      case t_double: return EiC_metric[m_double][0];
-      case t_lval:   return EiC_get_sizeof(t->nxt);
-      case t_pointer:
-       if(isunsafe(t))
-         return EiC_metric[m_pointer][0];
-       else
-         return sizeof(ptr_t); 
-      case t_array:  return EiC_get_sizeof(t->nxt) * getNumElems(t);
-      case t_struct:
-      case t_union:  return ((struct_t *) EiC_getInf(t))->tsize;
-
-    } return 0;
-}
-
-int EiC_get_align(type_expr * t)
-{
-    switch (EiC_gettype(t)) {
-      case t_uchar:
-      case t_char:   return EiC_metric[m_char][1];
-      case t_short:
-      case t_ushort: return EiC_metric[m_short][1];
-      case t_uint:
-      case t_int:    return EiC_metric[m_int][1];
-      case t_long:
-      case t_ulong:  return EiC_metric[m_long][1];
-      case t_llong:    return EiC_metric[m_llong][1];
-      case t_float:  return EiC_metric[m_float][1];
-      case t_double: return EiC_metric[m_double][1];
-      case t_lval:   return EiC_get_align(t->nxt);
-      case t_pointer:return EiC_metric[m_pointer][1];
-      case t_array:  return EiC_get_align(t->nxt);
-      case t_struct:
-      case t_union:  return ((struct_t *) EiC_getInf(t))->align;
-    }
-    return 0;
-}
-
-type_expr *EiC_getcontype(type_expr * t1, type_expr * t2)
-{
-    if (t1 == NULL)
-       return EiC_copytype(t2);
-    else
-       return t1;
-}
-
-
-
-
-
-
-
-
-
-
-