MODULE B;
Generated by m3bundle; see its manpage.
IMPORT Bundle, BundleRep, Text;
TYPE T = Bundle.T OBJECT OVERRIDES
get := LookUp;
getNames := GetNames;
END;
TYPE Texts = REF ARRAY OF TEXT;
VAR
bundle: T := NIL;
names : Texts := NIL;
PROCEDURE Get(): Bundle.T =
BEGIN
IF (bundle = NIL) THEN bundle := NEW (T) END;
RETURN bundle;
END Get;
PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
BEGIN
IF names = NIL THEN
names := NEW (Texts, NUMBER (Names));
names^ := Names;
END;
RETURN names;
END GetNames;
PROCEDURE LookUp (<*UNUSED*> self: T; element: TEXT): TEXT =
BEGIN
FOR i := 0 TO LAST (Names)-1 DO
IF Text.Equal (Names[i], element) THEN
RETURN Elements[i];
END;
END;
RETURN NIL;
END LookUp;
CONST Names = ARRAY [0..4] OF TEXT {
"make",
"tex",
"xmpl",
"header",
NIL
};
CONST Elements = ARRAY [0..4] OF TEXT {
E0,
E1,
E2,
E3,
NIL
};
CONST E0 =
"# Copyright (C) 1992, Digital Equipment Corporation \n# All rights rese"
& "rved.\n# See the file COPYRIGHT for a full description.\n#\n# Last modi"
& "fied on Thu Jan 7 10:55:33 PST 1993 by muller .\n\n"
& "\nTEXFILES = Example.i.tex\nDOCNAME = Example\n\n# TEXFILES should be a"
& " list of names of the tex files that\n# are generated by m3totex\n\n# D"
& "OCNAME should be the name of the document\n\n# make DOCNAME.dvi will ma"
& "ke TeX\'s dvi (device independent file)\n\n# make proof will make DOCNA"
& "ME.ps (a postscript file) which can\n# be viewed with psview\n\n# make "
& "print will print the document.\n\nall: $(TEXFILES) $(DOCNAME).dvi\n\n$("
& "DOCNAME).dvi: $(DOCNAME).tex $(TEXFILES)\n\tlatex $(DOCNAME).tex\n\npri"
& "nt: $(DOCNAME).dvi\n\tdvips $(DOCNAME).dvi\n\nproof: $(DOCNAME).dvi\n\t"
& "dvips -o $(DOCNAME).ps $(DOCNAME).dvi\n\tpsview $(DOCNAME).ps\n\n.SUFFI"
& "XES: .i3 .i.tex .m3 .m.tex\n\n.i3.i.tex: \n\tm3totex $*.i3\n\n.m3.m.tex"
& ": \n\tm3totex $*.m3\n\n\n";
CONST E1 =
"%\n% Copyright (C) 1992, Digital Equipment Corporation \n% All rights r"
& "eserved.\n% See the file COPYRIGHT for a full description.\n%\n% Last m"
& "odified on Thu Jan 7 10:55:10 PST 1993 by muller ."
& "\n%\n\\documentstyle{article}\n\n\\begin{document}\n\n\\section{Example"
& " interface}\n\n\\input{Example.i.tex}\n\n\\end{document}\n";
CONST E2 =
"(* Copyright (C) 1992, Digital Equipment Corporation "
& " *)\n(* All rights reserved. "
& " *)\n(* See the file COPYRIGHT for a full description. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jan 7 "
& "10:54:49 PST 1993 by muller *)\n(* "
& " *)\n(* The abov"
& "e lines, and this line, and all lines up \n to the first blank line, "
& "will be skipped by M3ToTex *)\n\n(* The \"Example\" interface shows how"
& " to use \"m3totex\". *)\n\nINTERFACE Example;\n\nTYPE T <: ROOT;\n\n(* "
& "An \"Example.T\" is an opaque object type. *)\n\nPROCEDURE P(t: T; VAR "
& "(*OUT*) n: INTEGER);\n(* Replace \"t\" by its hyperbolic completion and"
& "\n store its specular index in \"n\". *)\n\n(* Comments that do not s"
& "tart in the first column are\n typeset like program text (for example"
& ", the comment\n \"OUT\" in the signature of \"P\").\n\n Comments th"
& "at start in the first column and are not\n preceded by a blank line a"
& "re indented and slanted.\n They are intended to be used for short sum"
& "mary procedure\n specifications, like the one following the declarati"
& "on\n of \"P\".\n\n Comments that start in the first column and are\n"
& " preceded by a blank line are typeset in ordinary\n roman text, exc"
& "ept that quoted words are typeset\n like program text (for example, \""
& "Example.T\"). \n\n If you want to include some verbatim material in a"
& " comment, precede\n each verbatim line by a vertical-bar and a space."
& " For example,\n\n| VAR t := NEW(t); n: INTEGER; BEGIN\t\n| WHILE n #"
& " 0 DO \n| P(t, n);\n| `reduce the specular index of \"t\"`.\n| "
& " END\n| END\n\nNotice that you can escape into roman type by using \nb"
& "ack-quotes. *)\n\nEND Example.\n";
CONST E3 =
"% Copyright (C) 1992, Digital Equipment Corporation\n% All rights reser"
& "ved.\n% See the file COPYRIGHT for a full description.\n%\n% Last modif"
& "ied on Thu Jan 7 10:51:40 PST 1993 by muller\n%\n\\font\\ttslant=cmslt"
& "t10\n\\font\\ttstraight=cmtt10\n\\font\\rmslant=cmsl10\n\\def\\tt{\\tts"
& "traight}\n\\def\\indentation{24pt}\n\\def\\tab{$ $\\hbox to \\indentati"
& "on{\\hss}}\n\\long\\def\\procspec#1{{\\advance\\leftskip by \\indentati"
& "on\n \\noindent\\rightskip = 0pt plus2em\\rmslant\\def\\tt{\\ttslant}\\"
& "ignorerm#1}}\n\\def\\ignorerm\\rm{}\n\\def\\display{\\tab\\parskip=0pt\\"
& "advance\\baselineskip by -0.5pt\\tt }\n\\def\\progmode{\\advance\\basel"
& "ineskip by -0.5pt}\n";
BEGIN
END B.