raising the head after a three-weeks refactoring
[m6w6/ext-psi] / src / types / let_stmt.h
index 3b6ab3c5137c2641f413282642a897f26cd0f9bd..2c16f8bbb124283bedfb6caa038dfc8cc2b1153f 100644 (file)
 #ifndef PSI_TYPES_LET_STMT_H
 #define PSI_TYPES_LET_STMT_H
 
-#include "decl_var.h"
-#include "let_val.h"
+struct psi_data;
+struct psi_token;
+struct psi_let_exp;
+struct psi_call_frame;
+struct psi_impl;
 
-typedef struct let_stmt {
+struct psi_let_stmt {
        struct psi_token *token;
-       let_val *val;
-} let_stmt;
-
-let_stmt *init_let_stmt(let_val *val);
-void free_let_stmt(let_stmt *stmt);
-void dump_let_stmt(int fd, let_stmt *let);
+       struct psi_let_exp *exp;
+};
 
-struct psi_data;
-struct impl;
+struct psi_let_stmt *psi_let_stmt_init(struct psi_let_exp *exp);
+void psi_let_stmt_free(struct psi_let_stmt **stmt_ptr);
+void psi_let_stmt_dump(int fd, struct psi_let_stmt *stmt);
 
-int validate_let_stmts(struct psi_data *data, struct impl *impl);
+void *psi_let_stmt_exec(struct psi_let_stmt *stmt, struct psi_call_frame *frame);
+bool psi_let_stmts_validate(struct psi_data *data, struct psi_impl *impl);
 
 #endif