(configuration weave(basic←time, commander, convert, f←s, i←o, rope, safe←storage, unsafe←storage);
definitions pascalsic; external;
definitions pascal←wizard𡤏iles; external;
program pascalsic←impl; external;
program pascal←wizard𡤏iles←impl; external;
program no←prog; trash;
definitions weave←vars(pascalsic*, pascal←wizard𡤏iles*); forward;
definitions weave←procs(pascalsic*, pascal←wizard𡤏iles*, weave←vars*); forward;
definitions weave←proc𡤊rray.hint$(pascalsic*, pascal←wizard𡤏iles*, weave←procs*, weave←vars); forward;
program weave←vars←impl1(pascalsic, pascal←wizard𡤏iles*, weave←vars*); forward;
program weave←vars←impl2(pascalsic, pascal←wizard𡤏iles*, weave←vars*); forward;
program weave←init(pascalsic, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←id(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←proc𡤊rray, weave←vars); forward;
program weave←input(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave𡤌ode(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←xref(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←low(pascalsic*, pascal←wizard𡤏iles, weave←procs*, weave←proc𡤊rray, weave←vars); forward;
program weave←parse1(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←parse2(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←output(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←proc𡤊rray, weave←vars); forward;
program weave←phase←i(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←phase←i←i(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←phase←i←i←i(pascalsic*, pascal←wizard𡤏iles, weave←procs, weave←vars, weave←proc𡤊rray); forward;
program weave←proc𡤊rray←impl.hint$(pascalsic, weave←vars); forward;
program weave𡤎xternals←impl.hint$(pascalsic, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
program weave←impl(pascalsic, pascal←wizard𡤏iles, weave←procs, weave←vars); forward;
begin
-- weave←vars←impl1 has the first 16 vars, because we can't export them all at once....
weave←vars, weave←vars←impl1 := history, xord, xchr, term←out, web𡤏ile, change𡤏ile, tex𡤏ile, buffer, phase←one, phase←three, byte←start, link, ilk, xref, name←ptr, byte←ptr, xmem, $other←types$, $other𡤌onsts$;
weave←vars, weave←vars←impl2 := $other←vars$;
weave←procs, weave←init := error, jump←out, initialize, open←input, input←ln;
weave←procs, weave←id := print←id, id←lookup, mod←lookup, prefix←lookup;
weave←procs, weave←input := lines𡤍ont←match, prime←the𡤌hange𡤋uffer, check𡤌hange, reset←input, get←line;
weave←procs, weave𡤌ode := control𡤌ode, skip←limbo, skip←tex, skip𡤌omment, copy←limbo, copy←tex, copy𡤌omment, get←next;
weave←procs, weave←xref := new←xref, new←mod←xref;
weave←procs, weave←low := flush𡤋uffer, finish←line, break←out, out←mod, out←name;
weave←procs, weave←parse1 := easyses, subses, pascal←parse, pascal←translate, outer←parse;
weave←procs, weave←parse2 := red, sq, fiveses, alphases, translate, app𡤌omment, app←octal, app←hex;
weave←procs, weave←output := push←level, get←output, output←pascal, make←output;
weave←procs, weave←phase←i := pascal←xref, outer←xref, mod𡤌heck, phase←i;
weave←procs, weave←phase←i←i := finish←pascal, footnote, phase←ii;
weave←procs, weave←phase←i←i←i := unbucket, mod←print, phase←iii;
weave←proc𡤊rray, weave←proc𡤊rray←impl := byte←mem;
weave←procs, weave𡤎xternals←impl := tty←rewrite, file←reset, file←rewrite, file𡤌lose, file←get←pos;
weave←procs, weave←impl := $other←procs$, $global←labels$, $main$
end) := weave.pas