1typedef 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
24static token tok;
25
26static int
27atom ()
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
37main ()
38{
39  tok = 0;
40  if (atom () != 1)
41    abort ();
42  exit (0);
43}
44