an expression has to always output a value (?), but if we are implementing
"if", "else", "then" operators, an outlet does not have to necessarily output anything,
so yeah, maybe a new class creator with a different orientation is all we need.
Not sure if this is related, but I was just looking at the class creator of expr in the file x_vexp_if.c,
and in the function expr_setup, there is a section commented as "expr initialization".
I notice that apart from creating the class "expr", the class "exprproxy" also has to be created.
/*
* expr initialization
*/
expr_class = class_new(gensym("expr"), (t_newmethod)expr_new,
(t_method)expr_ff, sizeof(t_expr), 0, A_GIMME, 0);
class_addlist(expr_class, expr_list);
exprproxy_class = class_new(gensym("exprproxy"), 0,
0, sizeof(t_exprproxy), CLASS_PD, 0);
class_addfloat(exprproxy_class, exprproxy_float);
class_addmethod(expr_class,(t_method)expr_version,
gensym("version"), 0);
These two classes seem to be created using the class_new function separately, and
at the moment I can't seem to find the "glue" that connects exprproxy_class and expr together,
it would be great if someone could please shed some light on this...
Cheers,
TK