| void abort (void); |
| void exit (int); |
| |
| typedef enum |
| { |
| END = -1, |
| EMPTY = (1 << 8 ) , |
| BACKREF, |
| BEGLINE, |
| ENDLINE, |
| BEGWORD, |
| ENDWORD, |
| LIMWORD, |
| NOTLIMWORD, |
| QMARK, |
| STAR, |
| PLUS, |
| REPMN, |
| CAT, |
| OR, |
| ORTOP, |
| LPAREN, |
| RPAREN, |
| CSET |
| } token; |
| |
| static token tok; |
| |
| static int |
| atom () |
| { |
| if ((tok >= 0 && tok < (1 << 8 ) ) || tok >= CSET || tok == BACKREF |
| || tok == BEGLINE || tok == ENDLINE || tok == BEGWORD |
| || tok == ENDWORD || tok == LIMWORD || tok == NOTLIMWORD) |
| return 1; |
| else |
| return 0; |
| } |
| |
| int |
| main (void) |
| { |
| tok = 0; |
| if (atom () != 1) |
| abort (); |
| exit (0); |
| } |