(file) Return to mlex.mll CVS log (file) (dir) Up to [venge] / src / mkc

 1 graydon 1.1 (* simplified lexical structure of make(1) language *)
 2             
 3             {
 4               open Lexing
 5               open String
 6             }
 7             
 8             let special = ['$' '@' '<' '^' '(' ')' '=' ':' '%']
 9             let nq = ("\\\""|[^'"'])
10             let sym = ['-' '_' '.' 'a'-'z''A'-'Z''0'-'9']*
11             
12             rule token = parse
13                 ' '*  { token lexbuf }
14               | ('#' [^'\n']*)? ('\n'+) { ("EOL", "") }
15               | '\t'       { ("TAB", "") }
16               | eof        { ("EOF", "") }
17               | (sym | '"' nq* '"') { ("WORD",   lexeme lexbuf) }
18               | special { ("", lexeme lexbuf)}

graydon hoare
Powered by
ViewCVS 0.9.2