My Project
Loading...
Searching...
No Matches
pparg.h
Go to the documentation of this file.
1
4#ifndef __PPARG
5#define __PPARG
6
7typedef struct PPArg_ {
8 struct Vector_ path;
9 struct Hash_ hash;
13
14ANN void pparg_ini(MemPool, PPArg *);
15ANN void pparg_end(PPArg *);
16
17ANN static inline struct Macro_ *ppa_has_macro(PPArg *ppa,
18 const Symbol sym) {
19 if (!ppa->hash.table) return NULL;
20 return macro_has(&ppa->hash, s_name(sym));
21}
22
23ANN static inline bool ppa_rem_macro(PPArg *ppa, const Symbol sym) {
24 if (!ppa->hash.table) return false;
25 return macro_has(&ppa->hash, s_name(sym)) ? true : false;
26}
27
28ANN2(1) bool pparg_add(PPArg *ppa, const m_str str);
29ANN2(1) static inline bool pparg_rem(PPArg *ppa, const m_str str) {
30 if (!ppa->hash.table) return false;
31 return macro_rem(&ppa->hash, str);
32}
33ANN static inline void pparg_inc(PPArg *ppa, const m_str str) {
34 return vector_add(&ppa->path, (vtype)str);
35}
36#endif
struct SectionList * Ast
Definition absyn.h:23
const Symbol
Definition absyn.h:355
return NULL
Definition macro.c:41
Macro macro_has(const Hash, m_str)
bool macro_rem(const Hash, m_str)
ANN2(1)
Definition pparg.c:46
const m_str str
Definition pparg.h:28
ANN2(1) bool pparg_add(PPArg *ppa
ANN void pparg_end(PPArg *)
Definition pparg.c:62
ANN void pparg_ini(MemPool, PPArg *)
Definition pparg.c:57
return macro_rem & ppa
Definition pparg.h:31
static ANN bool ppa_rem_macro(PPArg *ppa, const Symbol sym)
Definition pparg.h:23
static ANN struct Macro_ * ppa_has_macro(PPArg *ppa, const Symbol sym)
Definition pparg.h:17
static ANN void pparg_inc(PPArg *ppa, const m_str str)
Definition pparg.h:33
struct PPArg_ PPArg
Definition macro.h:22
Definition pparg.h:7
Ast ast
Definition pparg.h:10
struct Vector_ path
Definition pparg.h:8
struct Hash_ hash
Definition pparg.h:9
bool is_require
Definition pparg.h:11