/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* aplediy APL2 V1.0.0 ************************************************* * Called from aplediu to process the current DEL editor input. * ***********************************************************************/ #define INCLUDES APLCB+APLCHDEF+APLED+APLFUNCI+APLMEM+APLTOKEN+TREE #include "includes.h" void aplediy(e,cp,stmtlen,cpn,tokcnt) struct apledst *e; /* Edit common area. */ char *cp; /* Pointer to current input. */ int stmtlen; /* Length of current input. */ char *cpn; /* Ptr to cap null, if stmt is comment. */ int tokcnt; /* Count of tokens remaining to process. */ { Apledcl; Apleddl; Apledmd; Apledqu; Execmsg; Execqfxe; Expungf; Apltoken tokhdr; int newstmt; tokhdr = *(e->fp->functokp); /* token list from temp. hdr. */ if (NULL == execqfxe(tokhdr + tokcnt - 1,LEFT_BRACKET,0)) execmsg(cp,stmtlen,0,"Bracket not found where expected."); else if (tokcnt < 3) execmsg(cp,stmtlen,0,"No value in brackets."); else switch((tokhdr + tokcnt - 2)->token_code) { case OPERAND_TOKEN: apleddl(e,cp,stmtlen,tokcnt); /* delete */ break; case QUAD: apledqu(e,cp,stmtlen,tokcnt); /* display */ break; case VECTOR_TOKEN: if (tokcnt == 4 && tokhdr->token_code == RIGHT_BRACKET && (tokhdr + 1)->token_code == QUAD) /* [nL] */ apledqu(e,cp,stmtlen,tokcnt); /* display */ else apledmd(e,cp,stmtlen,cpn,tokcnt); /* modify */ break; default: execmsg(cp,stmtlen,0,"Bad syntax in brackets."); break; } /* end switch */ apledcl(e); /* free tokens */ }