You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/Project-Doc.md
+36-1
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,46 @@
1
+
## Supported types
2
+
- Welche Types, Strukturen und deren Kombinationen werden unterstützt?
3
+
1
4
## Parser
2
5
3
6
- Wer hat welche Arbeit am Parser gemacht?
4
7
- Wie wurde Pest fürs Parsing eingesetzt? (sehr ähnlich zu ANTLR)
5
8
6
9
## Typchecker
7
10
8
-
- Wer hat welche Arbeit am Typchecker gemacht?
11
+
Geschrieben von: Maximilian Floto, Philipp Wolf
12
+
13
+
Der Typechecker akzeptiert einen Abstract Syntax Tree (AST) und gibt einen getypten AST (TAST) zurück.
14
+
Er führt eine umfassende Analyse durch, um die Typen aller Variablen und Ausdrücke im Code zu bestimmen.
15
+
Er stellt sicher, dass jede Variable vor ihrer Verwendung korrekt deklariert und initialisiert wurde, wodurch potenzielle Fehler in der Anwendung vermieden werden.
16
+
Er bestimmt die Typen aller Ausdrücke und Variablen und überprüft, ob alle Variablen vor ihrer Verwendung korrekt deklariert und initialisiert wurden.
17
+
18
+
Funktionsweise des Typecheckers:
19
+
Der Typechecker iteriert über alle übergebenen Klassen und prüft auf mehrfache Klassendeklarationen. Die Felddeklarationen werden in einem neuen getypten Klassenobjekt gespeichert, in dem alle weiteren getypten Methoden und deren Statements gespeichert werden. Anschließend iteriert der Typechecker über alle Methoden und prüft auf mehrfache Methodendeklarationen und typisiert die Methodenparameter. Nachdem alle Statements typisiert wurden, wird der Rückgabetyp der Methode geprüft und die Methode im getypten Klassenobjekt gespeichert. Nach dem Überprüfen und Typisieren der Klasse wird diese in einen Vektor an getypten Klassen gespeichert. Nachdem alle Klassen getypt wurden, wird der Vektor an getypten Klassen zurückgegeben.
20
+
21
+
Folgende Funktionen werden vom Typechecker übernommen:
22
+
- Liest alle definierten Types/Strukturen
23
+
- Typisierung aller Variablen und Ausdrücke
24
+
- Checken von mehreren Klassen
25
+
- Checken der Rückgabe-Typen von Methoden
26
+
- Ersetzen von LocalOrFieldVar durch LocalVar oder FieldVar
0 commit comments