#include "pconf.h"

#ifndef _PARSE_CONF_H_
#define _PARSE_CONF_H_


extern char *grammar_file;
extern char *dict_file;
extern char *frames_file;
extern char *start_sym;
extern char *end_sym;
extern char *function_wrd_file;
extern int PriBufSize;	/* buffer for sequence nodes */
extern int FidBufSize;	/* buffer for frame ids */
extern int StringBufSize; /* max words in line of input */

#ifndef COMMAND_LINE_OPTIONS
#define COMMAND_LINE_OPTIONS 1

config_t parse_conf[] = {
  {"dir",	"dir containing grammar files (frames, base.dic, etc)",
       "-dir", 	STRING,	(caddr_t) &dir},
  {"dict_file",	"base.dic, created from compiling grammar",
       "-dict_file", 	STRING,	(caddr_t) &dict_file},
  {"frames",	"frames, frames file that describes the frames",
       "-frames", 	STRING,	(caddr_t) &frames_file},
  {"grammar",	"file containing compiled grammar nets",
       "-grammar", 	STRING,	(caddr_t) &grammar_file},
  {"start_sym",	"start of utterance grammar symbol",
       "-start_sym", 	STRING,	(caddr_t) &start_sym},
  {"end_sym",	"end of utterance grammar symbol",
       "-end_sym", 	STRING,	(caddr_t) &end_sym},
  {"config_file",	"file containing command line arguments",
       "-config", 	STRING,	(caddr_t) &config_file},
  {"function_wrd_file",	"file containing function words",
       "-function_wrd", STRING,	(caddr_t) &function_wrd_file},
  {"verbose",	"verbosity level",
       "-verbose", 	INT, 	(caddr_t) &verbose},
  {"extract",	"0= print full parse, 1= print extracted elements",
       "-extract",	INT,		(caddr_t) &extract},
  {"MAX_PARSES",	"maximum number of parses to print",
       "-MAX_PARSES",	INT,	(caddr_t) &MAX_PARSES},
  {"USE_HISTORY",	"use history in finding best parse",
       "-USE_HISTORY",	INT,	(caddr_t) &USE_HISTORY},
  {"PROFILE",	"print profile stats",
       "-PROFILE",	INT,		(caddr_t) &PROFILE},
  {"IGNORE_OOV",	"Ignore oov words in parse",
       "-IGNORE_OOV",	INT,	(caddr_t) &IGNORE_OOV},
  {"ALL_PARSES",	"Print all parses to text buffer",
       "-ALL_PARSES",	INT,	(caddr_t) &ALL_PARSES},
  {"BIGRAM_PRUNE",	"1= aggressive pruning in parse search",
       "-BIGRAM_PRUNE",	INT,	(caddr_t) &BIGRAM_PRUNE},
  {"MAX_PATHS", "Maximum provisional edges expanded before pruning", 
       "-MAX_PATHS",	INT,	(caddr_t) &MAX_PATHS},
  {"EdgeBufSize", "Maximum edges in chart", 
       "-EdgeBufSize",	INT,	(caddr_t) &EdgeBufSize},
  {"ChartBufSize", "Maximum edge links in chart", 
       "-ChartBufSize", INT,	(caddr_t) &ChartBufSize},
  {"PeBufSize", "Number of Val structs for trees", 
       "-PeBufSize", INT,	(caddr_t) &PeBufSize},
  {"SymBufSize", "Size in bytes of symbol buffer for dictionary", 
       "-SymBufSize",	INT,	(caddr_t) &SymBufSize},
  {"FrameBufSize", "Maximum number of Frame Nodes in parses", 
       "-FrameBufSize",	INT,	(caddr_t) &FrameBufSize},
  {"FidBufSize", "Maximum size of Frame Table Structure", 
       "-FidBufSize",	INT,	(caddr_t) &FidBufSize},
  {"PriBufSize", "Maximum size of Frame Table Structure", 
       "-PriBufSize",	INT,	(caddr_t) &PriBufSize},
  {"ParseBufSize", "Buffer for set of parses", 
       "-ParseBufSize",	INT,	(caddr_t) &ParseBufSize},
  {"InputBufSize", "Maximum number of words in line of input", 
       "-InputBufSize",	INT,	(caddr_t) &InputBufSize},
  {"StringBufSize", "size of buffer for parse substrings", 
       "-StringBufSize",	INT,	(caddr_t) &StringBufSize},
  {"SeqBufSize", "Maximum size of Seq Table Structure", 
       "-SeqBufSize",	INT,	(caddr_t) &SeqBufSize},
  {"SlotSeqLen", "Maximum number of slots in a sequence", 
       "-SlotSeqLen",	INT,	(caddr_t) &SlotSeqLen},
  {NULL, NULL, NULL, NOTYPE, NULL}
  };
#endif //command_line_options

#endif //parse_conf_h_
