コード例 #1
0
ファイル: PyParserTestBase.java プロジェクト: GitAngel/Pydev
 protected Tuple<ISimpleNode, Throwable> parseILegalDocSuccessfully(IDocument doc) {
   parser.setDocument(doc, false, null);
   Tuple<ISimpleNode, Throwable> objects = parser.reparseDocument();
   Throwable err = objects.o2;
   if (err == null) {
     fail("Expected a ParseException and the doc was successfully parsed.");
   }
   if (!(err instanceof ParseException) && !(err instanceof TokenMgrError)) {
     fail("Expected a ParseException and received:" + err.getClass());
   }
   if (objects.o1 == null) {
     fail("Expected the ast to be generated with the parse. Error: " + objects.o2.getMessage());
   }
   return objects;
 }
コード例 #2
0
ファイル: PyParserTestBase.java プロジェクト: GitAngel/Pydev
 protected void parseLegalDocStrWithoutTree(String s, Object... additionalErrInfo) {
   try {
     parseLegalDoc(new Document(s), additionalErrInfo, parser.getGrammarVersion(), false);
   } catch (MisconfigurationException e) {
     throw new RuntimeException(e);
   }
 }
コード例 #3
0
ファイル: PyParserTestBase.java プロジェクト: GitAngel/Pydev
 protected static SimpleNode parseLegalDoc(
     IDocument doc, Object[] additionalErrInfo, PyParser parser) {
   try {
     return parseLegalDoc(doc, additionalErrInfo, parser.getGrammarVersion(), true);
   } catch (MisconfigurationException e) {
     throw new RuntimeException(e);
   }
 }
コード例 #4
0
ファイル: PyParserTestBase.java プロジェクト: GitAngel/Pydev
  protected Throwable parseILegalDoc(IDocument doc, boolean generateTree) {
    Tuple<ISimpleNode, Throwable> objects;
    try {
      objects =
          PyParser.reparseDocument(new ParserInfo(doc, parser.getGrammarVersion(), generateTree));
    } catch (MisconfigurationException e) {
      throw new RuntimeException(e);
    }

    Throwable err = objects.o2;
    if (err == null) {
      fail("Expected a ParseException and the doc was successfully parsed.");
    }
    if (!(err instanceof ParseException) && !(err instanceof TokenMgrError)) {
      fail("Expected a ParseException and received:" + err.getClass());
    }
    return err;
  }
コード例 #5
0
ファイル: PyParserTestBase.java プロジェクト: GitAngel/Pydev
  /**
   * @param additionalErrInfo can be used to add additional errors to the fail message if the doc is
   *     not parseable
   * @param parser the parser to be used to do the parsing.
   */
  protected static SimpleNode parseLegalDoc(
      IDocument doc, Object[] additionalErrInfo, int grammarVersion, boolean generateTree) {
    Tuple<ISimpleNode, Throwable> objects =
        PyParser.reparseDocument(new ParserInfo(doc, grammarVersion, generateTree));

    Object err = objects.o2;
    if (err != null) {
      String s = "";
      for (int i = 0; i < additionalErrInfo.length; i++) {
        s += additionalErrInfo[i];
      }
      if (err instanceof ParseException) {
        ParseException parseErr = (ParseException) err;
        parseErr.printStackTrace();

        Token token = parseErr.currentToken;
        if (token != null) {
          fail(
              "Expected no error, received: "
                  + parseErr.getMessage()
                  + "\n"
                  + s
                  + "\nline:"
                  + token.beginLine
                  + "\ncol:"
                  + token.beginColumn);
        }
      }

      fail("Expected no error, received:\n" + err + "\n" + s);
    }
    if (generateTree) {
      if (objects.o1 == null) {
        String s = "";
        for (int i = 0; i < additionalErrInfo.length; i++) {
          s += additionalErrInfo[i];
        }
        fail("AST not generated! " + s);
      }
    }
    return (SimpleNode) objects.o1;
  }