4 * (c)Copyright 1993-2014, Matthew Dillon, All Rights Reserved. See the
5 * COPYRIGHT file at the base of the distribution.
10 typedef RUNE_HEAD(ipnodelist, IPNode) ipnodelist_t;
12 typedef struct IPNode {
13 RUNE_ENTRY(IPNode) ip_Node;
18 #define IPF_STATIC 0x0001 /* embedded in some other structure */
19 #define IPF_ABSOLUTE 0x0002 /* treat path as absolute even if it isn't */
20 #define IPF_BASEPATH 0x0004 /* flag to prefix with basepath later */
22 typedef struct Parse {
23 Lex *p_Lex; /* lexical scanner */
24 token_t p_Token; /* lexical scanner */
25 Stmt *p_Import; /* parse file as import content */
26 Stmt *p_CurStmt; /* current statement */
27 SemGroup *p_CurSemGroup; /* current semantic group */
29 int p_Format; /* source, pre-parsed, object, etc. */
30 int p_ArgAc; /* passed to main() */
31 char **p_ArgAv; /* passed to main() */
32 int32_t p_RetVal; /* ret value from main() (32 bit int) */
33 struct stat p_St; /* stat information to detect sharing */
38 #define PFMT_RESOLVED 3
40 #define dassert_parse(p, type, cond) if (!(cond)) ParseFatalError(p, type)
42 #define ParseFatalError(p, type) \
44 LexError(&(p)->p_Token, type); \
45 LexPrintError(&p->p_Token); \