| title | author |
|---|---|
Bytecode-Generator |
Paul Lehman |
Einstiegspunkt: de.flyndre.flompiler.bytecodegenerator.BytecodeGenerator
Der Einstiegspunkt der Klasse ist die Methode "generateByteCode", welcher der AST übergeben wird.
Der AST wird rekrusiv von oben nach unten hin abgearbeitet und in ByteCode konvertiert.
Die Methode generateByteCode ruft dabei für jede Klasse die Methoden "generateByteCodeFields", "generateByteCodeForConstructors" und "generateByteCodeForMethods"auf. Weitere Untermethoden konvertieren anschließend die Statements und Expressions in Bytecode.
Die Methode "generateByteCodeForStatements" konvertiert das übergebene Statement in Bytecode. Dafür wird es über Pattern Matching dem entsprechenden Typ zugeordnet und die jeweilige Submethode aufgerufen.
Die Methode "generateByteCodeForExpressions" konvertiert die übergebene Expression in Bytecode. Sie wird von den verschiedenen Statement-Methoden aufgerufen. Die Vorgehensweise funktioniert gleich wie die von "generateByteCodeForStatements".