aboutsummaryrefslogtreecommitdiff
path: root/src/sexp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sexp.h')
-rw-r--r--src/sexp.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/sexp.h b/src/sexp.h
index 1fc0ce9..dfd3ee6 100644
--- a/src/sexp.h
+++ b/src/sexp.h
@@ -45,6 +45,11 @@ typedef struct {
SExpRef next;
} SExpBinding;
+typedef struct {
+ SExpRef fn;
+ SExpRef args;
+} SExpTailcall;
+
typedef enum {
kEmptySExp,
kIntegerSExp,
@@ -61,7 +66,11 @@ typedef enum {
kEnvSExp,
kBindingSExp,
kMacroSExp,
- kErrSExp,
+ kErrSignal,
+ kReturnSignal,
+ kBreakSignal,
+ kContinueSignal,
+ kTailcallSExp,
} SExpType;
struct sexp {
@@ -80,6 +89,8 @@ struct sexp {
SExpEnv env;
SExpBinding binding;
SExpMacro macro;
+ SExpRef ret;
+ SExpTailcall tailcall;
};
};