File GETSYM.PC

Directory of image this file is from
This file as a plain text file

BEGINN [HAUPTPROGRAMM  PASCAL-S  PARSER  VERSION:5-JUN-1980]
FUER I:=1 BIS NORW
  MACH LIES#:WORD(I);
SCHREIB "PASCAL-S  PARSER";
SCHREIB"*OUT<IN";
LIES NAME;
KLEIN:=POS(NAME,"<",1);
OUT:=NAME(1_KLEIN-1);
IN:=NAME(KLEIN+1_LEN(NAME));
WENN POS(IN,".",1)=0
DANN IN:=IN&".PS";
OEFFNE#1:IN;
CC:=0;LL:=0;CH:=" ";
WIEDERHOLE VORSYM:=SYM;
   @GETSYM; 
   SCHREIB SYM ! "   " !;
   LC:=LC+8;
   WENN LC>LLENG DANN FUEHRE SCHREIB; LC:=0 AUS
BIS SYM=21 UND VORSYM=60 [D.H.  BIS SYMBOL PUNKT GEFUNDEN]
ENDE;[HAUPTPROGRAMM]
DATEN "AND","ARRAY","BEGIN","CASE","CONST","DIV","DOWNTO";
DATEN "DO","ELSE","END","FOR","FUNCTION","IF","MOD","NIL","NOT";
DATEN "OF","OR","OTHERS","PROCEDURE","PROGRAM","RECORD","REPEAT";
DATEN "THEN","TO","TYPE","UNTIL","VAR","WHILE";
@GETCH:[GET CHARACTER]
BEGINN
WENN CC=LL
DANN FUEHRE SCHREIB; LC:=0; WENN ED#1
            DANN SCHREIB "PROGRAMM UNVOLLSTAENDIG"
            SONST FUEHRE CC:=0; SCHREIB" "!;
                 LIES#1:Z$;SCHREIB Z$;LL:=LEN(Z$) AUS
     AUS;
CC:=CC+1;CH:=SEG$(Z$,CC,CC)
ENDE;
@GETSYM:
BEGINN B:=0;
  SOLANGE CH = " " ODER CH="(" FUEHRE
    WENN CH=" " DANN @GETCH;
    WENN CH="(" DANN FUEHRE 
      @GETCH; WENN CH<>"*" DANN FUEHRE
                   B:=1; CC:=CC-1 AUS
             SONST FUEHRE WIEDERHOLE VORCH:=CH; @GETCH
                          BIS VORCH = "*" UND CH=")";@GETCH
                  AUS
    AUS
AUS;
WENN B=1 DANN CH:="(";
  WENN CH>="A" UND CH<="Z" DANN
    FUEHRE K:=0; ID:="";
      WIEDERHOLE WENN K<AL DANN FUEHRE K:=K+1; ID:=ID&CH AUS;
        @GETCH; B:=0;
          WENN CH<"A" ODER CH>"Z" DANN
               WENN CH<"0" ODER CH>"9" DANN B:=1
      BIS B=1;
SCHREIB ID "  "!; LC:=LC+12;
      I:=1; J:=NORW;
      WIEDERHOLE K:=INT((I+J)/2);
        WENN ID>WORD(K) DANN I:=K+1 SONST J:=K
      BIS I=J;
      WENN ID=WORD(I) DANN SYM:=I+50 SONST SYM:=1
AUS SONST
WENN CH >="0" UND CH<="9" DANN
  FUEHRE K:=0; INUM:=0; SYM:=2;
      WIEDERHOLE INUM:=INUM*10+VAL(CH); K:=K+1; @GETCH
      BIS CH<"0" ODER CH>"9";
      WENN K>KMAX ODER INUM>NMAX DANN FUEHRE FEHLER:=21; @ERROR;
      INUM:=0; K:=0
  AUS; RNUM:=INUM;   [ 
] WENN CH="." DANN FUEHRE @GETCH; WENN CH="." DANN CC:=CC-1 SONST FUEHRE SYM:=3; K:=0; SOLANGE CH>="0" UND CH<="9" FUEHRE K:=K-1; RNUM:=10*RNUM+VAL(CH); @GETCH AUS AUS AUS; WENN CH = "E" DANN FUEHRE SYM:=3; @GETCH; WENN CH="+" DANN @GETCH SONST WENN CH="-" DANN FUEHRE @GETCH; I:=-1 AUS; SOLANGE CH>="0" UND CH <="9" FUEHRE J:=J*10+VAL(CH); @GETCH AUS; J:=J*I+K; WENN J>EMAX ODER J<EMIN DANN FUEHRE FEHLER:=21; @ERROR; J:=0 AUS AUS; RNUM:=RNUM*10^J AUS SONST FALLS CH GLEICH ";":FUEHRE SYM:=23; @GETCH AUS; ":":FUEHRE @GETCH; WENN CH="=" DANN FUEHRE SYM:=20; @GETCH AUS SONST SYM:=24 AUS; "<":FUEHRE @GETCH;WENN CH="=" DANN FUEHRE SYM:=13; @GETCH AUS SONST WENN CH=">" DANN FUEHRE SYM:=11; @GETCH AUS SONST SYM := 12 AUS; ">":FUEHRE @GETCH; WENN CH = "=" DANN FUEHRE SYM := 15; @GETCH AUS SONST SYM:=14 AUS; ".":FUEHRE @GETCH; WENN CH="." DANN FUEHRE SYM:=25; @GETCH AUS SONST SYM:=21 AUS; "'":FUEHRE K:=0; B:=1; SYM:=5; @GETCH; WIEDERHOLE K:=K+1; WENN K>LLENG DANN FUEHRE FEHLER:=8; @FATAL AUS; WENN K+SX>SMAX DANN FUEHRE FEHLER:=7; @FATAL AUS; WENN CH="'" DANN FUEHRE @GETCH; WENN CH="'" DANN FUEHRE STAB(K+SX):=CH; @GETCH AUS SONST B:=0 AUS SONST FUEHRE STAB(K+SX):=CH; @GETCH AUS BIS B=0; SLENG:=K-1; WENN SLENG=0 DANN FUEHRE FEHLER:=3654; @ERROR; SYM:=65 AUS SONST WENN SLENG=1 DANN SYM:=4; INUM:=SX; SX:=SX+SLENG AUS; "+":FUEHRE SYM:=6; @GETCH AUS; "-":FUEHRE SYM:=7; @GETCH AUS; "*":FUEHRE SYM:=8; @GETCH AUS; "/":FUEHRE SYM:=9; @GETCH AUS; "=":FUEHRE SYM:=10; @GETCH AUS; "(":FUEHRE SYM:=16; @GETCH AUS; ")":FUEHRE SYM:=17; @GETCH AUS; "[":FUEHRE SYM:=18; @GETCH AUS; "]":FUEHRE SYM:=19; @GETCH AUS; KOMMA:FUEHRE SYM:=22; @GETCH AUS ENDE ENDE; [GETSYM] [
] @ERROR: BEGINN SCHREIB "EINFACHER FEHLER NR " ! FEHLER; ERR:=ERR+1 ENDE; @FATAL: BEGINN SCHREIB "FATALER FEHLER NR " ! FEHLER; STOP ENDE



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search