A large commit.
[pdp8.git] / sw / src / pascal / POSTFI.PS
CommitLineData
81e70d48
PH
1PROGRAM POSTFIX(INPUT,OUTPUT);
2
3(* CONVERSION TO POSTFIX FORM *)
4
5VAR CH : CHAR;
6
7PROCEDURE FIND;
8BEGIN REPEAT READ(CH)
9 UNTIL (CH<>" ") AND NOT EOLN
10END;
11
12PROCEDURE EXPRESSION;
13 VAR OP : CHAR;
14
15 PROCEDURE TERM;
16
17 PROCEDURE FACTOR;
18 BEGIN IF CH="(" THEN
19 BEGIN FIND; EXPRESSION; (* CH = ) *)
20 END ELSE WRITE(CH);
21 FIND
22 END; (*FACTOR*)
23
24 BEGIN FACTOR;
25 WHILE CH="*" DO
26 BEGIN FIND; FACTOR; WRITE("*")
27 END
28 END; (*TERM*)
29
30BEGIN TERM;
31 WHILE (CH="+")OR(CH="-") DO
32 BEGIN OP := CH; FIND; TERM; WRITE(OP)
33 END
34END; (*EXPRESSION*)
35
36BEGIN FIND;
37 REPEAT WRITE(" ");
38 EXPRESSION;
39 WRITELN
40 UNTIL CH="."
41END.