TreebankFormatParser { public static List<TopTreebankNode> parseDocument(String parse, int textOffset, String text) { List<TopTreebankNode> returnValues = new ArrayList<TopTreebankNode>(); String[] sentenceParses = splitSentences(parse); for (String sentenceParse : sentenceParses) { TopTreebankNode topNode = parse(sentenceParse, text, textOffset); textOffset = topNode.getTextEnd(); returnValues.add(topNode); } return returnValues; }  static TreebankNode getLeafNode(String parseFragment); static String getType(String parseFragment); static String prepareString(String parse); static String inferPlainText(String treebankText); static TopTreebankNode parse(String parse); static TopTreebankNode parse(String parse, String text, int textOffset); static int movePastWhiteSpaceChars(String text, int textOffset); static String[] splitSentences(String mrgContents); static boolean parensMatch(String contents); static List<TopTreebankNode> parseDocument(String parse, int textOffset, String text); static final String LEAF_NODE_REGEX; static final String TYPE_REGEX; static final String cleanUPRegex1; static final String cleanUPRegex2; static final String cleanUPRegex3; static final String cleanUPRegex4; }
@Test public void testParseDocument() { String treebankText = "((S (VP (VB Run)) (. !))) ((S (RB Now) (. !)))"; String inferredText = "Run!\nNow!"; assertEquals(inferredText, TreebankFormatParser.inferPlainText(treebankText)); List<TopTreebankNode> nodes; nodes = TreebankFormatParser.parseDocument(treebankText, 0, inferredText); assertEquals(0, nodes.get(0).getTextBegin()); assertEquals(4, nodes.get(0).getTextEnd()); assertEquals(5, nodes.get(1).getTextBegin()); assertEquals(9, nodes.get(1).getTextEnd()); }