remove var accessor and mutators
This commit is contained in:
parent
fce57ec8c9
commit
13fec26c59
|
@ -23,10 +23,6 @@ struct pic_var *pic_var_new(pic_state *, pic_value, struct pic_proc *);
|
||||||
struct pic_proc *pic_wrap_var(pic_state *, struct pic_var *);
|
struct pic_proc *pic_wrap_var(pic_state *, struct pic_var *);
|
||||||
struct pic_var *pic_unwrap_var(pic_state *, struct pic_proc *);
|
struct pic_var *pic_unwrap_var(pic_state *, struct pic_proc *);
|
||||||
|
|
||||||
pic_value pic_var_ref(pic_state *, struct pic_var *);
|
|
||||||
void pic_var_set(pic_state *, struct pic_var *, pic_value);
|
|
||||||
void pic_var_set_force(pic_state *, struct pic_var *, pic_value);
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
56
src/var.c
56
src/var.c
|
@ -6,6 +6,29 @@
|
||||||
#include "picrin/proc.h"
|
#include "picrin/proc.h"
|
||||||
#include "picrin/var.h"
|
#include "picrin/var.h"
|
||||||
|
|
||||||
|
static pic_value
|
||||||
|
var_ref(pic_state *pic, struct pic_var *var)
|
||||||
|
{
|
||||||
|
UNUSED(pic);
|
||||||
|
return var->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
var_set_force(pic_state *pic, struct pic_var *var, pic_value value)
|
||||||
|
{
|
||||||
|
UNUSED(pic);
|
||||||
|
var->value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
var_set(pic_state *pic, struct pic_var *var, pic_value value)
|
||||||
|
{
|
||||||
|
if (var->conv) {
|
||||||
|
value = pic_apply1(pic, var->conv, value);
|
||||||
|
}
|
||||||
|
var_set_force(pic, var, value);
|
||||||
|
}
|
||||||
|
|
||||||
struct pic_var *
|
struct pic_var *
|
||||||
pic_var_new(pic_state *pic, pic_value init, struct pic_proc *conv /* = NULL */)
|
pic_var_new(pic_state *pic, pic_value init, struct pic_proc *conv /* = NULL */)
|
||||||
{
|
{
|
||||||
|
@ -15,34 +38,11 @@ pic_var_new(pic_state *pic, pic_value init, struct pic_proc *conv /* = NULL */)
|
||||||
var->value = pic_undef_value();
|
var->value = pic_undef_value();
|
||||||
var->conv = conv;
|
var->conv = conv;
|
||||||
|
|
||||||
pic_var_set(pic, var, init);
|
var_set(pic, var, init);
|
||||||
|
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
|
|
||||||
pic_value
|
|
||||||
pic_var_ref(pic_state *pic, struct pic_var *var)
|
|
||||||
{
|
|
||||||
UNUSED(pic);
|
|
||||||
return var->value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
pic_var_set(pic_state *pic, struct pic_var *var, pic_value value)
|
|
||||||
{
|
|
||||||
if (var->conv) {
|
|
||||||
value = pic_apply1(pic, var->conv, value);
|
|
||||||
}
|
|
||||||
pic_var_set_force(pic, var, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
pic_var_set_force(pic_state *pic, struct pic_var *var, pic_value value)
|
|
||||||
{
|
|
||||||
UNUSED(pic);
|
|
||||||
var->value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
var_call(pic_state *pic)
|
var_call(pic_state *pic)
|
||||||
{
|
{
|
||||||
|
@ -56,12 +56,12 @@ var_call(pic_state *pic)
|
||||||
c = pic_get_args(pic, "|o", &v);
|
c = pic_get_args(pic, "|o", &v);
|
||||||
if (c == 0) {
|
if (c == 0) {
|
||||||
var = pic_var_ptr(proc->env->regs[0]);
|
var = pic_var_ptr(proc->env->regs[0]);
|
||||||
return pic_var_ref(pic, var);
|
return var_ref(pic, var);
|
||||||
}
|
}
|
||||||
else if (c == 1) {
|
else if (c == 1) {
|
||||||
var = pic_var_ptr(proc->env->regs[0]);
|
var = pic_var_ptr(proc->env->regs[0]);
|
||||||
|
|
||||||
pic_var_set(pic, var, v);
|
var_set(pic, var, v);
|
||||||
return pic_none_value();
|
return pic_none_value();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -124,7 +124,7 @@ pic_var_parameter_ref(pic_state *pic)
|
||||||
pic_get_args(pic, "l", &proc);
|
pic_get_args(pic, "l", &proc);
|
||||||
|
|
||||||
var = pic_unwrap_var(pic, proc);
|
var = pic_unwrap_var(pic, proc);
|
||||||
return pic_var_ref(pic, var);
|
return var_ref(pic, var);
|
||||||
}
|
}
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
|
@ -138,7 +138,7 @@ pic_var_parameter_set(pic_state *pic)
|
||||||
|
|
||||||
var = pic_unwrap_var(pic, proc);
|
var = pic_unwrap_var(pic, proc);
|
||||||
/* no convert */
|
/* no convert */
|
||||||
pic_var_set_force(pic, var, v);
|
var_set_force(pic, var, v);
|
||||||
return pic_none_value();
|
return pic_none_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue