home *** CD-ROM | disk | FTP | other *** search
- Program Postfix (input, output);
- {
- POSTFIX program from
- PASCAL User Manual and Report
- by Jensen & Wirth
- pg. 75
-
- Modified for use with Facilis
- by John R. Naleszkiewicz
- }
-
- Var
- i : integer;
- st : string[255];
- ch : char;
-
- Procedure Find;
- Begin
- if i > Length ( st ) then
- ch := ' '
- else
- Repeat
- ch := st[i];
- i := i+1;
- until ( ch<>' ') or ( i > Length ( st ) )
- End;
-
- Procedure Expression;
- Var
- op : char;
-
- Procedure Term;
-
- Procedure Factor;
- Begin
- if ch='(' then
- Begin
- Find;
- Expression; { ch = ) }
- End
- else
- Write ( ch );
- find
- End; { Factor }
-
- Begin { Term }
- Factor;
- while ch='*' do
- Begin
- Find;
- Factor;
- Write ( '*' );
- End
- End; { Term }
-
- Begin { Expression }
- Term;
- while ( ch='+' ) OR ( ch='-' ) do
- Begin
- op := ch;
- Find;
- Term;
- Write( op );
- End
- End; { Expression }
-
- BEGIN { Main }
- Repeat
- writeln ( 'Enter expression (terminate with ".")');
- write ( '>' );
- read(st);
- i := 1;
- Find;
- if ch<>'.' then
- expression;
- writeln;
- Until ( ch='.')
- END.
-