-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcolscan.mll
43 lines (38 loc) · 1.41 KB
/
colscan.mll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(***********************************************************************)
(* *)
(* HEVEA *)
(* *)
(* Luc Maranget, projet Moscova, INRIA Rocquencourt *)
(* *)
(* Copyright 2001 Institut National de Recherche en Informatique et *)
(* Automatique. Distributed only by permission. *)
(* *)
(* $Id: colscan.mll,v 1.7 2012-06-05 14:55:39 maranget Exp $ *)
(***********************************************************************)
{
open Lexing
exception Error of string
;;
}
rule one = parse
| ' '+ {one lexbuf}
| ('0'|'1')?'.'?['0'-'9']*
{let lxm = lexeme lexbuf in
try float_of_string lxm with _ -> assert false}
| "" {raise (Error "Syntax error in color argument")}
and other = parse
' '* ',' {one lexbuf}
| "" {raise (Error "Syntax error in color argument")}
and three = parse
""
{let fst = one lexbuf in
let snd = other lexbuf in
let thrd = other lexbuf in
fst,snd,thrd}
and four = parse
""
{let fst = one lexbuf in
let snd = other lexbuf in
let thrd = other lexbuf in
let fourth = other lexbuf in
fst,snd,thrd,fourth}