Pes Code
Brought to you by:
dum8d0g
| File | Date | Author | Commit |
|---|---|---|---|
| doc | 2009-04-03 |
|
[253787] init |
| examples | 2009-04-03 |
|
[253787] init |
| src | 2009-08-02 |
|
[5203e3] release |
| website | 2009-08-27 |
|
[23694a] git sf move |
| .gitignore | 2009-04-03 |
|
[3b34ba] flag -Wextra to CXXFLAGS, CXX from g++ to c++ a... |
| AUTHORS | 2009-08-02 |
|
[5203e3] release |
| COPIYNG | 2009-08-02 |
|
[5203e3] release |
| Changelog | 2009-08-02 |
|
[5203e3] release |
| README | 2009-08-02 |
|
[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