From 3f3d6549ba65e01c0b037df9001cb1c023511eab Mon Sep 17 00:00:00 2001 From: jkohnlein Date: Tue, 8 Jul 2008 16:51:20 +0000 Subject: [PATCH] - AbstractAntlrParser handles lookahead in match() mor sophisticated - fixed tests - fixed test.xml --- .../parser/PartialParserReplaceTest.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/PartialParserReplaceTest.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/PartialParserReplaceTest.java index 53895a1cd..1fc78b9f6 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/PartialParserReplaceTest.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/PartialParserReplaceTest.java @@ -12,6 +12,7 @@ import org.eclipse.emf.common.util.EList; import org.eclipse.xtext.parser.impl.PartialParsingPointers; import org.eclipse.xtext.parser.impl.PartialParsingUtil; import org.eclipse.xtext.parsetree.CompositeNode; +import org.eclipse.xtext.parsetree.NodeUtil; import org.eclipse.xtext.parsetree.SyntaxError; import org.eclipse.xtext.testlanguages.LookaheadLanguageStandaloneSetup; import org.eclipse.xtext.testlanguages.SimpleExpressionsStandaloneSetup; @@ -26,16 +27,13 @@ public class PartialParserReplaceTest extends AbstractPartialParserTest { with(SimpleExpressionsStandaloneSetup.class); String model = "(a+b+c)*(c/d)"; replaceAndReparse(model, 2, 2, "+hugo+egon", "(a+hugo+egon+c)"); -//TODO repair -// replaceAndReparse(model, 8, 5, "egon", "egon"); + replaceAndReparse(model, 8, 5, "egon", "egon"); replaceAndReparse(model, 1, 2, "", "(b+c)"); replaceAndReparse(model, 6, 3, "*", "(a+b+c*c/d)"); -// replaceAndReparse(model, 3, 1, "(x+y+z)", "(x+y+z)"); - - replaceAndReparse("a b", 1,1,"+","a+b"); - // TODO: breaking case -// replaceAndReparse(model, 3, 1, "x)+(b", "x)+(b"); - + replaceAndReparse(model, 3, 1, "(x+y+z)", "(x+y+z)"); + replaceAndReparse("a b", 1, 1, "+", "a+b"); + replaceAndReparse(model, 3, 1, "x)+(b", "x)+(b"); + } public void testLookahead() throws Exception { @@ -49,16 +47,18 @@ public class PartialParserReplaceTest extends AbstractPartialParserTest { private void replaceAndReparse(String model, int offset, int length, String change, String expectedReparseRegion) throws Exception { CompositeNode rootNode = getRootNode(model); + if (DEBUG) { + NodeUtil.dumpCompositeNodes("", rootNode); + } PartialParsingPointers parsingPointers = PartialParsingUtil.calculatePartialParsingPointers(rootNode, offset, length); String reparseRegion = PartialParsingUtil.insertChangeIntoReplaceRegion(parsingPointers .getDefaultReplaceRootNode(), offset, length, change); assertEquals(expectedReparseRegion, reparseRegion); - IParseResult partiallyReparse = PartialParsingUtil.reparse(getParser(), rootNode, offset, length, - change); + IParseResult partiallyReparse = PartialParsingUtil.reparse(getParser(), rootNode, offset, length, change); EList errors = partiallyReparse.getRootNode().allSyntaxErrors(); for (SyntaxError syntaxError : errors) { - System.out.println(model+offset+length+change+":"+syntaxError.getMessage()); + System.out.println(model + offset + length + change + ":" + syntaxError.getMessage()); } assertTrue(partiallyReparse.getRootNode().allSyntaxErrors().isEmpty()); String expectedReparseModel = model.substring(0, offset) + change + model.substring(offset + length);