Pes Code
Brought to you by:
dum8d0g
File | Date | Author | Commit |
---|---|---|---|
doc | 2009-04-03 | Martin Kopta | [253787] init |
examples | 2009-04-03 | Martin Kopta | [253787] init |
src | 2009-08-02 | Martin Kopta | [5203e3] release |
website | 2009-08-27 | Martin Kopta | [23694a] git sf move |
.gitignore | 2009-04-03 | Martin Kopta | [3b34ba] flag -Wextra to CXXFLAGS, CXX from g++ to c++ a... |
AUTHORS | 2009-08-02 | Martin Kopta | [5203e3] release |
COPIYNG | 2009-08-02 | Martin Kopta | [5203e3] release |
Changelog | 2009-08-02 | Martin Kopta | [5203e3] release |
README | 2009-08-02 | Martin Kopta | [5203e3] release |
Project 'pes' is completely documented and written in czech language, because it is created for study purposes (for czech students). Primitivni programovaci jazyk 'pes' =================================== KOMPILACE ========= Pro preklad kompilatoru jazyka pes ze zdrojovych kodu do binarni podoby potrebujete prekladac jazyka c++ (ve kterem je kompilator jazyka pes napsan). Nejvhodnejsi je kompilator g++ (ze sady kompilacnich nastroju gcc). Lze pouzit i kompilator c++ dodavany se solarisem a nektere dalsi prekladace c++. Preklad byl bezchybne proveden na operacnich systemech GNU/Linux, FreeBSD a Solaris. Zdrojove kody programu jsou obsazeny v adresari 'src/' v nemz se nachazi take soubor 'Makefile', ve kterem je ulozen navod na sestaveni programu. Makefile lze pouzit pomoci prikazu 'make' na operacnich systemech typu GNU/Linux, popripade prikazem 'gmake' na UNIXovych operacnich systemech. Priklad kompilace: $ cd src/ $ make c++ -Wall -Wextra -pedantic -ansi -c -o pesc.o pesc.cpp c++ -Wall -Wextra -pedantic -ansi -c -o lexan.o lexan.cpp c++ -Wall -Wextra -pedantic -ansi -c -o synan.o synan.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cUzel.o cUzel.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cProgram.o cProgram.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cDokud.o cDokud.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cPokud.o cPokud.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cPodminka.o cPodminka.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cPrirazeni.o cPrirazeni.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cVraceni.o cVraceni.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cSoucet.o cSoucet.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cRozdil.o cRozdil.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cNasobek.o cNasobek.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cPodil.o cPodil.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cIdentifikator.o cIdentifikator.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cInt.o cInt.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cFloat.o cFloat.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cBlok.o cBlok.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cPrikaz.o cPrikaz.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cVyraz.o cVyraz.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cTerm.o cTerm.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cZbTermu.o cZbTermu.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cFaktor.o cFaktor.cpp c++ -Wall -Wextra -pedantic -ansi -c -o cTS.o cTS.cpp c++ -Wall -Wextra -pedantic -ansi -o pesc pesc.o lexan.o synan.o cUzel.o \ cProgram.o cDokud.o cPokud.o cPodminka.o cPrirazeni.o cVraceni.o \ cSoucet.o cRozdil.o cNasobek.o cPodil.o cIdentifikator.o cInt.o \ cFloat.o cBlok.o cPrikaz.o cVyraz.o cTerm.o cZbTermu.o cFaktor.o cTS.o $ # hotovo Pokud se neco nepodari, kontaktujte prosim autora (viz AUTOR) SPUSTENI ======== Pro spusteni je potreba mit prelozeny program 'pesc'. Ten ziskate pomoci informaci uvedenych v sekci KOMPILACE. Po uspesne kompilaci by jste meli obdrzet binarni soubor 'src/pesc'. Tento program bere jako jediny parametr - nazev souboru, ve kterem je ulozen kod v programovacim jazyce PES. Priklad spusteni: $ ./pesc ../examples/euklid.pes > euklid.j SOUBORY ======= doc/grammar/ebnf.txt - syntaxe zapsana pomoci EBNF doc/grammar/syngram.txt - syntakticka pravidla v klasickem zapisu doc/grammar/semgram_ast.txt - semanticka pravidla (pouziti vnitrni formy) doc/grammar/vnitrniforma.txt - doplnujici soubor pro semanticka pravidla doc/grammar/semgram_atg.txt - semanticka pravidla ZASTARALE! doc/setsAndTable.html - mnoziny FIRST a FOLLOW, rozkladova tabulka doc/lexFA.png - lexikalni analyzator jako obrazek automatu doc/lexFA.dot - lexikalni analyzator popsany jako automat v jazyce DOT src/Makefile - postup pro kompilaci projektu src/lexan.cpp - kod lexikalniho analyzatoru src/lexan.h - hlavicka pro lexikalni analyzator src/synan.cpp - kod syntaktickeho analyzatoru src/synan.h - hlavicka pro syntakticky analyzator src/pesc.cpp - hlavni zdrojovy soubor src/cTS.cpp - kod tabulky symbolu src/cTS.h - hlavicka tabulky symbolu ... - dalsi tridy a hlavicky examples/euklid.pes - eukliduv algoritmus pro GCD examples/faktorial.pes - vypocet faktorialu examples/linearni_rovnice.pes - reseni linearni rovnice ax+b=0 examples/mocnina.pes - pocitani mocniny a^x examples/nic.pes - nejmensi program examples/operace.pes - ukazka operaci examples/rocnivyplata.pes - vypocet rocni vyplaty examples/vypocet_obvodu_kruhu.pes - vypocet obvodu kruhu examples/sigma.pes - sigma funkce (http://en.wikipedia.org/wiki/Divisor_function) examples/oneline.pes - ukazka zhustene syntaxe examples/zisk.pes - vypocet zisku