Source

lambda-translator / lexer.mll

{
(*  open Term        (* The type token is defined in parser.mli *)*)
  type token = Lambda | Dot | Ident of string | Open | Close
| Int of int | EOL
  exception Eof
}

let digit = ['0'-'9']
let alpha = ['A'-'Z' 'a'-'z' '_']

rule token = parse
  [' ' '\t']     { token lexbuf }     (* skip blanks *)
| ['\n' ]        { EOL }
| "lambda"       { Lambda }
| '\\'           { Lambda }
| '.'            { Dot }
| '('            { Open }
| ')'            { Close }
| alpha (digit|alpha)*
    { Ident (Lexing.lexeme lexbuf) }
| ['0'-'9']+     { Int (int_of_string(Lexing.lexeme lexbuf)) }
| eof            { raise Eof }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.