9 #include "parser_proc.h"
11 #define PSI_T_POINTER PSI_T_ASTERISK
12 #define PSI_T_LONG_DOUBLE (PSI_T_DOUBLE << 16)
16 static inline size_t psi_t_alignment(token_t t
)
18 #define PSI_ALIGNOF(T) case PSI_T_## T: return ALIGNOF_## T ##_T;
31 return ALIGNOF_DOUBLE
;
34 return ALIGNOF_VOID_P
;
43 static inline size_t psi_t_size(token_t t
)
45 #define PSI_SIZEOF(T) case PSI_T_## T : return SIZEOF_## T ##_T;
72 unsigned size
, line
, col
;
79 struct psi_token
*psi_token_alloc(struct psi_parser
*P
);
80 size_t psi_token_alloc_size(size_t token_len
, size_t fname_len
);
81 struct psi_token
*psi_token_copy(struct psi_token
*src
);
82 struct psi_token
*psi_token_cat(unsigned argc
, ...);
83 struct psi_token
*psi_token_append(struct psi_token
*T
, unsigned argc
, ...);
84 struct psi_token
*psi_token_translit(struct psi_token
*T
, char *from
, char *to
);
85 uint64_t psi_token_hash(struct psi_token
*t
, char *digest_buf
);