1 typedef enum
2 {
3 END = -1,
4 EMPTY = (1 << 8 ) ,
5 BACKREF,
6 BEGLINE,
7 ENDLINE,
8 BEGWORD,
9 ENDWORD,
10 LIMWORD,
11 NOTLIMWORD,
12 QMARK,
13 STAR,
14 PLUS,
15 REPMN,
16 CAT,
17 OR,
18 ORTOP,
19 LPAREN,
20 RPAREN,
21 CSET
22 } token;
23
24 static token tok;
25
26 static int
atom()27 atom ()
28 {
29 if ((tok >= 0 && tok < (1 << 8 ) ) || tok >= CSET || tok == BACKREF
30 || tok == BEGLINE || tok == ENDLINE || tok == BEGWORD
31 || tok == ENDWORD || tok == LIMWORD || tok == NOTLIMWORD)
32 return 1;
33 else
34 return 0;
35 }
36
main()37 main ()
38 {
39 tok = 0;
40 if (atom () != 1)
41 abort ();
42 exit (0);
43 }
44