Tokenizer class

Пакет: com.hypixel.hytale.server.core.command.system

Файл: com/hypixel/hytale/server/core/command/system/Tokenizer.java

Поля (39)

МодификаторыТипИмя
final char MULTI_ARG_SEPARATOR_CHAR
break
break
break
break
break
break
boolean var10
var10
var10
var10
var10
char var11
String var12
String var13
String var14
String var15
List var2
String[] var3
String var4
var4
char var5
var5
var5
var5
var5
int var6
var6
var6
var6
var6
var6
var6
var6
var6
boolean var7
var7
var7
char var9

Методы (15)

МодификаторыВозвратСигнатура
abstract for for(int var8 = 0; var8 < var4.length()
if if(var3.length == 1)
if if(var5 == 0)
if if(var6 < var8)
if if(var5 == 0)
if if(var5 == 0 && var6 == var8)
if if(var5 == 0)
if if(var5 == 0)
if if(var7)
if if(var5 == 0)
if if(!var7)
if if(var10)
if if(var5 != 0)
switch switch(var9)
switch switch(var11)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system;

class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class Tokenizer {
   class="kw">public class="kw">static class="kw">final char MULTI_ARG_SEPARATOR_CHAR = ',';
   class="kw">public class="kw">static class="kw">final char MULTI_ARG_BEGIN_CHAR = '[';
   class="kw">public class="kw">static class="kw">final char MULTI_ARG_END_CHAR = ']';
   class="kw">public class="kw">static class="kw">final String MULTI_ARG_SEPARATOR = String.valueOf(',');
   class="kw">public class="kw">static class="kw">final String MULTI_ARG_BEGIN = String.valueOf('[');
   class="kw">public class="kw">static class="kw">final String MULTI_ARG_END = String.valueOf(']');
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_PARSING_ERROR_UNBALANCED_QUOTES = Message.translation("server.commands.parsing.error.unbalancedQuotes");

   class="kw">public Tokenizer() {
   }

   @Nullable
   class="kw">public class="kw">static List<String> parseArguments(@Nonnull String var0, @Nonnull ParseResult var1) {
      List var2 = new ObjectArrayList();
      String[] var3 = var0.split(Pattern.quote(" "), 2);
      var2.add(var3[0]);
      if (var3.length == 1) {
         class="kw">return var2;
      }

      String var4 = var3[1];
      char var5 = 0;
      int var6 = 0;
      boolean var7 = false;

      for (int var8 = 0; var8 < var4.length(); var8++) {
         boolean var10;
         char var9 = var4.charAt(var8);
         var10 = false;
         label99:
         class="kw">switch (var9) {
            case ' ':
               if (var5 == 0) {
                  if (var6 < var8) {
                     var2.add(var4.substring(var6, var8));
                  }

                  var6 = var8 + 1;
               }
               break;
            case '"':
               if (var5 == 0) {
                  var5 = '"';
               } else if (var5 == '"') {
                  var5 = 0;
                  String var15 = var4.substring(var6, var8 + 1);
                  if (!var15.isEmpty()) {
                     var2.add(var15);
                  }

                  var6 = var8 + 1;
               }
               break;
            case '\'':
               if (var5 == 0 && var6 == var8) {
                  var5 = '\'';
               } else if (var5 == '\'') {
                  var5 = 0;
                  String var14 = var4.substring(var6, var8 + 1);
                  if (!var14.isEmpty()) {
                     var2.add(var14);
                  }

                  var6 = var8 + 1;
               }
               break;
            case ',':
               if (var5 == 0) {
                  String var13 = var4.substring(var6, var8);
                  if (!var13.isEmpty()) {
                     var2.add(var13);
                  }

                  var6 = var8;
                  var10 = true;
               }
               break;
            case '[':
               if (var5 == 0) {
                  if (var7) {
                     var1.fail(Message.translation("server.commands.parsing.error.cannotBeginListInsideList").param("index", var8));
                     class="kw">return null;
                  }

                  var7 = true;
                  var6 = var8;
                  var10 = true;
               }
               break;
            case '\\':
               if (var4.length() <= var8 + 1) {
                  var1.fail(Message.translation("server.commands.parsing.error.invalidEscape").param("index", var8 + 1).param("input", var0));
                  class="kw">return null;
               }

               char var11 = var4.charAt(var8 + 1);
               class="kw">switch (var11) {
                  case '"':
                  case '\'':
                  case ',':
                  case '[':
                  case '\\':
                  case ']':
                     var4 = var4.substring(0, var8) + var4.substring(var8 + 1);
                     var8++;
                     break label99;
                  class="kw">default:
                     var1.fail(
                        Message.translation("server.commands.parsing.error.invalidEscapeForSymbol")
                           .param("symbol", var11)
                           .param("index", var8 + 1)
                           .param("input", var0)
                           .param("command", var0)
                     );
                     class="kw">return null;
               }
            case ']':
               if (var5 == 0) {
                  if (!var7) {
                     var1.fail(Message.translation("server.commands.parsing.error.cannotEndListWithoutStarting").param("index", var8));
                     class="kw">return null;
                  }

                  String var12 = var4.substring(var6, var8);
                  if (!var12.isEmpty()) {
                     var2.add(var12);
                  }

                  var6 = var8;
                  var7 = false;
                  var10 = true;
               }
         }

         if (var10) {
            var2.add(var4.substring(var6, var8 + 1));
            var6 = var8 + 1;
         }

         if (var6 > var4.length()) {
            var6 = var4.length();
            break;
         }
      }

      if (var5 != 0) {
         var1.fail(MESSAGE_COMMANDS_PARSING_ERROR_UNBALANCED_QUOTES);
         class="kw">return null;
      }

      if (var6 != var4.length()) {
         var2.add(var4.substring(var6));
      }

      class="kw">return var2;
   }
}