|
class Turtleparser
{
int s; //der Zustand des Automaten
public void Turtleparser() //der Konstruktor
{
s = 0;
}
private int u(int s, char c) //die Überführungsfunktion
{
switch (s) //je nach Zustand
…
{
case 0:
{
if (c == '#') return 99; //… und nach Eingabezeichen reagieren
else if ( (c == 'U') || (c == 'D') || (c == 'H') || (c == 'C')) return
1;
else if ( (c == 'M') || (c == 'T')) return 2;
else if (c == 'R') return 4;
else return 20;
}
case 1:
{
if (c == ';') return 0;
else return 21;
}
case 2:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
3;
else return 22;
}
case 3:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
3;
else if (c == ';') return 0;
else return 23;
}
case 4:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
5;
else return 22;
}
case 5:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
5;
else if (c == '{') return 6;
else return 24;
}
case 6:
{
if ( (c == 'U') || (c == 'D') || (c == 'H') || (c == 'C')) return 7;
else if ( (c == 'M') || (c == 'T')) return 8;
else if (c == 'R') return 26;
else if (c == '}') return 0;
else return 25;
}
case 7:
{
if (c == ';') return 6;
else return 21;
}
case 8:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
9;
else
return 22;
}
case 9:
{
if ( (c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4')
||
(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9')) return
9;
else if (c == ';') return 6;
else return 23;
}
default: return
s;
}
}
public void verarbeite(char c) //damit
wird der Parser zum Zustandswechsel veranlasst
{
s = u(s, c);
}
}
|