1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/*
DISKCOPY.EXE, floppy diskette duplicator similar to MSDOS Diskcopy.
Copyright (C) 1998, Matthew Stanford.
Copyright (C) 1999, 2000, 2001 Imre Leber.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have recieved a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
If you have any questions, comments, suggestions, or fixes please
email me at: imre.leber@worldonline.be
*/
#ifndef PARSER_H_
#define PARSER_H_
typedef int TOKEN;
/* Parser input structure. */
struct LValueArray
{
TOKEN token;
void (*func) (TOKEN rvalue);
};
struct HeaderArray
{
int amount;
TOKEN header;
struct LValueArray *lvalues;
};
/* Parser output structure. */
struct IniParserStruct
{
/* MEMORY */
int UseEMS; /* Use of EMS granted. */
int UseXMS; /* Use of XMS granted. */
int UseSWAP; /* Use of SWAP granted. */
/* OPTIONS */
int audible; /* Give an audible warning. */
int verify; /* Verify writes. */
int informative; /* Give information on memory use. */
int overwrite; /* Overwrite destination. */
int autoexit; /* Always automatically exit. */
int askdisk; /* Ask disk. */
int asktdisk; /* Ask target disk. */
int mode; /* Mode that diskcopy is in. */
int speed; /* Copy speed: fast or full. */
int serialnumber; /* Wether to update the serial number */
/* GENERATION */
int MakeDAT; /* Wether or not to keep a compiled
DAT file. */
};
/* Tokens. */
#define TknNONE -1 /* Invalid input. */
#define TknDONE 0 /* End of buffer reached. */
#define TknSPACE 1 /* white space */
#define TknASSIGN 2 /* = */
#define TknYES 3 /* yes */
#define TknNO 4 /* no */
#define TknALWAYS 5 /* always */
#define TknNEVER 6 /* never */
#define TknMEMORYHEADER 7 /* [- MEMORY -] */
#define TknDISK 8 /* DISK/SWAP */
#define TknEMS 9 /* EMS */
#define TknXMS 10 /* XMS */
#define TknOPTIONHEADER 11 /* [- OPTIONS -] */
#define TknAUDIBLE 12 /* audible */
#define TknVERIFY 13 /* verify */
#define TknINFORMATIVE 14 /* informative */
#define TknOVERWRITE 15 /* overwrite */
#define TknAUTOEXIT 16 /* autoexit */
#define TknMODE 17 /* mode */
#define TknASKDISK 18 /* ask disk */
#define TknASKTARGET 19 /* ask target */
#define TknSERIALNUMBER 20 /* serial number */
#define TknUPDATE 21 /* update */
#define TknLEAVE 22 /* leave */
#define TknRECOVERY 23 /* recovery */
#define TknNORMAL 24 /* normal */
#define TknRETURN 25 /* Return */
#define TknGENERATEHEADER 26 /* [- GENERATE -] */
#define TknUSEDATFILE 27 /* usedatfile */
#define TknFAST 28
#define TknFULL 29
#define TknSPEED 30
#define TknOPENBLOCK 31
#define TknCLOSEBLOCK 32
#define PARSERSUCCESS 1
#define YES 1
#define NO 0
#define ALWAYS 1
#define NEVER 0
#define RECOVERY 1
#define NORMAL 0
#define UPDATE 1
#define LEAVE 0
int ParseIniFile (char *filename);
struct IniParserStruct *GetParsedData (void);
#endif
|