#ifndef _verb_h_
#define _verb_h_

#include "bool.h"
#include "darray.h"

typedef struct AlVerb_st *AlVerb;

#ifdef __STDC__
typedef NORET (*AlVerb_ExecutionFunc)(Darray);
extern AlVerb AlVerb_create(AlVerb_ExecutionFunc, unsigned int, 
			    unsigned int,  unsigned int);
extern unsigned int AlVerb_min_args(AlVerb);
extern unsigned int AlVerb_max_args(AlVerb);
extern unsigned int AlVerb_def_args(AlVerb);
extern AlVerb_ExecutionFunc AlVerb_exec_func(AlVerb);
#else
typedef NORET (*AlVerb_ExecutionFunc)();
extern AlVerb AlVerb_create();
extern unsigned int AlVerb_min_args();
extern unsigned int AlVerb_max_args();
extern unsigned int AlVerb_def_args();
extern AlVerb_ExecutionFunc AlVerb_exec_func();
#endif /* __STDC__ */

#endif /* ifndef _verb_h_ */
