class LexicalAnalysis
extends java.lang.Object
SyntaxAnalysis
beschriebenen
Grammaktik erkannt. Bezeichner und Zahlen folgen dieser Syntax:
identifier ::= letter { letter | digit } number ::= digit { digit } letter ::= 'A' .. 'Z' | 'a' .. 'z' digit ::= '0' .. '9' character ::= ''' ( Sichtbares-US-ASCII-Zeichen-kein-backslash | '\' 'n' | '\' '\' ) '''Kommentare zwischen geschweiften Klammern ('{' ... '}') bzw. hinter senkrechten Strichen ('|') werden ignoriert.
Modifier and Type | Field and Description |
---|---|
private int |
c
Das zuletzt gelesene Zeichen.
|
private java.util.HashMap<java.lang.String,Symbol.Id> |
keywords
Die Menge aller Schlüsselworte mit ihren zugeordneten Symbolen.
|
private Position |
position
Die aktuelle Position im Quelltext.
|
private boolean |
printSymbols
Sollen die erkannten Symbole auf der Konsole ausgegeben werden?
|
private java.io.InputStreamReader |
reader
Der Datenstrom, aus dem der Quelltext gelesen wird.
|
(package private) Symbol |
symbol
Das zuletzt erkannte Symbol.
|
Constructor and Description |
---|
LexicalAnalysis(java.lang.String fileName,
boolean printSymbols)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
private void |
nextChar()
Die Methode liest das nächste Zeichen aus dem Quelltext.
|
(package private) void |
nextSymbol()
Die Methode liest das nächste Symbol.
|
private java.util.HashMap<java.lang.String,Symbol.Id> keywords
private java.io.InputStreamReader reader
private boolean printSymbols
private Position position
private int c
Symbol symbol
LexicalAnalysis(java.lang.String fileName, boolean printSymbols) throws java.io.FileNotFoundException, java.io.IOException
fileName
- Der Name des Quelltexts.printSymbols
- Sollen die erkannten Symbole auf der Konsole
ausgegeben werden?java.io.FileNotFoundException
- Der Quelltext wurde nicht gefunden.java.io.IOException
- Ein Lesefehler ist aufgetreten.private void nextChar() throws java.io.IOException
c
bereitgestellt.java.io.IOException
- Ein Lesefehler ist aufgetreten.void nextSymbol() throws CompileException, java.io.IOException
symbol
bereitgestellt.CompileException
- Der Quelltext entspricht nicht der Syntax.java.io.IOException
- Ein Lesefehler ist aufgetreten.