odra.12 sortscan?
AUTOR: FELIKS KLUZNIAK TREESORT
* * * AUTOR: FELIKS KLUZNIAK * * *. * * * TREESORT * * *. -AJOP(".",1,"X'(X'X)")! *TWORZENIE DRZEWA I SORTOWANIE. +SORTUJ -TWORZENIE(*TREE). +TWORZENIE(*DRZEWO)-CZYTANIE(*SLOWO) -/ -UMIESZCZENIE(*SLOWO,*DRZEWO,*NOWEDRZEWO) -TWORZENIE(*NOWEDRZEWO). +TWORZENIE(*DRZEWO) -LIGNE -SORM(" WYNIK SORTOWANIA ") -LIGNE -WYPISANIE(*DRZEWO) -LIGNE. *CZYTANIE SLOWA. +CZYTANIE(*SLOWO) -SUPP(+(WCZYTANE).NIL) -/-IMPAS. +CZYTANIE(*ZNAK.*RESZTA) -LUB(*ZNAK) -NIEKONIEC(*ZNAK) -/ -CZYTANIE(*RESZTA). +CZYTANIE(NIL). +NIEKONIEC(^) -AJOUT(+(WCZYTANE).NIL) -/-IMPAS. +NIEKONIEC(*ZNAK) -ROWNY(*ZNAK.NIL,",") -/-IMPAS. +NIEKONIEC(*ZNAK). +ROWNY(*X,*X). * UMIESZCZENIE SLOWA W DRZEWIE. +UMIESZCZENIE(*SLOWO,D(*LEWE,*SLOWO,*PRAWE), D(*LEWE,*SLOWO,*PRAWE) )-/. +UMIESZCZENIE(*SLOWO, D(*LEWE,*WIERZCHOLEK,*PRAWE), D(*NOWELEWE,*WIERZCHOLEK,*PRAWE) ) -POPRZEDZA(*SLOWO,*WIERZCHOLEK) -/ -UMIESZCZENIE(*SLOWO,*LEWE,*NOWELEWE). +UMIESZCZENIE(*SLOWO,D(*LEWE,*WIERZCHOLEK,*PRAWE), D(*LEWE,*WIERZCHOLEK,*NOWEPRAWE) ) -UMIESZCZENIE(*SLOWO,*PRAWE,*NOWEPRAWE). +POPRZEDZA(NIL,*SLOWO) -/. +POPRZEDZA(*ZNAK.*RESZTA1,*ZNAK.*RESZTA2) -/ -POPRZEDZA(*RESZTA1,*RESZTA2). +POPRZEDZA(*ZNAK1.*RESZTA1,*ZNAK2.*RESZTA2) -INF(*ZNAK1,*ZNAK2). * WYPISANIE DRZEWA. +WYPISANIE(ZMIENNACZYLIKONIECGALEZI) -/. +WYPISANIE(D(*LEWE,*WIERZCHOLEK,*PRAWE)) -WYPISANIE(*LEWE) -SORM(*WIERZCHOLEK) -SORM(",") -WYPISANIE(*PRAWE). -SORTUJ! TO,JEST,TEST,SORTU,Z,DRZEWEM^ -SORTUJ! A,TO,JESZCZE,JEDNA,PROBA^ -SORTUJ! LITWO,OJCZYZNO MOJA,TY JESTES JAK ZDROWIE,WIELE CIE TRZEBA CENIC,TEN TYLKO SIE D OWIE,KTO CIE STRACIL,DZIS PIEKNO TWE W CALEJ OZDOBIE WIDZE,I OPISUJE,BO TESKNIE PO TOBIE,MATKO SWIETA,CO W OSTREJ,ITP,ITP.,0,1,1984,1410,1797,813,1453,QWE, I TO BY BYLO NA TYLE^ * ANALIZATOR LEKSYKALNY. -SOP! -AJOP(".",1,"X'(X'X)" )! +SYMBOL(*SYM) -LINIA(NIL) -NOWALINIA -IMPAS. +SYMBOL(*SYM) -LINIA(*L) -SYNTAXE(SSYMB(*SIM).*R,*L) -MODYF(*SYM,*SIM,*R) . +NOWALINIA -LUB(*Z) -CZYTAJ(*Z,*L) -AJOUTP(+(LINIA(*L)).NIL) . +MODYF(*SYM,NIL,*R) -/ -NOWALINIA -SYMBOL(*SYM) . +MODYF(*SIM,*SIM,*R) -AJOUTP(+(LINIA(*R)).NIL) . +CZYTAJ(*Z,*Z.NIL) -ENTFIN -/ . +CZYTAJ(*Z,*Z.*CD) -LU(*ZZ) -CZYTAJ(*ZZ,*CD) . +LINIA(NIL) . %SSYMB(*SYM) == %SPACJE %KOMENT %SYMB(*SYM) %SPACJE . %SPACJE == #*S -BLANC(*S) -/ %SPACJE . %SPACJE == . %KOMENT == #*N #*G -PARG(*N) -ETOILE(*G) -/ %RESZTKOM %SPACJE %KOMENT . %KOMENT == . %RESZTKOM == #*G #*N -ETOILE(*G) -PARD(*N) -/ . %RESZTKOM == #*Z -/ %RESZTKOM . %RESZTKOM == -DIAGN("NIEDOKONCZONY KOMENTARZ") . +DIAGN(*D) -LIGNE -SORM("****** ") -SORM(*D) -SORM(" ******") -LIGNE -/(-(SYMBOL(*X))) -AJOUTP(+(LINIA(NIL)).NIL) -IMPAS. %SYMB(*TEKST) == #' %CIAGZN(*TEKST) -/ . %SYMB(NIL) == #' -DIAGN("NIEDOKONCZONY TEKST") . %SYMB(*IDENT) == #*L -LETTRE(*L) -/ %ALFA(*CIAG) -UNIV(*NAZWA,(*L.*CIAG).NIL) -FILTR(*NAZWA,*IDENT) . %SYMB(NUM(*N)) == %CALK(*ZAPIS) -/ -UNIV(*N,*ZAPIS.NIL) . %SYMB(OP(*Z)) == #*Z -OP(*Z) -/ . %SYMB(=) == #: #= -/ . *SYMBOL PODSTAWIENIA. %SYMB(LE) == #< #= -/ . %SYMB(NE) == #< #> -/ . %SYMB(LT) == #< -/ . %SYMB(GE) == #> #= -/ . %SYMB(GT) == #> -/ . %SYMB(EQ) == #= -/ . %SYMB(KL) == #*N #*K -PARG(*N) -POINT(*K) -/ . *KWADRATOWY LEWY. %SYMB(NL) == #*N -PARG(*N) -/ . %SYMB(KP) == #*K #*N -POINT (*K) -PARD(*N) -/ . *KWADRATOWY PRAWY. %SYMB(KR) == #*K -POINT(*K)-/ . %SYMB(SP) == #*S -BLANC(*S) -/ . %SYMB(PR) == #*P -VIRG(*P) -/ . %SYMB(NP) == #*N -PARD(*N) -/ . %SYMB(*SYM) == #*SYM -/ . %SYMB(NIL) == . %CIAGZN('.*CD) == #' #' -/ %CIAGZN(*CD) . %CIAGZN(NIL) == #' -/ . %CIAGZN(*Z.*CD) == #*Z %CIAGZN(*CD) . %ALFA(*Z.*CD) == #*Z -ALFANUM(*Z) -/ %ALFA(*CD) . %ALFA(NIL) == . +ALFANUM(*Z) -LETTRE(*Z) -/ . +ALFANUM(*Z) -CHIFFRE(*Z) . +FILTR(*N,*N) -*N -/ . *SLOWO KLUCZOWE. +FILTR(*N,OP(*N)) -OP(*N) -/ . +FILTR(*N,ID(*N)) . %CALK(*ZAPIS) == %ZERA %CYFRY(*ZAPIS) . %ZERA #*C == #0 %ZERA #*C -CHIFFRE(*C) -/ . %ZERA == . %CYFRY(*C.*CD) == #*C -CHIFFRE(*C) %CYFRY(*CD) -/ . %CYFRY(*C.NIL) == #*C -CHIFFRE(*C) . +BEGIN. +CONST. +DO. +ELSE. +END. +FUNCTION. +IF. +PROCEDURE. +PROGRAM. +REPEAT. +THEN. +TYPE. +UNTIL. +VAR. +WHILE. +OP(+) -/ . +OP(-) -/ . +OP(/) -/ . +OP(*G) -ETOILE(*G) -/ . +OP(DIV) -/ . +OP(MOD) -/ . +OP(NOT) -/ . +OP(AND) -/ . +OP(OR) . +TEST -PETLA . +PETLA -SYMBOL(*SYM) -&(*SYM) -IMPAS . +PETLA -PETLA . +&(&) -/(-(TEST)) -IMPAS . +&(*SYM) -SORT(*SYM) -LIGNE . +AJOUTP(+(LINIA(*X)).NIL) -SUPP(+(LINIA(*Y)).NIL) -AJOUT(+(LINIA(*X)).NIL) . -TEST! BEGIN CONST X= -077^ VAR A,B,C,D: INTEGER^ IF X >S 003 THEN S:=L^ WHILE Q(.'ABC'.) DO NIL^ THIS (* IS A TEST*) END. & -TEST! A BC (*KLM D EFG 'NIEDOKONCZ & -TTY!