da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/***********************************************************************
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* This software is part of the ast package *
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner* Copyright (c) 1982-2010 AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* and is licensed under the *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Common Public License, Version 1.0 *
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin* by AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* A copy of the License is available at *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Information and Software Systems Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* AT&T Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Florham Park NJ *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* David Korn <dgk@research.att.com> *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin***********************************************************************/
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * David Korn
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * AT&T Labs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * shell intermediate code reader
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin#define getnode(s,type) ((Shnode_t*)stkalloc((s),sizeof(struct type)))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return(t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * read in a shell tree
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin register Shnode_t *t=0;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return(t);
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz slp = (struct slnod*)stkalloc(shp->stk,sizeof(struct slnod)+sizeof(struct functnod));
34f9b3eef6fdadbda0a846aa4d68691ac40eace5Roland Mainz fp->functnam = stkcopy(shp->stk,shp->st.filename);
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin t->funct.functargs = (struct comnod*)r_tree(shp);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return(t);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin register long l;
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin ap = (struct argnod*)stkseek(stkp,(unsigned)l+ARGVAL);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if(--l > 0)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin /* replace international messages */
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin if(*ap->argval==0 && (ap->argflag&~(ARG_APPEND|ARG_MESSAGE|ARG_QUOTED))==0)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin struct fornod *fp = (struct fornod*)getnode(shp->stk,fornod);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin register long l;
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin iop->iooffset = sfseek(shp->heredocs,(off_t)0,SEEK_END);
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinstatic void r_comarg(Shell_t *shp,struct comnod *com)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin else if(com->comarg = (struct argnod*)r_comlist(shp))
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cmdname = ((struct dolnod*)(com->comarg))->dolval[ARG_SPARE];
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin com->comnamp = (void*)nv_search(cmdname,shp->fun_tree,0);
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin com->comnamp = (void*)nv_open(cmdname,shp->var_tree,NV_VARNAME|NV_NOADD|NV_NOARRAY);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin register long l;
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin dol = (struct dolnod*)stkalloc(shp->stk,sizeof(struct dolnod) + sizeof(char*)*(l+ARG_SPARE));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin register long l;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if(l == 0)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return(NIL(char*));
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if(--l > 0)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return(NIL(char*));