initial
[prop.git] / tools / test / g7.pcc
blobb2d7984e8960b556906b28702f7ca9e4264c9b54
1 ////////////////////////////////////////////////////////////////////////////
2 //  This file demonstrates the use of the syntax declaration.
3 ////////////////////////////////////////////////////////////////////////////
5 #include <iostream.h>
7 lexemetype Token = IDENT   "[a-zA-Z_][a-zA-Z0-9_]*" 
8                  | INTEGER "[0-9]+"
9                  | IF      "if" 
10                  | THEN    "then"
11                  | ELSE    "else"
12                  | WHILE   "while"
13                  | DO      "do"
14                  ; 
16 int get_token()
17 {  for(;;) {
18       lexscan(cin) {
19          case IDENT:           return IDENT;
20          case INTEGER:         return INTEGER;
21          case IF:              return IF;
22          case THEN:            return THEN;
23          case ELSE:            return ELSE;
24          case WHILE:           return WHILE;
25          case DO:              return DO;
26          case "[(),{}+\-*/]":  return ?token[0];
27          case "(\t| |\n)":     break;
28          case eof:             return EOF;
29       }
30    }
33 syntax class Simple {};
35 syntax Simple 
37    Opts : Opt Opt ;
38    Opt  : IDENT ;