]> git.lizzy.rs Git - nothing.git/blobdiff - src/script/expr.h
TODO(#395)
[nothing.git] / src / script / expr.h
index 7c64f07d9174497b8dcadc348db0d8abb57f6946..3f24c72b6fa02123c1252e7aaef315665fae1291 100644 (file)
@@ -17,6 +17,9 @@ struct Atom;
 #define CONS(G, CAR, CDR) cons_as_expr(create_cons(G, CAR, CDR))
 #define NIL(G) SYMBOL(G, "nil")
 
+#define CAR(O) ((O).cons->car)
+#define CDR(O) ((O).cons->cdr)
+
 enum ExprType
 {
     EXPR_ATOM = 0,
@@ -39,6 +42,7 @@ struct Expr void_expr(void);
 
 void destroy_expr(struct Expr expr);
 void print_expr_as_sexpr(struct Expr expr);
+int expr_as_sexpr(struct Expr expr, char *output, size_t n);
 
 // TODO(#337): EvalResult does not belong to expr unit
 struct EvalResult