Skip to content

Commit 0a10b65

Browse files
committed
Add Polish and English manual
1 parent d4ab118 commit 0a10b65

File tree

4 files changed

+105
-31
lines changed

4 files changed

+105
-31
lines changed

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
# Kompilator 2024
2-
> “Tyle kodu, że ja ********.”
3-
> - Teofill Fiu - docent wydziału mechaniki teoretycznej
1+
# Compiler 2024
2+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
3+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)
4+
5+
> “There's so much code in here!”
6+
> - Theophilus Fiu - assistant professor for department of theoretical mechanics
47
![Teofill Fiu's Image](docent_Teofill_Fiu.jpg)
5-
## [Instrukcja obsługi](my_compiler/README.md)
6-
## Autor - Jakub Jaśków
8+
## [Manual](my_compiler/README.md)
9+
## Author - Jakub Jaśków
10+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
11+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)

README.pl.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Kompilator 2024
2+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
3+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)
4+
5+
> “Tyle kodu, że ja ********.”
6+
> - Teofill Fiu - docent wydziału mechaniki teoretycznej
7+
![Teofill Fiu's Image](docent_Teofill_Fiu.jpg)
8+
## [Instrukcja obsługi](my_compiler/README.md)
9+
## Autor - Jakub Jaśków
10+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
11+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)

my_compiler/README.md

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,53 @@
1-
# Autor: Jakub Jaśków - 268416
2-
# Instrukcja obsługi kompilatora
3-
## Kompilacja
4-
### Niezbędne programy
5-
Kompilacja programu testowana była pod poniżej wymienionymi wersjami programów. Zaleca się stosowanie tych samych wersji oprogramowania.
1+
# Author: Jakub Jaśków - 268416
2+
# Compiler manual
3+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
4+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)
5+
## Project compilation
6+
### Necessary programs
7+
It's recommended to build the project with the same or newer program versions than the ones listed belowe.
68
+ Bison - 3.8.2
79
+ Flex - 2.6.4
810
+ g++ - 11.4.0
911
+ GNU Make - 4.3
1012

11-
### Kompilacja programu
12-
Aby skompilować program należy umieścić wszystkie pliki wymienione w sekcji **[Pliki](#pliki)** w jednym folderze a następnie wywołać następujące komendy:
13+
### Building the compiler
14+
>\$ cd my_compiler/\
15+
>\$ make
1316
14-
>$ make
17+
After building the project, you will get a binary file called **compiler**.
1518

16-
Po kompilacji otrzymamy plik binarny o nazwie **compiler**.
19+
### Compiler usage
1720

18-
Usuwanie plików utworzonych podczas budowania:
19-
>$ make clean-all
21+
>$ ./compiler [OPTION] [INPUT_FILE] [OUTPUT_FILE]
22+
23+
#### Options:
2024

21-
### Użytkowanie programu
25+
-v verbose - will write all info/logs to standard output.
2226

23-
>$ ./compiler [OPCJA] [PLIK_WEJŚCIOWY] [PLIK_WYJŚCIOWY]
27+
**ATTENTION!**
28+
Always remember to grant execution rights to the binary file (**compiler**). How it's done on **LINUX**:
2429

25-
##### Opcje:
30+
>$ chmod u+x [FILE_NAME]
2631
27-
-v tryb verbose - drukuje wszystkie logi na standardowe wyjście.
32+
### Cleaning
2833

29-
**UWAGA!**
30-
Czasami otrzymany przez nas plik może nie chcieć się wykonać. Może to być spowodowane brakiem zezwolenia na wykonanie od strony systemu operacyjnego. Należy wtedy nadać plikowi binarnemu (**compiler**) odpowiednie prawa wykonawcze. **LINUX**:
34+
Clean all build files:
35+
>$ make clean-all
3136
32-
>$ chmod a+x [nazwa_pliku]
37+
## Files
38+
+ **grammar.y**, **lexer.lex** - definitions of lexical analyser and parser. Includes: grammar, keywords and functions from other files.
3339

34-
## Pliki
35-
+ **grammar.y**, **lexer.lex** - pliki definiujące analizatora leksykalnego i parsera. Zawierają: gramatykę, słowa kluczowe oraz funkcje z innych plików.
40+
+ **grammar.cpp**, **grammar.hpp**, **lexer.cpp** - precompiled versions of files listed above. Generated by parser and lexer.
3641

37-
+ **grammar.cpp**, **grammar.hpp**, **lexer.cpp** - prekompilowane wersje powyższych plików wygenerowanie przez parser i lekser.
42+
+ **CodeBlock.hpp**, **AST.hpp**, **AST.cpp** - headers and sources of various compiler elements. **CodeBlock.hpp** includes the definition of a code block and structures/elements used. **AST.hpp** and **AST.cpp** - define structures and classes used for construction of AST (Abstract Syntax Tree) and translation of tree nodes to pseudo assembler code.
3843

39-
+ **CodeBlock.hpp**, **AST.hpp**, **AST.cpp** - nagłowki i źródła elementów programu. **CodeBlock.hpp** zawiera definicje code blocku oraz elementów w nim używanych. **AST.hpp** i **AST.cpp** - definiują struktury i klasy używane podczas konstrukcji drzewa AST oraz tłumaczenia elementów drzewa na kod maszyny wirtualnej (pesudo assembler).
44+
+ **handlers.hpp**, **handlers.cpp** - definitions and declarations of functions responsible for handling the construction of an AST and semantic checks (variable initialization etc.).
4045

41-
+ **handlers.hpp**, **handlers.cpp** - definicje i deklaracje funkcji obłsługujących tworzenie elementów drzewa AST oraz sprawdzania poprawnej semantyki programów (sprawdzanie inicjalizacji zmiennych itp.).
46+
+ **definitions.hpp** - macros and definitions used by multiple files.
4247

43-
+ **definitions.hpp** - deklaracje używane przez wiele plików oraz makra
48+
+ **types.hpp** - mixed definition of an AST and a code block
4449

45-
+ **types.hpp** - łączona definicja CodeBlocku oraz AST
50+
+ **main.cpp** - definition and declaration of main, error and warning functions. Defines in what order the code compilation is done.
4651

47-
+ **main.cpp** - definicja i deklaracja funkcji main, error, warning oraz kolejności wykonywania części programu
52+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
53+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)

my_compiler/README.pl.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Autor: Jakub Jaśków - 268416
2+
# Instrukcja obsługi kompilatora
3+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
4+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)
5+
## Kompilacja
6+
### Niezbędne programy
7+
Kompilacja programu testowana była pod poniżej wymienionymi wersjami programów. Zaleca się stosowanie tych samych wersji oprogramowania.
8+
+ Bison - 3.8.2
9+
+ Flex - 2.6.4
10+
+ g++ - 11.4.0
11+
+ GNU Make - 4.3
12+
13+
### Kompilacja programu
14+
>\$ cd my_compiler/\
15+
>$ make
16+
17+
### Użytkowanie programu
18+
19+
>$ ./compiler [OPCJA] [PLIK_WEJŚCIOWY] [PLIK_WYJŚCIOWY]
20+
21+
#### Opcje:
22+
23+
-v tryb verbose - drukuje wszystkie logi na standardowe wyjście.
24+
25+
**UWAGA!**
26+
Czasami otrzymany przez nas plik może nie chcieć się wykonać. Może to być spowodowane brakiem zezwolenia na wykonanie od strony systemu operacyjnego. Należy wtedy nadać plikowi binarnemu (**compiler**) odpowiednie prawa wykonawcze. **LINUX**:
27+
28+
>$ chmod u+x [nazwa_pliku]
29+
30+
### Czyszczenie
31+
32+
Usuń wszystkie pliki wygenerowane przez program Make
33+
>$ make clean-all
34+
35+
36+
## Pliki
37+
+ **grammar.y**, **lexer.lex** - pliki definiujące analizatora leksykalnego i parsera. Zawierają: gramatykę, słowa kluczowe oraz funkcje z innych plików.
38+
39+
+ **grammar.cpp**, **grammar.hpp**, **lexer.cpp** - prekompilowane wersje powyższych plików wygenerowanie przez parser i lekser.
40+
41+
+ **CodeBlock.hpp**, **AST.hpp**, **AST.cpp** - nagłowki i źródła elementów programu. **CodeBlock.hpp** zawiera definicje code blocku oraz elementów w nim używanych. **AST.hpp** i **AST.cpp** - definiują struktury i klasy używane podczas konstrukcji drzewa AST oraz tłumaczenia elementów drzewa na kod maszyny wirtualnej (pesudo assembler).
42+
43+
+ **handlers.hpp**, **handlers.cpp** - definicje i deklaracje funkcji obłsługujących tworzenie elementów drzewa AST oraz sprawdzania poprawnej semantyki programów (sprawdzanie inicjalizacji zmiennych itp.).
44+
45+
+ **definitions.hpp** - deklaracje używane przez wiele plików oraz makra.
46+
47+
+ **types.hpp** - łączona definicja CodeBlocku oraz AST.
48+
49+
+ **main.cpp** - definicja i deklaracja funkcji main, error, warning oraz kolejności wykonywania części programu.
50+
51+
[![en](https://img.shields.io/badge/lang-en-green.svg)](README.md)
52+
[![en](https://img.shields.io/badge/lang-pl-red.svg)](README.pl.md)

0 commit comments

Comments
 (0)