Ergänzung fehlender Basistypen byte, short, long, float und double 17. Ausbaustufe
Basistypen2 Übersicht Scanner Parsergrammatik Model Referencer Printer und Sourceprinter
Basistypen3 Scanner States: Erkennung von Zahlen in folgender Form: –Ganzzahlkonstanten long und int Oktalnotation (017) Hexadezimalnotation (0xff) Dezimalnotation (12) –Fließkommazahlkonstante Standardnotation (1.23f bzw. 1.23) Exponentialnotation (1.23e-2)
Basistypen4
Basistypen5
Basistypen6 Scanner SyntaxRules: –JavaSyntaxRules um Schlüsselwörter long, short, byte, float und double ergänzt –Suffixe für die primitiven Typen als Prüfmethoden ergänzt Token: –Für die neuen Datentypen z.B. LongToken –Für die Literale z.B. LongLiteralToken
Basistypen7 Parsergrammatik Erweiterung des Parsers für die Erkennung der neuen Basistypen JavaParser: –parseBasicType() –parseConstant() ParserOfElementaryToken: –parseXXXToken() –parseXXXLiteralToken()
Basistypen8 Model Neue primitive Datentypen wurden angelegt z.B. ByteType Expressions wurden erstellt, wobei ByteLiteralExpression und ShortLiteralExpression wegen der Promotion nicht notwendig sind AbstractTypeVisitor und AbstractExpressionVisitor wurden um die neuen handle-Methoden erweitert Visio-Datei des Models angepasst
Basistypen9 Referencer DefaultBaseFunctions –Wurden um alle neuen Kombinationen ergänzt z.B. Addition zweier long-Werte –Kombinationen mit byte und short wegen Promotion zu int nicht notwendig –Bestehende Kombinationen mit char gelöscht, Promotion erfolgt jetzt auch für char Typpromotion –Bei der Suche nach passenden BaseFunctions notwendig –Hierbei werden aus ByteType, ShortType und CharType jeweils ein IntType
Basistypen10 Printer und Sourceprinter Funktionalität wurde durch die Ergänzung der fehlenden handle-Methoden angepasst Die Suffixe f bzw. d für float bzw. long werden den Literalen angestellt, um die Java-Notation zu erhalten
Vielen Dank für die Aufmerksamkeit! Fragen???