// PLIST GET "SYNHDR" LET PLIST(X, N, D) BE $(1 LET SIZE = 0 LET V = TABLE 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 IF X=0 DO $( WRITES("NIL"); RETURN $) SWITCHON H1!X INTO $( CASE S.NUMBER: WRITEN(H2!X); RETURN CASE S.NAME: WRITES(X+2); RETURN CASE S.STRING: WRITEF("*"%S*"", X+1); RETURN CASE S.FOR: SIZE := SIZE + 2 CASE S.COND:CASE S.FNDEF:CASE S.RTDEF: CASE S.TEST:CASE S.CONSTDEF: SIZE := SIZE + 1 CASE S.VECAP:CASE S.FNAP: CASE S.BYTEAP: CASE S.NEEDS: CASE S.SECTION: CASE S.MULT:CASE S.DIV:CASE S.REM:CASE S.PLUS:CASE S.MINUS: CASE S.EQ:CASE S.NE:CASE S.LS:CASE S.GR:CASE S.LE:CASE S.GE: CASE S.LSHIFT:CASE S.RSHIFT:CASE S.LOGAND:CASE S.LOGOR: CASE S.EQV:CASE S.NEQV:CASE S.COMMA: CASE S.AND:CASE S.VALDEF:CASE S.VECDEF: CASE S.ASS:CASE S.RTAP:CASE S.COLON:CASE S.IF:CASE S.UNLESS: CASE S.WHILE:CASE S.UNTIL:CASE S.REPEATWHILE: CASE S.REPEATUNTIL: CASE S.SWITCHON:CASE S.CASE:CASE S.SEQ:CASE S.LET: CASE S.MANIFEST:CASE S.STATIC:CASE S.GLOBAL: SIZE := SIZE + 1 CASE S.VALOF:CASE S.LV:CASE S.RV:CASE S.NEG:CASE S.NOT: CASE S.TABLE:CASE S.GOTO:CASE S.RESULTIS:CASE S.REPEAT: CASE S.ABS: CASE S.DEFAULT: SIZE := SIZE + 1 CASE S.LOOP: CASE S.BREAK:CASE S.RETURN:CASE S.FINISH:CASE S.ENDCASE: CASE S.TRUE:CASE S.FALSE:CASE S.QUERY: DEFAULT: SIZE := SIZE + 1 IF N=D DO $( WRITES("ETC") RETURN $) WRITES ("OP") WRITEN(H1!X) FOR I = 2 TO SIZE DO $( NEWLINE() FOR J=0 TO N-1 DO WRITES( V!J ) WRITES("**-") V!N := I=SIZE->" ","! " PLIST(H1!(X+I-1), N+1, D) $) RETURN $)1 .