8 S.split (S.regexp "[ \r\n\t]+") s
11 let map c (b, (x1, x2)) = c, b, x1, x2 in
12 L.map (map (split s)) rs
18 %token SPACE NAME TABLE CSS SR OC CC OB CB PS OP CP AT EOF
21 %type <(string * string) list * (string * Table.table * Css.atoms) list> script
26 | SPACE TEXT TEXT { $2, $3 }
31 | space spaces { $1 :: $2 }
36 | AT OP TEXT TEXT CP { T.Link ($3, $4) }
41 | text PS texts { $1 :: $3 }
47 | NUM { T.Glue (Some $1) }
52 | CSS TEXT { split $2 }
56 | css key { T.mk_key $2 $1 }
57 | css OC tables CC { T.mk_line false $3 $1 }
58 | css OB tables CB { T.mk_line true $3 $1 }
63 | table tables { $1 :: $2 }
72 | NUM { Some $1, Some $1 }
74 | NUM NUM { Some $1, Some $2 }
75 | NUM SR { Some $1, None }
76 | SR NUM { None, Some $2 }
77 | SR SR { None, None }
81 | OB interval CB { true, $2 }
82 | OC interval CC { false, $2 }
87 | range ranges { $1 :: $2 }
91 | CSS TEXT ranges { mk_atom $2 $3 }
96 | atom atoms { $1 @ $2 }
100 | name TABLE table atoms { $1, $3, $4 }
105 | directive directives { $1 :: $2 }
109 | spaces directives EOF { $1, $2 }