type expr = | Ident of string | Strlit of string | Uri of string | Concat of expr list | Number of float * string option | Function of string * expr | Hexcolor of string | Unary of string * expr | Nary of string * expr list type declaration = string * expr * bool type selector = string list type statement = | Ruleset of selector list * declaration list (* { } *) | Media of string list * statement list (* @media { } *) | Import of string * string list (* @import "" []; *) | Charset of string (* @charset ""; *) | Page of string option * declaration list (* @page [] { } *) | Fontface of declaration list (* @font-face { } *) | Namespace of string option * string (* @namespace [] ""; *) (* TODO: @document, @keyframes, @supports *) type stylesheet = statement list type args = { mutable infiles : string list; mutable outfile : string option; mutable verbose : int; } type loc = string * int * int * int * int exception SyntaxError of string exception LocError of loc * string