code: protected String parseOptionalWord(final boolean iUpperCase, final String... iWords) {
      parserNextWord(iUpperCase);
  
      if (iWords.length > 0) {
        if (parserLastWord.length() == 0)
          return null;
  
        boolean found = false;
        for (String w : iWords) {
          if (parserLastWord.toString().equals(w)) {
            found = true;
            break;
          }
        }
  
        if (!found)
          throwSyntaxErrorException("Found unexpected keyword '" + parserLastWord + "' while it was expected '"
              + Arrays.toString(iWords) + "'");
      }
      return parserLastWord.toString();
    }
docs: Parses the next word. If any word is parsed it's checked against the word array received as parameter. If the parsed word is
  not enlisted in it a SyntaxError exception is thrown. It returns the word parsed if any.
  
  @param iUpperCase
  True if must return UPPERCASE, otherwise false
  @return The word parsed if any, otherwise null