/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : mplan.h                                                       */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _missionPlan_h
#define _missionPlan_h

#include <stdio.h>
#include "ourTypes.h"

/* This stuff is written in 'C', since it's used by 
   QNX yacc-generated code.
*/

typedef struct {

  char *name;
  char *value;
  
} InputAttribute;


typedef struct {

  InputAttribute **inputs;
  int nInputs;
  int nAllocd;

} InputAttributes;

#ifdef __cplusplus
extern "C" {

  /* Parse a behavior and attributes. Defined in yacc parser file */
  const char *parseBehavior(FILE *fp, Boolean *error, char *errorBuf);

  /* Restart lexer for new input file. Defined in lexer file */
  void restartLexer();

  /* Add an InputAttribute to list */
  InputAttributes *addInputAttribute(const char *name, const char *value);

  /* Clear InputAttribute list */
  void initInputAttributes();

  /* Get pointer to InputAttribute list */
  const InputAttributes *inputAttributes();

  /* Delete InputAttribute list */
  void *deleteInputAttributes();

};

#endif       /* __cplusplus */

#endif
