⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aclsltokenmarker.java

📁 java实现的P2P多agent中间件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                }
                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 + -