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
|
/*-----------------------------------------------------------------------
File : cio_basicparser.h
Author: Stephan Schulz
Contents
Parsing routines for useful C build-in ans some general CLIB
datatypes not covered by the scanner.
Copyright 1998-2020 by the author.
This code is released under the GNU General Public Licence and
the GNU Lesser General Public License.
See the file COPYING in the main E directory for details..
Run "eprover -h" for contact information.
Created: Mon Sep 8 16:34:11 MET DST 1997
-----------------------------------------------------------------------*/
#ifndef CIO_BASICPARSER
#define CIO_BASICPARSER
#include <clb_ddarrays.h>
#include <clb_pstacks.h>
#include <cio_scanner.h>
/*---------------------------------------------------------------------*/
/* Data type declarations */
/*---------------------------------------------------------------------*/
typedef enum
{
SNNoNumber,
SNInteger,
SNRational,
SNFloat
}StrNumType;
/*---------------------------------------------------------------------*/
/* Exported Functions and Variables */
/*---------------------------------------------------------------------*/
bool ParseBool(Scanner_p in);
intmax_t ParseIntMax(Scanner_p in);
long ParseInt(Scanner_p in);
long ParseIntLimited(Scanner_p in, long lower, long upper);
uintmax_t ParseUIntMax(Scanner_p in);
double ParseFloat(Scanner_p in);
StrNumType ParseNumString(Scanner_p in);
long DDArrayParse(Scanner_p in, DDArray_p array, bool brackets);
char* ParseFilename(Scanner_p in);
char* ParsePlainFilename(Scanner_p in);
char* ParseBasicInclude(Scanner_p in);
char* ParseDottedId(Scanner_p in);
void AcceptDottedId(Scanner_p in, char* expected);
char* ParseContinous(Scanner_p in);
void ParseSkipParenthesizedExpr(Scanner_p in);
#endif
/*---------------------------------------------------------------------*/
/* End of File */
/*---------------------------------------------------------------------*/
|