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

Reply via email to