module L = List
+module X = Ground
+
type item = Free of string (* free text *)
+ | Text of string (* quoted text *)
| Macro of string (* macro *)
| Group of text (* group *)
+ | Note of string (* comment *)
and text = item list (* structured text *)
let file_ext = ".tex"
-let empty = [Free ""]
-
-let newline = [Free "%\n"]
-
let group s = Group s
-let arg s = Group [Free s]
+let arg s = Group [Text s]
-let mk_rev_args riss =
- L.rev_map group (empty :: riss)
+let free s = Group [Free s]
let mk_segs us =
L.rev_map arg ("" :: (L.rev us))
+
+let mk_rev_args riss is =
+ X.rev_map_append group ([] :: riss) is
+
+let rev_mk_args iss is =
+ free "" :: X.rev_map_append group iss is