Next: Provide Readable Type Names
Up: Type Analysis
Previous: Expression contexts
#ifndef SEMANTIC_H
#define SEMANTIC_H
#include "eliproto.h"
#include "deftbl.h"
#include "oiladt2.h"
#include "Strings.h"
Abbreviations for sets of bits[46]
#define KWD(w,i,s) w
typedef enum {
Specifier keywords[45]
} TypeSpecifier;
#undef KWD
Specification data[36]
#define InSpecifierSet(kw,chain) (((1 « kw) & chain.KeywordSet) != 0)
extern SpecData InitSpecifiers ELI_ARG((DefTableKey));
extern int NextSpecifier ELI_ARG((TypeSpecifier, SpecData));
extern SpecData UpdateSpecification ELI_ARG((DefTableKey, TypeSpecifier, SpecData));
extern DefTableKey CompleteType ELI_ARG((SpecData));
extern void BasicPointerTypes ELI_ARG((void));
extern void BasicPointerRefs ELI_ARG((void));
#endif
This macro is attached to a product file.
#include "pdl_gen.h"
#include "Typing.h"
#include "Expression.h"
#include "Type.h"
#define KWD(w,i,s) i
static int FSMInput[] = {
Specifier keywords[45]
};
#undef KWD
#define KWD(w,i,s) s
static long Exclude[] = {
Specifier keywords[45]
};
#undef KWD
static struct {int Next[7]; DefTableKey Type;} State[] = {
Finite-state machine[35]
};
SpecData
#ifdef PROTO_OK
InitSpecifiers(DefTableKey key)
#else
InitSpecifiers(key) DefTableKey key;
#endif
InitSpecifiers(DefTableKey key)[37]
int
#ifdef PROTO_OK
NextSpecifier(TypeSpecifier kw, SpecData chain)
#else
NextSpecifier(kw, chain) TypeSpecifier kw; SpecData chain;
#endif
NextSpecifier(TypeSpecifier kw, SpecData chain)[38]
SpecData
#ifdef PROTO_OK
UpdateSpecification(DefTableKey type, TypeSpecifier kw, SpecData chain)
#else
UpdateSpecification(type, kw, chain)
DefTableKey type; TypeSpecifier kw; SpecData chain;
#endif
UpdateSpecification(DefTableKey type, TypeSpecifier kw, SpecData chain)[39]
DefTableKey
#ifdef PROTO_OK
CompleteType(SpecData chain)
#else
CompleteType(chain) SpecData chain;
#endif
CompleteType(SpecData chain)[44]
Type key arrays[9]
void
#ifdef PROTO_OK
BasicPointerTypes(void)
#else
BasicPointerTypes()
#endif
void BasicPointerTypes(void)[7]
void
#ifdef PROTO_OK
BasicPointerRefs(void)
#else
BasicPointerRefs()
#endif
void BasicPointerRefs(void)[8]
This macro is attached to a product file.
#include "Type.h"
This macro is attached to a product file.
Next: Provide Readable Type Names
Up: Type Analysis
Previous: Expression contexts
2008-08-30