windows-nt/Source/XPSP1/NT/sdktools/asn1/asn1all/defs.h
2020-09-26 16:20:57 +08:00

70 lines
1.3 KiB
C

/* Copyright (C) Boris Nikolaus, Germany, 1996-1997. All rights reserved. */
extern int linedirective;
extern int lineno;
extern char filename[];
extern char outfilename[];
extern char incfilename[];
extern FILE *fout, *finc;
extern char *startsym;
extern char *prefix;
typedef struct item_s {
int isnonterm;
int isexternal;
char *tag;
char *identifier;
char *altidentifier;
char **args;
struct item_s **items;
int empty;
int checked;
} item_t;
extern item_t symbols[];
extern int nsymbols;
extern item_t *items[];
extern int nitems;
struct bounds_s {
unsigned lower; /* 0 for no lower bound */
unsigned upper; /* 0 for no upper bound */
};
struct rhs_s {
enum { eCCode, eItem, eSequence, eNode, eBounded, eAlternative } type;
union {
struct {
char *ccode;
int line;
int column;
char *file;
} ccode;
struct {
char *identifier;
char *args;
} item;
struct {
struct rhs_s *element;
struct rhs_s *next;
} sequence, alternative;
struct {
struct rhs_s *left;
struct rhs_s *right;
} node;
struct {
struct bounds_s bounds;
struct rhs_s *items;
} bounded;
} u;
};
struct token_s {
char *identifier;
char *altidentifier;
};
struct nterm_s {
char *identifier;
char **tags;
};
struct lhs_s {
char *identifier;
char *args;
};