#pragma once /* * opcode routines * arguments on stack (...) * arguments in line [...] * code in line with jump around {...} */ void Xmark(void); // Xmark marks stack location for word void Xindex(void); // Xindex void Xlocal(void); // Xlocal(name,val) create local variable, assign value void Xunlocal(void); // Xunlocal delete local variable void Xdollar(void); // Xdollar(name) get value of name void Xtrue(void); // Xtrue{...} execute {} if true void Xfalse(void); // Xfalse{...} execute {} if false void Xgoto(void); // Xgoto[addr] goto address void Xfor(void); // Xfor(var, list){... Xreturn} void Xreadcmd(void); // void Xassign(void); void Xbang(void); void Xasync(void); void Xbasic(void); // Xbasic(args) run command and wait for result void Xsubshell(void); void Xword(void); void Xjoin(void); void Xconcatenate(void); void Xcount(void); void Xflat(void); void Xpipe(void); void Xpipewait(void); void Xpopredir(void); void Xreturn(void); void Xexit(void); void Xerror(char*); /* builtin commands */ void xcd(void); void xdot(void); void xecho(void); void xexit(void); void xfg(void); void xjob(void); void xboot(int argc, char *argv[]);