summaryrefslogtreecommitdiff
path: root/caml/CMlexer.mll
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2008-12-30 14:48:33 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2008-12-30 14:48:33 +0000
commit6d25b4f3fc23601b3a84b4a70aab40ba429ac4b9 (patch)
treef7adbc5ec8accc4bec3e38939bdf570a266f0e83 /caml/CMlexer.mll
parent1bce6b0f9f8cd614038a6e7fc21fb984724204a4 (diff)
Reorganized the development, modularizing away machine-dependent parts.
Started to merge the ARM code generator. Started to add support for PowerPC/EABI. Use ocamlbuild to construct executable from Caml files. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@930 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'caml/CMlexer.mll')
-rw-r--r--caml/CMlexer.mll132
1 files changed, 0 insertions, 132 deletions
diff --git a/caml/CMlexer.mll b/caml/CMlexer.mll
deleted file mode 100644
index 9854117..0000000
--- a/caml/CMlexer.mll
+++ /dev/null
@@ -1,132 +0,0 @@
-(* *********************************************************************)
-(* *)
-(* The Compcert verified compiler *)
-(* *)
-(* Xavier Leroy, INRIA Paris-Rocquencourt *)
-(* *)
-(* Copyright Institut National de Recherche en Informatique et en *)
-(* Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the GNU General Public License as published by *)
-(* the Free Software Foundation, either version 2 of the License, or *)
-(* (at your option) any later version. This file is also distributed *)
-(* under the terms of the INRIA Non-Commercial License Agreement. *)
-(* *)
-(* *********************************************************************)
-
-{
-open Camlcoq
-open CMparser
-exception Error of string
-}
-
-let blank = [' ' '\009' '\012' '\010' '\013']
-let floatlit =
- ['0'-'9'] ['0'-'9' '_']*
- ('.' ['0'-'9' '_']* )?
- (['e' 'E'] ['+' '-']? ['0'-'9'] ['0'-'9' '_']*)?
-let ident = ['A'-'Z' 'a'-'z' '_'] ['A'-'Z' 'a'-'z' '_' '0'-'9']*
-let intlit = "-"? ( ['0'-'9']+ | "0x" ['0'-'9' 'a'-'f' 'A'-'F']+
- | "0o" ['0'-'7']+ | "0b" ['0'-'1']+ )
-let stringlit = "\"" [ ^ '"' ] * '"'
-
-rule token = parse
- | blank + { token lexbuf }
- | "/*" { comment lexbuf; token lexbuf }
- | "absf" { ABSF }
- | "alloc" { ALLOC }
- | "&" { AMPERSAND }
- | "&&" { AMPERSANDAMPERSAND }
- | "!" { BANG }
- | "!=" { BANGEQUAL }
- | "!=f" { BANGEQUALF }
- | "!=u" { BANGEQUALU }
- | "|" { BAR }
- | "||" { BARBAR }
- | "^" { CARET }
- | "case" { CASE }
- | ":" { COLON }
- | "," { COMMA }
- | "default" { DEFAULT }
- | "$" { DOLLAR }
- | "else" { ELSE }
- | "=" { EQUAL }
- | "==" { EQUALEQUAL }
- | "==f" { EQUALEQUALF }
- | "==u" { EQUALEQUALU }
- | "exit" { EXIT }
- | "extern" { EXTERN }
- | "float" { FLOAT }
- | "float32" { FLOAT32 }
- | "float64" { FLOAT64 }
- | "floatofint" { FLOATOFINT }
- | "floatofintu" { FLOATOFINTU }
- | ">" { GREATER }
- | ">f" { GREATERF }
- | ">u" { GREATERU }
- | ">=" { GREATEREQUAL }
- | ">=f" { GREATEREQUALF }
- | ">=u" { GREATEREQUALU }
- | ">>" { GREATERGREATER }
- | ">>u" { GREATERGREATERU }
- | "if" { IF }
- | "in" { IN }
- | "int" { INT }
- | "int16s" { INT16S }
- | "int16u" { INT16U }
- | "int32" { INT32 }
- | "int8s" { INT8S }
- | "int8u" { INT8U }
- | "intoffloat" { INTOFFLOAT }
- | "intuoffloat" { INTUOFFLOAT }
- | "{" { LBRACE }
- | "{{" { LBRACELBRACE }
- | "[" { LBRACKET }
- | "<" { LESS }
- | "<u" { LESSU }
- | "<f" { LESSF }
- | "<=" { LESSEQUAL }
- | "<=u" { LESSEQUALU }
- | "<=f" { LESSEQUALF }
- | "<<" { LESSLESS }
- | "let" { LET }
- | "loop" { LOOP }
- | "(" { LPAREN }
- | "match" { MATCH }
- | "-" { MINUS }
- | "->" { MINUSGREATER }
- | "-f" { MINUSF }
- | "%" { PERCENT }
- | "%u" { PERCENTU }
- | "+" { PLUS }
- | "+f" { PLUSF }
- | "?" { QUESTION }
- | "}" { RBRACE }
- | "}}" { RBRACERBRACE }
- | "]" { RBRACKET }
- | "return" { RETURN }
- | ")" { RPAREN }
- | ";" { SEMICOLON }
- | "/" { SLASH }
- | "/f" { SLASHF }
- | "/u" { SLASHU }
- | "stack" { STACK }
- | "*" { STAR }
- | "*f" { STARF }
- | "switch" { SWITCH }
- | "tailcall" { TAILCALL }
- | "~" { TILDE }
- | "var" { VAR }
- | "void" { VOID }
-
- | intlit { INTLIT(Int32.of_string(Lexing.lexeme lexbuf)) }
- | floatlit { FLOATLIT(float_of_string(Lexing.lexeme lexbuf)) }
- | stringlit { let s = Lexing.lexeme lexbuf in
- STRINGLIT(intern_string(String.sub s 1 (String.length s - 2))) }
- | ident { IDENT(intern_string(Lexing.lexeme lexbuf)) }
- | eof { EOF }
- | _ { raise(Error("illegal character `" ^ Char.escaped (Lexing.lexeme_char lexbuf 0) ^ "'")) }
-
-and comment = parse
- "*/" { () }
- | eof { raise(Error "unterminated comment") }
- | _ { comment lexbuf }