Advertisement
Hinski2

Untitled

Jun 2nd, 2024
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. {
  2. open Parser
  3. }
  4.  
  5. let white = [' ' '\t']+
  6. let digit = ['0'-'9']
  7. let letter = ['a'-'z' 'A'-'Z' '_']
  8. let number = '-'? digit+
  9. let ident = ['a'-'z' '_'] (letter | digit)*
  10. let cname = ['A'-'Z'] (letter | digit)*
  11.  
  12. rule token =
  13. parse
  14. | '\n' { Lexing.new_line lexbuf; token lexbuf }
  15. | white { token lexbuf }
  16. | "->" { ARR }
  17. | "&&" { AND }
  18. | "||" { OR }
  19. | "=" { EQ }
  20. | "<>" { NEQ }
  21. | "<=" { LEQ }
  22. | ">=" { GEQ }
  23. | "<" { LT }
  24. | ">" { GT }
  25. | "*" { TIMES }
  26. | "+" { PLUS }
  27. | "-" { MINUS }
  28. | "/" { DIV }
  29. | "," { COMMA }
  30. | "|" { BAR }
  31. | "(" { LPAREN }
  32. | ")" { RPAREN }
  33. | "fun" { FUN }
  34. | "let" { LET }
  35. | "in" { IN }
  36. | "as" { AS }
  37. | "when" { WHEN } (* dodanie when *)
  38. | "true" { TRUE }
  39. | "false" { FALSE }
  40. | "if" { IF }
  41. | "then" { THEN }
  42. | "else" { ELSE }
  43. | "raise" { RAISE }
  44. | "try" { TRY }
  45. | "match" { MATCH }
  46. | "with" { WITH }
  47. | "end" { END }
  48. | "fst" { FST }
  49. | "snd" { SND }
  50. | "_" { UNDERSCORE }
  51. | number { INT (int_of_string (Lexing.lexeme lexbuf)) }
  52. | ident { IDENT (Lexing.lexeme lexbuf) }
  53. | cname { CNAME (Lexing.lexeme lexbuf) }
  54. | eof { EOF }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement