Back to the Coda Page

The compiler Page

Grammar



Tokens and Keywords



Lexic

The lexer defines the following tokens. All other tokens are keywords.
       [' ' '\t']           	(* skip blanks *)
       '\n' 			(* skip blanks *)
       '='			{ EQUAL }
       '~'                      { OBSEQ }
       "::"			{ DOUBLECOLON }
       ":="			{ ASSIGN }
       ':'			{ COLON }
       ';'			{ SEMICOLON }
       ','			{ COMMA }
       '('			{ OPAREN }
       ')'			{ CPAREN }
       '['			{ OBRACKET }
       ']'			{ CBRACKET }
       '('			{ OPAREN }
       ')'			{ CPAREN }
       "->"			{ ARROW }
       '{'			{ OBRACE}
       '}'			{ CBRACE}
       '%' [^'\n'] *		 -> Comment
       "(*"			 -> Comment

       "PVS " 			{ PVS_FORMULA( f ) }

       '"'                      -> String

       "Proj_"[0-9]+            { PROJ_N(i) }

       ['A'-'Z' 'a'-'z']['A'-'Z' 'a'-'z' '_' '0'-'9' '?']*
                                { ID( lexeme lexbuf ) }
       ['0'-'9']+		{ VALUE(int_of_string(lexeme lexbuf))}
       _			{ raise Parsing.Parse_error }

       eof			{ EOF }
PVS formulas start with "PVS " and have to be terminated with "ENDPVS". Strings are enclosed in double quotes ("), Backslash (\) can be used as escape character (eg "\""). Comments are either PVS style starting with "%" including anything until the end of the line or CAML style "(* ... *)".

Back to the Coda Page


Last modified: 23 Jan 2002 by Hendrik