https://github.com/FujiiMaika/fscd21.git
Revision ee3dc2469cc2dff1b6a00be6c96e8ce51997f219 authored by FujiiMaika on 24 June 2021, 05:34:17 UTC, committed by FujiiMaika on 24 June 2021, 05:34:17 UTC
0 parent
Tip revision: ee3dc2469cc2dff1b6a00be6c96e8ce51997f219 authored by FujiiMaika on 24 June 2021, 05:34:17 UTC
first commit
first commit
Tip revision: ee3dc24
lexer.mll
{
open Parser
}
(* Omission of regular expression *)
let space = [' ' '\t' '\n' '\r']
let digit = ['0'-'9']
let lower = ['a'-'z']
let upper = ['A'-'Z']
let alpha = lower | upper
rule token = parse
| space+ { token lexbuf } (* Skip spaces *)
| "(*" [^ '\n']* "\n" (* comment from '( *' *)
{ token lexbuf }
| "(" { LPAREN }
| ")" { RPAREN }
| "+" { PLUS }
| "-" { MINUS }
| "*" { TIMES }
| "/" { DIVIDE }
| "fun" { FUN }
| "->" { ARROW }
| "shift" { SHIFT }
| "control" { CONTROL }
| "shift0" { SHIFT0 }
| "control0" { CONTROL0 }
| "reset" { RESET }
| digit +
{ NUMBER (int_of_string (Lexing.lexeme lexbuf)) }
| lower (alpha | digit) *
{ VAR (Lexing.lexeme lexbuf) }
| eof { EOF } (* End of file *)
| _ { failwith ("unknown token: " ^ Lexing.lexeme lexbuf) }
Computing file changes ...