📄 aclsltokenmarker.java
字号:
}
break;
*/
case '=':
backslash = false;
if (i == offset) {
token = ACLToken.COMMENT2;
addToken(length - i, token);
lastOffset = lastKeyword = length;
break loop;
}
else {
doKeyword(line, i, c);
}
break;
case '$':
case '&':
case '%':
backslash = false;
if (length - i > 1) {
if (doKeyword(line, i, c)) {
break;
}
if (c == '&' && (array[i1] == '&'
|| Character.isWhitespace(
array[i1]))) {
i++;
}
else {
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
token = ACLToken.KEYWORD2;
}
}
break;
case '"':
if (backslash) {
backslash = false;
}
else {
if (doKeyword(line, i, c)) {
break;
}
addToken(i - lastOffset, token);
token = ACLToken.LITERAL1;
lineInfo[lineIndex].obj = null;
lastOffset = lastKeyword = i;
}
break;
case '\'':
if (backslash) {
backslash = false;
}
else {
int oldLastKeyword = lastKeyword;
if (doKeyword(line, i, c)) {
break;
}
if (i != oldLastKeyword) {
break;
}
addToken(i - lastOffset, token);
token = ACLToken.LITERAL2;
lastOffset = lastKeyword = i;
}
break;
case '`':
if (backslash) {
backslash = false;
}
else {
if (doKeyword(line, i, c)) {
break;
}
addToken(i - lastOffset, token);
token = ACLToken.OPERATOR;
lastOffset = lastKeyword = i;
}
break;
case '<':
if (backslash) {
backslash = false;
}
else {
if (doKeyword(line, i, c)) {
break;
}
if (length - i > 2 && array[i1] == '<'
&& !Character.isWhitespace(array[i + 2])) {
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
token = ACLToken.LITERAL1;
int len = length - (i + 2);
if (array[length - 1] == ';') {
len--;
}
lineInfo[lineIndex].obj =
new String(array, i + 2, len);
}
}
break;
// case '.':
/*
case '@':
backslash = false;
if (doKeyword(line, i, c))
break;
if (i == lastKeyword)
break;
addToken(i1 - lastOffset, Token.KEYWORD1);
lastOffset = lastKeyword = i1;
token = Token.KEYWORD2;
break;// loop;
*/
/*
case '-':
backslash = false;
if (doKeyword(line, i, c))
{
break;
}
if (i != lastKeyword || length - i <= 1)
{
break;
}
switch (array[i1])
{
case 'r':
case 'w':
case 'x':
case 'o':
case 'R':
case 'W':
case 'X':
case 'O':
case9 'e':
case 'z':
case 's':
case 'f':
case 'd':
case 'l':
case 'p':
case 'S':
case 'b':
case 'c':
case 't':
case 'u':
case 'g':
case 'k':
case 'T':
case 'B':
case 'M':
case 'A':
case 'C':
addToken(i - lastOffset, token);
addToken(2, Token.KEYWORD3);
lastOffset = lastKeyword = i + 2;
i++;
}
break;
*/
// case '/':
case '?':
if (i == lastKeyword && length - i > 1) {
if (doKeyword(line, i, c)) {
break;
}
backslash = false;
char ch = array[i1];
if (Character.isWhitespace(ch)) {
break;
}
matchChar = c;
matchSpacesAllowed = false;
addToken(i - lastOffset, token);
token = S_ONE;
lastOffset = lastKeyword = i;
}
break;
default:
backslash = false;
if (!Character.isLetterOrDigit(c)
&& c != '_' && c != '-') {
doKeyword(line, i, c);
}
break;
}
break;
case ACLToken.KEYWORD2:
backslash = false;
if (!Character.isLetterOrDigit(c) && c != '_'
&& c != '#' && c != '\'' && c != '-' && c != '.') {
if (i != offset && array[i - 1] == '$') {
addToken(i1 - lastOffset, token);
lastOffset = lastKeyword = i1;
break;
}
else {
addToken(i - lastOffset, token);
lastOffset = lastKeyword = i;
}
token = ACLToken.NULL;
}
break;
case S_ONE:
case S_TWO:
if (backslash) {
backslash = false;
}
else
if (matchChar == '\0') {
if (Character.isWhitespace(matchChar)
&& !matchSpacesAllowed) {
break;
}
else {
matchChar = c;
}
}
else {
switch (matchChar) {
case '(':
matchChar = ')';
matchCharBracket = true;
break;
case '[':
matchChar = ']';
matchCharBracket = true;
break;
case '{':
matchChar = '}';
matchCharBracket = true;
break;
case '<':
matchChar = '>';
matchCharBracket = true;
break;
default:
matchCharBracket = false;
break;
}
if (c != matchChar) {
break;
}
if (token == S_TWO) {
token = S_ONE;
if (matchCharBracket) {
matchChar = '\0';
}
}
else {
token = S_END;
addToken(i1 - lastOffset, ACLToken.LITERAL2);
lastOffset = lastKeyword = i1;
}
}
break;
case S_END:
backslash = false;
if (!Character.isLetterOrDigit(c)
&& c != '_' && c != '-') {
doKeyword(line, i, c);
}
break;
case ACLToken.COMMENT2:
backslash = false;
if (i == offset) {
addToken(line.count, token);
if (length - i > 3 && ACLSyntaxUtilities.regionMatches(false, line, offset, "=cut")) {
token = ACLToken.NULL;
}
lastOffset = lastKeyword = length;
break loop;
}
break;
case ACLToken.LITERAL1:
if (backslash) {
backslash = false;
}
else if (c == '$') {
backslash = true;
}
else if (c == '"') {
addToken(i1 - lastOffset, token);
token = ACLToken.NULL;
lastOffset = lastKeyword = i1;
}
break;
case ACLToken.LITERAL2:
if (backslash) {
backslash = false;
}
else if (c == '$') {
backslash = true;
}
else if (c == '\'') {
addToken(i1 - lastOffset, ACLToken.LITERAL1);
token = ACLToken.NULL;
lastOffset = lastKeyword = i1;
}
break;
case ACLToken.OPERATOR:
if (backslash) {
backslash = false;
}
else if (c == '`') {
addToken(i1 - lastOffset, token);
token = ACLToken.NULL;
lastOffset = lastKeyword = i1;
}
break;
default:
throw new InternalError("Invalid state: "
+ token);
}
}
if (token == ACLToken.NULL) {
doKeyword(line, length, '\0');
}
switch (token) {
case ACLToken.NULL:
addToken(length - lastOffset, token);
break;
case ACLToken.KEYWORD2:
addToken(length - lastOffset, token);
token = ACLToken.NULL;
break;
case S_END:
addToken(length - lastOffset, ACLToken.LITERAL2);
token = ACLToken.NULL;
break;
case S_ONE:
case S_TWO:
addToken(length - lastOffset, ACLToken.INVALID);// XXX
token = ACLToken.NULL;
break;
default:
addToken(length - lastOffset, token);
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -