]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
28bf4b0b | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** scanline.h | |
8 | */ | |
9 | ||
10 | # ifndef SCANLINE_H | |
11 | # define SCANLINE_H | |
12 | ||
13 | /*@constant int LASTCHAR; @*/ | |
14 | # define LASTCHAR 255 | |
15 | ||
16 | /*@constant char CHAREXTENDER; @*/ | |
17 | # define CHAREXTENDER '\\' | |
18 | ||
19 | typedef enum { | |
20 | CHC_NULL, | |
21 | IDCHAR, | |
22 | OPCHAR, | |
23 | SLASHCHAR, | |
24 | WHITECHAR, | |
25 | CHC_EXTENSION, | |
26 | SINGLECHAR, | |
27 | PERMCHAR | |
28 | } charCode; | |
29 | ||
30 | typedef struct { | |
31 | charCode code; | |
32 | bool endCommentChar; | |
33 | } charClassData; | |
34 | ||
35 | extern void lscanLine (char *); | |
36 | extern ltoken LSLScanEofToken (void); | |
37 | extern void LSLReportEolTokens (bool p_setting); | |
38 | ||
39 | extern void lscanLineInit (void); | |
40 | extern void lscanLineReset (void); | |
41 | extern void lscanLineCleanup (void); | |
42 | ||
43 | /* | |
44 | ** The following function prototypes are for use by lslinit.c, which | |
45 | ** customizes subsequent actions of scanline.c. | |
46 | */ | |
47 | ||
48 | extern charCode lscanCharClass (char p_c); | |
49 | extern bool LSLIsEndComment (char p_c); | |
50 | extern void lsetCharClass (char p_c, charCode p_cod); | |
51 | extern void lsetEndCommentChar (char p_c, bool p_flag); | |
52 | ||
53 | /*@constant int MAXLINE;@*/ | |
54 | # define MAXLINE 1000 | |
55 | ||
56 | # else | |
57 | # error "Multiple include" | |
58 | # endif |