aboutsummaryrefslogtreecommitdiff
path: root/src/cffc.hff
diff options
context:
space:
mode:
Diffstat (limited to 'src/cffc.hff')
-rw-r--r--src/cffc.hff48
1 files changed, 28 insertions, 20 deletions
diff --git a/src/cffc.hff b/src/cffc.hff
index 131b3d9..920f74a 100644
--- a/src/cffc.hff
+++ b/src/cffc.hff
@@ -108,6 +108,7 @@ struct Type {
flds [#]AggField,
decls *Env,
},
+ VaList,
},
fn is(ty *const Type, tag typeof((Type{}).u.#tag)) bool {
@@ -282,6 +283,7 @@ struct Decl {
Fn Fn,
Macro Macro,
Tepl Tepl,
+ Label #{loopid} int,
},
myenv *Env,
}
@@ -297,8 +299,8 @@ struct Expan {
name *const u8,
loc Loc,
tepl bool,
+ peektok Option<Tok>,
idx int,
- peektok Option<Tok>
}
struct DeclList {
@@ -340,25 +342,31 @@ extern static g_targ *const Targ;
extern fn targ_ini(name *const u8) bool;
// type.cff
-extern static ty_void *const Type,
- ty_bool *const Type,
- ty_i8 *const Type,
- ty_u8 *const Type,
- ty_i16 *const Type,
- ty_u16 *const Type,
- ty_i32 *const Type,
- ty_u32 *const Type,
- ty_int *const Type,
- ty_uint *const Type,
- ty_i64 *const Type,
- ty_u64 *const Type,
- ty_isize *const Type,
- ty_usize *const Type,
- ty_iptrint *const Type,
- ty_uptrint *const Type,
- ty_f32 *const Type,
- ty_f64 *const Type,
- ty_voidptr *const Type;
+extern static ty_void *const Type,
+ ty_bool *const Type,
+ ty_i8 *const Type,
+ ty_u8 *const Type,
+ ty_i16 *const Type,
+ ty_u16 *const Type,
+ ty_i32 *const Type,
+ ty_u32 *const Type,
+ ty_int *const Type,
+ ty_uint *const Type,
+ ty_i64 *const Type,
+ ty_u64 *const Type,
+ ty_isize *const Type,
+ ty_usize *const Type,
+ ty_iptrint *const Type,
+ ty_uptrint *const Type,
+ ty_f32 *const Type,
+ ty_f64 *const Type,
+ ty_voidptr *const Type,
+ ty_c_char *const Type,
+ ty_c_long *const Type,
+ ty_c_ulong *const Type,
+ ty_c_llong *const Type,
+ ty_c_ullong *const Type,
+ ty_c_valist *const Type;
extern fn interntype(Type) *const Type;
extern fn putprimtypes(env *Env) void;
fn constify(ty *const Type) *const Type {