]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
28bf4b0b | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | ** | |
5 | */ | |
6 | # ifndef LCLCTYPESX_H | |
7 | # define LCLCTYPESX_H | |
8 | ||
9 | /* | |
10 | ** TypeSpecification is an enum defined for each of the valid C type. | |
11 | */ | |
12 | ||
13 | typedef enum | |
14 | { | |
15 | TS_UNKNOWN, TS_VOID, TS_CHAR, TS_INT, | |
16 | TS_SIGNED, TS_UNSIGNED, TS_SHORT, TS_LONG, | |
17 | TS_FLOAT, TS_DOUBLE, TS_ENUM, TS_STRUCT, | |
18 | TS_UNION, TS_TYPEDEF | |
19 | } TypeSpecification; | |
20 | ||
21 | /* | |
22 | ** TypeSpec is an enum for each of the valid combinations of type specifiers. | |
23 | */ | |
24 | ||
25 | typedef enum { | |
26 | TYS_NONE, | |
27 | TYS_VOID, | |
28 | TYS_CHAR, TYS_SCHAR, TYS_UCHAR, | |
29 | TYS_SSINT, TYS_USINT, | |
30 | TYS_INT, TYS_SINT, TYS_UINT, | |
31 | TYS_SLINT, TYS_ULINT, | |
32 | TYS_FLOAT, TYS_DOUBLE, TYS_LDOUBLE, | |
33 | TYS_ENUM, TYS_STRUCT, TYS_UNION, | |
34 | TYS_TYPENAME | |
35 | } TypeSpec; | |
36 | ||
37 | typedef bits lclctype; | |
38 | ||
39 | extern lclctype fixBits(TypeSpecification p_attr, lclctype p_spec); | |
40 | # define fixBits(attr, spec) ((unsigned)(1<<(attr) | (spec))) | |
41 | ||
42 | extern lsymbol lclctype_toSort(lclctype p_t); | |
43 | extern lsymbol lclctype_toSortDebug(lclctype p_t); | |
44 | ||
45 | # else | |
46 | # error "Multiple include" | |
47 | # endif |