projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
types
/
let_stmt.c
diff --git
a/src/types/let_stmt.c
b/src/types/let_stmt.c
index db24d10c3a840e8a4a87ee94b3d2e10a50f46fb8..5474ae2875762fc7c5ebc06e8768d37e01f71848 100644
(file)
--- a/
src/types/let_stmt.c
+++ b/
src/types/let_stmt.c
@@
-34,30
+34,26
@@
#include "data.h"
#include "data.h"
-let_stmt *init_let_stmt(
decl_var *var,
let_val *val) {
+let_stmt *init_let_stmt(let_val *val) {
let_stmt *let = calloc(1, sizeof(*let));
let_stmt *let = calloc(1, sizeof(*let));
- let->var = var;
let->val = val;
let->val = val;
+
return let;
}
void free_let_stmt(let_stmt *stmt) {
if (stmt->val) {
return let;
}
void free_let_stmt(let_stmt *stmt) {
if (stmt->val) {
- if (stmt->val->kind == PSI_LET_TMP && stmt->var->arg) {
- free_decl_arg(stmt->var->arg);
- }
free_let_val(stmt->val);
}
free_let_val(stmt->val);
}
- free_decl_var(stmt->var);
+ if (stmt->token) {
+ free(stmt->token);
+ }
free(stmt);
}
void dump_let_stmt(int fd, let_stmt *let) {
free(stmt);
}
void dump_let_stmt(int fd, let_stmt *let) {
- dprintf(fd, "\tlet %s", let->var->name);
- if (let->val) {
- dprintf(fd, " = ");
- dump_let_val(fd, let->val, 1, 1);
- }
+ dprintf(fd, "\t%s ", let->val->kind == PSI_LET_TMP ? "temp" : "let");
+ dump_let_val(fd, let->val, 1, 1);
}
int validate_let_stmts(struct psi_data *data, impl *impl) {
}
int validate_let_stmts(struct psi_data *data, impl *impl) {
@@
-73,7
+69,7
@@
int validate_let_stmts(struct psi_data *data, impl *impl) {
if (let->val && let->val->kind == PSI_LET_TMP) {
let_var = let->val->data.var;
} else {
if (let->val && let->val->kind == PSI_LET_TMP) {
let_var = let->val->data.var;
} else {
- let_var = let->var;
+ let_var = let->va
l->va
r;
}
if (!locate_decl_var_arg(let_var, impl->decl->args, impl->decl->func)) {
}
if (!locate_decl_var_arg(let_var, impl->decl->args, impl->decl->func)) {
@@
-97,7
+93,7
@@
int validate_let_stmts(struct psi_data *data, impl *impl) {
return 0;
}
return 0;
}
- if (!validate_let_val(data, let->val, let->var, impl)) {
+ if (!validate_let_val(data, let->val, let->va
l->va
r, impl)) {
return 0;
}
}
return 0;
}
}
@@
-109,7
+105,7
@@
int validate_let_stmts(struct psi_data *data, impl *impl) {
for (j = 0; j < impl->stmts->let.count; ++j) {
let_stmt *let = impl->stmts->let.list[j];
for (j = 0; j < impl->stmts->let.count; ++j) {
let_stmt *let = impl->stmts->let.list[j];
- if (!strcmp(let->var->name, darg->var->name)) {
+ if (!strcmp(let->va
l->va
r->name, darg->var->name)) {
check = 1;
break;
}
check = 1;
break;
}