#ifndef __INC_POS_PDOS_DOSARGS_H
#define __INC_POS_PDOS_DOSARGS_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>DosArgs.h<<   07 Nov 1996    17:03:05 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_MEMORY_H
#include <pExec/Memory.h>
#endif
#ifndef __INC_POS_PDOS_DOSERRORS_H
#include <pDOS/DosErrors.h>
#endif


/*----------------------------------
-----------------------------------*/
struct pOS_DosArgs
{
  struct pOS_MemPool arg_MemPool;
  struct pOS_List    arg_TokenList;  /* (struct pOS_DosToken*) */
  const CHAR        *arg_ArgString;  /* Lese-String */
  const CHAR        *arg_Template;
  const CHAR        *arg_HelpText;
        ULONG        arg_Flags;      /* (enum pOS_DosArgsFlags) */

        ULONG       *arg_ResArea;    /* ULONG-Array */
        UWORD        arg_ResAreaNum;

  const CHAR        *arg_PrgHdText;
  const CHAR        *arg_PrgVerText;
        CHAR         arg_Seperator;
        UBYTE        arg_Pad;
  const CHAR        *arg_VarName;
};



/*----------------------------------
-----------------------------------*/
struct pOS_DosToken
{
  struct pOS_Node  tok_Node;
  UWORD     tok_Num;
  UWORD     tok_Kind;  /* (enum pOS_DosTokenKind) */

  CHAR      *tok_TokName1;
  CHAR      *tok_TokName2;
};



enum pOS_DosTokenKind
{
  DOTOKKIND_S    = 0x0001,
  DOTOKKIND_K    = 0x0002,
  DOTOKKIND_N    = 0x0004,
  DOTOKKIND_T    = 0x0008,
  DOTOKKIND_A    = 0x0010,
  DOTOKKIND_F    = 0x0020,
  DOTOKKIND_M    = 0x0040,

  DOTOKKIND_Mark = 0x4000,
  DOTOKKIND_Used = 0x8000
};




enum pOS_DosArgsFlags
{
  DOARGF_RawLine = 0x0001,      /** '*' wird nicht als Key interpretiert **/
  DOARGF_PreScan = 0x0002,
  DOARGF_Snoop   = 0x0004,      /** gibt die Zuweisungsliste nach pr_COS aus **/

  DOARGF_OpsLink = 0x1000       /** internal, Ops-Array wurde aufgebaut **/
};


#endif
