This patch converts init_pvv from using fpvm_assign to using a string
that contains assignment to be handled by the parser. This is strictly
a proof of concept, since manually embedding code this way is ugly.
---
src/compiler/compiler.c | 11 +++++------
1 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/compiler/compiler.c b/src/compiler/compiler.c
index 86fd265..8861ba1 100644
--- a/src/compiler/compiler.c
+++ b/src/compiler/compiler.c
@@ -443,13 +443,12 @@ static bool init_pvv(struct compiler_sc *sc)
fpvm_set_bind_callback(&sc->pvv_fragment, pvv_bind_callback, sc);
fpvm_set_bind_mode(&sc->pvv_fragment, FPVM_BIND_SOURCE);
- #define A(dest, val) \
- if(!fpvm_assign(&sc->pvv_fragment, dest, val)) goto fail_assign
- A("x", "i2f(_Xi)*_hmeshsize");
- A("y", "i2f(_Yi)*_vmeshsize");
- A("rad", "sqrt(sqr(x-0.5)+sqr(y-0.5))");
+ if(!fpvm_chunk(&sc->pvv_fragment,
+ "x = i2f(_Xi)*_hmeshsize\n"
+ "y = i2f(_Yi)*_vmeshsize\n"
+ "rad = sqrt(sqr(x-0.5)+sqr(y-0.5))"))
+ goto fail_assign;
/* TODO: generate ang */
- #undef A
fpvm_set_bind_mode(&sc->pvv_fragment, FPVM_BIND_ALL);
return true;
--
1.7.1
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode