
/* 
 *  token.yh  --  list of tokens for spec parser.
 */
%token <symbol> ID
%token INTEGER
%token CHARACTER
%token STRINGLIT
%token OP

%token <lineno> ADD             /* ++ */
%token <lineno> ALL
%token <lineno> AND             /* /\ */
%token <lineno> APROC
%token <lineno> ARROW           /* -> */
%token <lineno> BEGN            /* begin */
%token <lineno> BOX             /* [] */
%token <lineno> CLOSEA          /* >> */
%token <lineno> DARROW          /* => */
%token <lineno> DO
%token <lineno> END
%token <lineno> ENUM
%token <lineno> EXCEPT
%token <lineno> EXCEPTION
%token <lineno> EXISTS
%token <lineno> EXP            /* ** */
%token <lineno> FORK
%token <lineno> FUNC
%token <lineno> HAVOC
%token <lineno> GE             /* >= */
%token <lineno> GETS           /* := */
%token <lineno> IN
%token <lineno> IMPLIES        /* ==> */
%token <lineno> IS
%token <lineno> LAMBDA
%token <lineno> LE             /* <= */
%token <lineno> MODULE
%token <lineno> OD
%token <lineno> OPENA          /* << */
%token <lineno> OR             /* \/ */
%token <lineno> PROC
%token <lineno> RAISE
%token <lineno> RAISES
%token <lineno> RECORD
%token <lineno> REM            /* // */
%token <lineno> REMOVE         /* -- */
%token <lineno> RET
%token <lineno> SEQ
%token <lineno> SET
%token <lineno> SKIP
%token <lineno> TYPE
%token <lineno> UNION
%token <lineno> VAR
%token <lineno> WITH
%token <lineno> XBOX           /* "[*]" */

%token <lineno> ',' ';' '(' ')' '{' '}' '[' ']'
%token <lineno> ':' '.' '$' '^' '|' '~' '*' '+' '-' '!' '<' '>' '=' '#'

%right ARROW
%left RAISES WITH

%right BOX XBOX
%nonassoc '|' DARROW
%right ';'
%nonassoc EXCEPT

%left IMPLIES
%left OR
%left AND
%right '~'
%left '=' '#' '<' LE '>' GE IN
%left '+' '-' ADD REMOVE '!'
%left '*' '/' REM OP U_OP
%left EXP
%left IS
%right UMINUS
