Advertisement
Guest User

Lex.fsl

a guest
Dec 30th, 2013
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.71 KB | None | 0 0
  1.  
  2. {
  3.  
  4. module Lex
  5.  
  6. open Microsoft.FSharp.Text.Lexing
  7. open Par;
  8.  
  9. let lexemeAsString lexbuf =
  10.     LexBuffer<char>.LexemeString lexbuf
  11.  
  12. }
  13.  
  14. let char      = ['a'-'z' 'A'-'Z']
  15. let aps       = '\''
  16. let eps       = "eps"
  17. let star      = '*'
  18. let alt       = '|'
  19. let lpar      = '('
  20. let rpar      = ')'
  21. let whitespace = [' ' '\t' '\r' '\n']
  22.  
  23. rule Token = parse
  24.   | char             { Token lexbuf }
  25.   | aps              { APS }
  26.   | eps              { EPS }
  27.   | star             { STAR }
  28.   | alt              { ALT }
  29.   | lpar             { LPAR }
  30.   | rpar             { RPAR }
  31.   | whitespace       { Token lexbuf }
  32.   | eof              { EOF }
  33.   | _                { failwith "Lexer error: illegal symbol" }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement