12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- module templt; %% GENTRAN Template Processing Routines %%
- %% Author: Barbara L. Gates %%
- %% December 1986 %%
- % Entry Points: ProcCTem, ProcFortTem, ProcRatTem
- % Moved to separate language modules - JHD December 1987
- symbolic$
- % User-Accessible Global Variables %
- global '(gentranlang!* !$!#)$
- fluid '(!*gendecs)$
- share gentranlang!*, !$!#$
- gentranlang!* := 'fortran$
- !$!# := 0$
- switch gendecs$
- global '(!*space!* !*stdout!* !$eof!$ !$eol!$)$
- % GENTRAN Global Variables %
- !*space!* := '! $
- fluid '(!*mode)$
- %% %%
- %% Text Processing Routines %%
- %% %%
- %% %%
- %% Template File Active Part Handler %%
- %% %%
- symbolic procedure procactive;
- % active parts: ;BEGIN; ... ;END; %
- % eof markers: ;END; %
- begin scalar c, buf, mode, och, !*int,!*errcont;
- % By turning INT off we avoid some excess blank lines, and avoid trouble
- % with END being caught by BEGIN1. We use !*errcont to recover
- % gracefully when an error is caught in the template.
- !*errcont := 't;
- c := readch();
- if c eq 'e then
- if (c := readch()) eq 'n then
- if (c := readch()) eq 'd then
- if (c := readch()) eq '!; then
- return !$eof!$
- else buf := '!;end
- else buf := '!;en
- else buf := '!;e
- else if c eq 'b then
- if (c := readch()) eq 'e then
- if (c := readch()) eq 'g then
- if (c := readch()) eq 'i then
- if (c := readch()) eq 'n then
- if (c := readch()) eq '!; then
- <<
- mode := !*mode;
- !*mode := 'algebraic;
- och := wrs cdr !*stdout!*;
- begin1();
- wrs och;
- !*mode := mode;
- linelength 150;
- return if (c := readch()) eq !$eol!$
- then readch()
- else c
- >>
- else buf := '!;begin
- else buf := '!;begi
- else buf := '!;beg
- else buf := '!;be
- else buf := '!;b
- else buf := '!;;
- pprin2 buf;
- return c
- end$
- endmodule;
- end;
|