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; }
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; }
/** * @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; }