Gridarta Editor
CrossfireDialogTokenMarker.java
Go to the documentation of this file.
1
/*
2
* Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3
* Copyright (C) 2000-2015 The Gridarta Developers.
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
package
net.sf.gridarta.textedit.textarea.tokenmarker;
21
22
import
javax.swing.text.Segment;
23
import
net
.
sf
.
gridarta
.
textedit
.
textarea
.
Token
;
24
import
org.jetbrains.annotations.NotNull;
25
30
public
class
CrossfireDialogTokenMarker
extends
TokenMarker
{
31
32
@Override
33
public
byte
markTokensImpl
(
final
byte
token, @NotNull
final
Segment line) {
34
final
char
[] array = line.array;
35
final
int
offset = line.offset;
36
final
int
length
= line.count;
37
if
(
length
>= 7 && array[offset] ==
'@'
&& array[offset + 1] ==
'm'
&& array[offset + 2] ==
'a'
&& array[offset + 3] ==
't'
&& array[offset + 4] ==
'c'
&& array[offset + 5] ==
'h'
&& array[offset + 6] ==
' '
) {
38
addToken
(6,
Token
.
KEYWORD1
);
39
int
start = offset + 6;
40
byte
id
=
Token
.
NULL
;
41
for
(
int
i = start + 1; i < offset +
length
; i++) {
42
final
byte
thisId;
43
if
(array[i] ==
'|'
) {
44
thisId =
Token
.
OPERATOR
;
45
}
else
if
(Character.isUpperCase(array[i])) {
46
thisId =
Token
.
INVALID
;
47
}
else
{
48
thisId =
Token
.
LITERAL1
;
49
}
50
if
(thisId !=
id
) {
51
addToken
(i - start,
id
);
52
start = i;
53
id
= thisId;
54
}
55
}
56
addToken
(offset +
length
- start,
id
);
57
}
else
{
58
addToken
(
length
,
Token
.
NULL
);
59
}
60
61
return
Token
.
NULL
;
62
}
63
64
}
net.sf.gridarta.textedit.textarea.tokenmarker.CrossfireDialogTokenMarker.markTokensImpl
byte markTokensImpl(final byte token, @NotNull final Segment line)
Definition:
CrossfireDialogTokenMarker.java:33
net.sf.gridarta.textedit.textarea
net.sf.gridarta
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarker.addToken
void addToken(final int length, final byte id)
Definition:
TokenMarker.java:225
net.sf.gridarta.textedit.textarea.Token.NULL
static final byte NULL
Definition:
Token.java:26
net.sf
net.sf.gridarta.textedit.textarea.tokenmarker.CrossfireDialogTokenMarker
Definition:
CrossfireDialogTokenMarker.java:30
net.sf.gridarta.textedit
net.sf.gridarta.textedit.textarea.Token
Definition:
Token.java:21
net.sf.gridarta.textedit.textarea.Token.OPERATOR
static final byte OPERATOR
Definition:
Token.java:78
net
net.sf.gridarta.textedit.textarea.Token.INVALID
static final byte INVALID
Definition:
Token.java:84
net.sf.gridarta.textedit.textarea.Token.KEYWORD1
static final byte KEYWORD1
Definition:
Token.java:60
net.sf.gridarta.textedit.textarea.Token.LITERAL1
static final byte LITERAL1
Definition:
Token.java:42
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarker
Definition:
TokenMarker.java:32
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarker.length
int length
Definition:
TokenMarker.java:52
src
textedit
src
main
java
net
sf
gridarta
textedit
textarea
tokenmarker
CrossfireDialogTokenMarker.java
Generated by
1.8.17