code: static Set<String> parseShortcuts(String shortcuts, Set<String> result) {
          if (result == null) {
              result = new HashSet<>();
          }
          
          if (shortcuts == null || shortcuts.isEmpty()) {
              return result;
          }
          
          int pos = 0;
          int len = shortcuts.length();
          boolean symbolic = false;
          StringBuilder sb = new StringBuilder();
          
          while (pos < len) {
              char c = shortcuts.charAt(pos++);
              
              switch (c) {
                  case '$':
                  case '^':
                  case '@':
                      addShortcut(sb, result);
                      sb.append(c);
                      symbolic = false;
                      break;
                  
                  case '#':
                      if (symbolic) {
                          addShortcut(sb, result);
                      }
                      
                      sb.append(c);
                      symbolic = true;
                      break;
                  
                  case ',':
                  case ' ':
                      break;
                  
                  default:
                      sb.append(c);
                      
                      if (!symbolic) {
                          addShortcut(sb, result);
                      }
                      
                      break;
              }
          }
          addShortcut(sb, result);
          return result;
      }
docs: /*package