-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathToken.java
More file actions
94 lines (91 loc) · 3.21 KB
/
Token.java
File metadata and controls
94 lines (91 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
public class Token
{
public enum Type
{
LOP, // % * /
POP, // + -
DACH, // ^
INC, // ++
DEC, // --
AND, // &&
OR, // ||
BOOLNEG, // !
BLOCKSTART, // {
BLOCKEND, // }
BRACKETSTART, // (
BRACKETEND, // )
SQUAREBRACKETOPEN, //[
SQUAREBRACKETCLOSE, //]
SEM, // ;
COMMA, // ,
SETTO, // Zuweisung, einzelnes =
COMP, // Vergleich ==, !=, >= , <=
IDENTIFIER, // Folge an Characters
IFSTART, // if(
ELSE, // else
WHILE, // while
PRINT, // Print Befehl zur Ausgabe
CONTAINSHELP, // .contains oder .containsKey -> wird im Filter unterschieden
CONTAINS, // .contains
CONTAINSKEY, // .containsKey
//Schlüsselworte
KEYSTRING, // String Schlüsselwort
KEYCHAR, // Char Schlüsselwort
KEYINT, // Int Schlüsselwort
KEYBOOL, // Bool Schlüsselwort
KEYRANGE, // Schlüsselwort Range
KEYSTATE, // Schlüsselwort State
KEYTRANSITION, // Schlüsselwort Transition
KEYFA, // Schlüsselwort FA
KEYRA, // Schlüsselwort RA
KEYSET, // Schlüsselwort Set
KEYMAP, // Schlüsselwort Map
//Values
STRING, // String Value
CHAR, // Char Value 'a'
INT, // Int Value
BOOL, // Bool Value
STATE, // $"..."
STATEACC, // $"..."^1
TRANSSTART, // --
TRANSEND, // -->
TRANSEPSI, // --->
FASTART, // <
FAEND, // >
SET, // {...} von BLOCKSTART zu unterscheiden
TYPE, // Bsp. Map<type1,type2> braucht Type Token
MAPDELI, // :
MAPARRAYSTART, // [[
MAPARRAYEND, // ]]
ERROR, // Lexer Error
WS, // whitespace ' ', \t, \n, \r
EOF, // End des Streams / Quelldatei
//Token für Reguläre Ausdrücke
RE_SLASH, // /
RE_BRACKETOPEN, // (
RE_BRACKETCLOSE,// )
RE_MARK, // "
RE_CHAR, // character single
RE_OR, // |
RE_SBOPEN, // [
RE_SBCLOSE, // ]
RE_RANGE, // -
RE_COVER, // *
RE_OPT, // ?
RE_PLUS, // +
RE_COMMA, // ,
RE_NOT // !
};
public Type kind;
public String content;
int index;
int line, column;
boolean isKeyType(){
return (kind == Type.KEYBOOL || kind == Type.KEYCHAR
|| kind == Type.KEYINT || kind == Type.KEYSTRING
|| kind == Type.KEYFA || kind == Type.KEYMAP
|| kind == Type.KEYRA || kind == Type.KEYRANGE
|| kind == Type.KEYSET || kind == Type.KEYSTATE
|| kind == Type.KEYTRANSITION);
}
}