Viewman : module { # metrics textwidth : fn (text : Parseman->Text) : int;}; Parseman : module { PATH : con "/dis/lib/parseman.dis"; Metrics : adt { pagew : int; dpi : int; em : int; # size in dots en : int; # size in dots V : int; # font height in dots indent : int; ssindent : int; }; Text : adt { font : int; attr : int; text : string; heading : int; # heading level link : string; }; # Text fonts and attributes FONT_ROMAN, FONT_ITALIC, FONT_BOLD : con iota; ATTR_SMALL, ATTR_LAST : con 1 << iota; init : fn () : string; parseman : fn (fd : ref Sys->FD, metrics : Metrics, ql : int, viewer : Viewman, setline : chan of list of (int, Text));};
Viewman : module {
# metrics
textwidth : fn (text : Parseman->Text) : int;
};
Parseman : module {
PATH : con "/dis/lib/parseman.dis";
Metrics : adt {
pagew : int;
dpi : int;
em : int; # size in dots
en : int; # size in dots
V : int; # font height in dots
indent : int;
ssindent : int;
};
Text : adt {
font : int;
attr : int;
text : string;
heading : int; # heading level
link : string;
};
# Text fonts and attributes
FONT_ROMAN,
FONT_ITALIC,
FONT_BOLD : con iota;
ATTR_SMALL, ATTR_LAST : con 1 << iota;
init : fn () : string;
parseman : fn (fd : ref Sys->FD, metrics : Metrics, ql : int, viewer : Viewman, setline : chan of list of (int, Text));
};