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 *)
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 =
+ L.rev_map group ([] :: riss)
+
+let rev_mk_args iss is =
+ free "" :: X.rev_map_append group iss is