1 /*-----------------------------------------------------------------------
2 
3 File  : cio_basicparser.h
4 
5 Author: Stephan Schulz
6 
7 Contents
8 
9   Parsing routines for useful C build-in ans some general CLIB
10   datatypes not covered by the scanner.
11 
12   Copyright 1998, 1999 by the author.
13   This code is released under the GNU General Public Licence and
14   the GNU Lesser General Public License.
15   See the file COPYING in the main E directory for details..
16   Run "eprover -h" for contact information.
17 
18 Changes
19 
20 <1> Mon Sep  8 16:34:11 MET DST 1997
21     New
22 
23 -----------------------------------------------------------------------*/
24 
25 #ifndef CIO_BASICPARSER
26 
27 #define CIO_BASICPARSER
28 
29 #include <clb_ddarrays.h>
30 #include <clb_pstacks.h>
31 #include <cio_scanner.h>
32 
33 /*---------------------------------------------------------------------*/
34 /*                    Data type declarations                           */
35 /*---------------------------------------------------------------------*/
36 
37 typedef enum
38 {
39    SNNoNumber,
40    SNInteger,
41    SNRational,
42    SNFloat
43 }StrNumType;
44 
45 
46 /*---------------------------------------------------------------------*/
47 /*                Exported Functions and Variables                     */
48 /*---------------------------------------------------------------------*/
49 
50 
51 long       ParseInt(Scanner_p in);
52 double     ParseFloat(Scanner_p in);
53 StrNumType ParseNumString(Scanner_p in);
54 long       DDArrayParse(Scanner_p in, DDArray_p array, bool brackets);
55 char*      ParseFilename(Scanner_p in);
56 char*      ParsePlainFilename(Scanner_p in);
57 char*      ParseBasicInclude(Scanner_p in);
58 char*      ParseDottedId(Scanner_p in);
59 void       AcceptDottedId(Scanner_p in, char* expected);
60 char*      ParseContinous(Scanner_p in);
61 
62 void       ParseSkipParenthesizedExpr(Scanner_p in);
63 
64 #endif
65 
66 /*---------------------------------------------------------------------*/
67 /*                        End of File                                  */
68 /*---------------------------------------------------------------------*/
69 
70 
71 
72 
73 
74