=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/eval.c,v retrieving revision 1.13 retrieving revision 1.15 diff -u -p -r1.13 -r1.15 --- OpenXM_contrib2/asir2000/parse/eval.c 2001/09/03 07:01:10 1.13 +++ OpenXM_contrib2/asir2000/parse/eval.c 2001/09/20 04:08:21 1.15 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.12 2001/09/03 01:04:28 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.14 2001/09/05 09:01:28 noro Exp $ */ #include #include "ca.h" @@ -83,6 +83,7 @@ FNODE f; UP2 up2; UP up; UM um; + Obj obj; GF2N gf2n; GFPN gfpn; GFSN gfsn; @@ -105,6 +106,11 @@ FNODE f; case I_PAREN: val = eval((FNODE)(FA0(f))); break; + case I_MINUS: + a1 = eval((FNODE)(FA0(f))); + arf_chsgn((Obj)a1,&obj); + val = (pointer)obj; + break; case I_BOP: a1 = eval((FNODE)FA1(f)); a2 = eval((FNODE)FA2(f)); (*((ARF)FA0(f))->fp)(CO,a1,a2,&val); @@ -246,6 +252,8 @@ FNODE f; a = eval((FNODE)FA0(f1)); ind = (NODE)FA1(f1); evalnodebody(ind,&tn); putarray(a,tn,val = eval((FNODE)FA1(f))); + } else { + error("eval : invalid assignment"); } break; case I_ANS: