/*
** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
**
*/
# ifndef LCLCTYPESX_H
# define LCLCTYPESX_H
/*
** TypeSpecification is an enum defined for each of the valid C type.
*/
typedef enum
{
TS_UNKNOWN, TS_VOID, TS_CHAR, TS_INT,
TS_SIGNED, TS_UNSIGNED, TS_SHORT, TS_LONG,
TS_FLOAT, TS_DOUBLE, TS_ENUM, TS_STRUCT,
TS_UNION, TS_TYPEDEF
} TypeSpecification;
/*
** TypeSpec is an enum for each of the valid combinations of type specifiers.
*/
typedef enum {
TYS_NONE,
TYS_VOID,
TYS_CHAR, TYS_SCHAR, TYS_UCHAR,
TYS_SSINT, TYS_USINT,
TYS_INT, TYS_SINT, TYS_UINT,
TYS_SLINT, TYS_ULINT,
TYS_FLOAT, TYS_DOUBLE, TYS_LDOUBLE,
TYS_ENUM, TYS_STRUCT, TYS_UNION,
TYS_TYPENAME
} TypeSpec;
typedef bits lclctype;
extern lclctype fixBits(TypeSpecification p_attr, lclctype p_spec);
# define fixBits(attr, spec) ((unsigned)(1<<(attr) | (spec)))
extern lsymbol lclctype_toSort(lclctype p_t);
extern lsymbol lclctype_toSortDebug(lclctype p_t);
# else
# error "Multiple include"
# endif
syntax highlighted by Code2HTML, v. 0.9.1