fbmuck-6.05/auto/
fbmuck-6.05/contrib/jresolver/
fbmuck-6.05/contrib/jresolver/org/
fbmuck-6.05/contrib/jresolver/org/fuzzball/
fbmuck-6.05/docs/devel/
fbmuck-6.05/game/
fbmuck-6.05/game/logs/
fbmuck-6.05/game/muf/
fbmuck-6.05/scripts/
fbmuck-6.05/src_docs/
#ifndef _P_STACK_H
#define _P_STACK_H


extern void prim_pop(PRIM_PROTOTYPE);	/*     ? --              */
extern void prim_dup(PRIM_PROTOTYPE);	/*     ? -- ? ?          */
extern void prim_at(PRIM_PROTOTYPE);	/*   V|v -- ?            */
extern void prim_bang(PRIM_PROTOTYPE);	/* ? V|v --              */
extern void prim_var(PRIM_PROTOTYPE);	/*     i -- V            */
extern void prim_localvar(PRIM_PROTOTYPE);	/*     i -- v            */
extern void prim_swap(PRIM_PROTOTYPE);	/* ?1 ?2 -- ?2 ?1        */
extern void prim_over(PRIM_PROTOTYPE);	/* ?1 ?1 -- ?1 ?2 ?1     */
extern void prim_pick(PRIM_PROTOTYPE);	/*    ?n ... ?1 i -- ?n ... ?1 ?n */
extern void prim_put(PRIM_PROTOTYPE);	/* ?n ... ?1 ?x i -- ?x ... ?1    */
extern void prim_rot(PRIM_PROTOTYPE);	/*       ?1 ?2 ?3 -- ?2 ?3 ?1     */
extern void prim_rotate(PRIM_PROTOTYPE);	/* Rotates top N stack elements */
extern void prim_dbtop(PRIM_PROTOTYPE);	/*       -- i            */
extern void prim_depth(PRIM_PROTOTYPE);	/*       -- i            */
extern void prim_version(PRIM_PROTOTYPE);	/*       -- s            */
extern void prim_prog(PRIM_PROTOTYPE);	/*       -- d            */
extern void prim_trig(PRIM_PROTOTYPE);	/*       -- d            */
extern void prim_caller(PRIM_PROTOTYPE);	/*       -- d            */
extern void prim_intp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_arrayp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_dictionaryp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_floatp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_stringp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_dbrefp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_addressp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_lockp(PRIM_PROTOTYPE);	/*     ? -- i            */
extern void prim_checkargs(PRIM_PROTOTYPE);	/*     s --              */
extern void prim_mode(PRIM_PROTOTYPE);	/*       -- i            */
extern void prim_setmode(PRIM_PROTOTYPE);	/*     i --              */
extern void prim_interp(PRIM_PROTOTYPE);	/* d d s -- ?            */
extern void prim_reverse(PRIM_PROTOTYPE);	/* ?n ... ?1 i -- ?1 ... ?n    */
extern void prim_lreverse(PRIM_PROTOTYPE);	/* ?n ... ?1 i -- ?1 ... ?n i  */
extern void prim_dupn(PRIM_PROTOTYPE);
extern void prim_ldup(PRIM_PROTOTYPE);	/*   {?} -- {?} {?}      */
extern void prim_popn(PRIM_PROTOTYPE);	/*   {?} --              */
extern void prim_for(PRIM_PROTOTYPE);	/* i i i --              */
extern void prim_foreach(PRIM_PROTOTYPE);	/*     i --              */

extern void prim_foriter(PRIM_PROTOTYPE);	/*       -- i  or  @ ?   */
extern void prim_forpop(PRIM_PROTOTYPE);	/*       --              */
extern void prim_mark(PRIM_PROTOTYPE);	/*       -- m            */
extern void prim_findmark(PRIM_PROTOTYPE);	/* m ?n ... ?1 -- ?n ... ?1 i    */
extern void prim_trypop(PRIM_PROTOTYPE);	/* -- */


#define PRIMS_STACK_FUNCS prim_pop, prim_dup, prim_at, prim_bang, prim_var,  \
    prim_localvar, prim_swap, prim_over, prim_pick, prim_put, prim_rot,      \
    prim_rotate, prim_dbtop, prim_depth, prim_version, prim_prog, prim_trig, \
    prim_caller, prim_intp, prim_stringp, prim_dbrefp, prim_addressp,        \
    prim_lockp, prim_checkargs, prim_mode, prim_setmode, prim_interp,        \
    prim_for, prim_foreach, prim_floatp, prim_reverse, prim_popn, prim_dupn, \
    prim_ldup, prim_lreverse, prim_arrayp, prim_dictionaryp, prim_mark,      \
    prim_findmark

#define PRIMS_STACK_NAMES "POP", "DUP", "@", "!", "VARIABLE", \
    "LOCALVAR", "SWAP", "OVER", "PICK", "PUT", "ROT",         \
    "ROTATE", "DBTOP", "DEPTH", "VERSION", "PROG", "TRIG",    \
    "CALLER", "INT?", "STRING?", "DBREF?", "ADDRESS?",        \
    "LOCK?", "CHECKARGS", "MODE", "SETMODE", "INTERP",        \
    " FOR", " FOREACH", "FLOAT?", "REVERSE", "POPN", "DUPN",  \
    "LDUP", "LREVERSE", "ARRAY?", "DICTIONARY?", "{",         \
    "}"

#define PRIMS_STACK_CNT 39

#define PRIMS_INTERNAL_FUNCS prim_foriter, prim_forpop, prim_trypop

#define PRIMS_INTERNAL_NAMES " FORITER", " FORPOP", " TRYPOP"

#define PRIMS_INTERNAL_CNT 3

#endif /* _P_STACK_H */