public class TokenSequencePreservingPartialParsingHelper extends java.lang.Object implements IPartialParsingHelper
Constructor and Description |
---|
TokenSequencePreservingPartialParsingHelper() |
Modifier and Type | Method and Description |
---|---|
protected PartialParsingPointers |
calculatePartialParsingPointers(ICompositeNode oldRoot,
ILeafNode left,
ILeafNode right) |
protected IParseResult |
doParseRegion(IParser parser,
PartialParsingPointers parsingPointers,
ICompositeNode replaceMe,
java.lang.String reparseRegion) |
protected void |
filterInvalidRootNodes(java.util.List<ICompositeNode> validReplaceRootNodes) |
protected IParseResult |
fullyReparse(IParser parser,
IParseResult previousParseResult,
ReplaceRegion replaceRegion) |
protected java.util.List<ICompositeNode> |
getAllParents(ICompositeNode node) |
protected ILeafNode |
getLeftNode(java.util.Iterator<ILeafNode> leafNodes,
int offset) |
protected org.eclipse.emf.ecore.EObject |
getOldSemanticElement(ICompositeNode replaceMe,
PartialParsingPointers parsingPointers) |
protected ICompositeNode |
getReplacedNode(PartialParsingPointers parsingPointers) |
protected ILeafNode |
getRightNode(java.util.Iterator<ILeafNode> leafNodes,
int offset) |
protected java.lang.String |
insertChangeIntoReplaceRegion(ICompositeNode rootNode,
ReplaceRegion region) |
protected java.util.List<ICompositeNode> |
internalFindValidReplaceRootNodeForChangeRegion(java.util.List<ICompositeNode> nodesEnclosingRegion)
Investigates the composite nodes containing the changed region and collects a list of nodes which could possibly
replaced by a partial parse.
|
protected boolean |
isActionNode(ICompositeNode node) |
protected boolean |
isBrokenPreviousState(IParseResult previousParseResult,
int offset)
Returns true if the previous document state was completely broken, e.g. the parser did not recover at all.
|
protected boolean |
isInvalidRootNode(ICompositeNode candidate) |
protected boolean |
isSameTokenSequence(java.lang.String originalText,
java.lang.String newText,
int expectedLength) |
protected boolean |
isSameTokenSequence(org.antlr.runtime.TokenSource originalSource,
org.antlr.runtime.TokenSource newSource,
int expectedLength) |
IParseResult |
reparse(IParser parser,
IParseResult previousParseResult,
ReplaceRegion changedRegion) |
protected void |
replaceOldSemanticElement(org.eclipse.emf.ecore.EObject oldElement,
IParseResult previousParseResult,
IParseResult newParseResult) |
protected void |
unloadSemanticObject(org.eclipse.emf.ecore.EObject object) |
public TokenSequencePreservingPartialParsingHelper()
public IParseResult reparse(IParser parser, IParseResult previousParseResult, ReplaceRegion changedRegion)
reparse
in interface IPartialParsingHelper
protected boolean isBrokenPreviousState(IParseResult previousParseResult, int offset)
import static class C {}where the class keyword is consumed as an invalid token in the import declaration and everything thereafter is unrecoverable.
protected void replaceOldSemanticElement(org.eclipse.emf.ecore.EObject oldElement, IParseResult previousParseResult, IParseResult newParseResult)
protected org.eclipse.emf.ecore.EObject getOldSemanticElement(ICompositeNode replaceMe, PartialParsingPointers parsingPointers)
protected ICompositeNode getReplacedNode(PartialParsingPointers parsingPointers)
protected IParseResult doParseRegion(IParser parser, PartialParsingPointers parsingPointers, ICompositeNode replaceMe, java.lang.String reparseRegion)
protected boolean isSameTokenSequence(java.lang.String originalText, java.lang.String newText, int expectedLength)
protected boolean isSameTokenSequence(org.antlr.runtime.TokenSource originalSource, org.antlr.runtime.TokenSource newSource, int expectedLength)
protected IParseResult fullyReparse(IParser parser, IParseResult previousParseResult, ReplaceRegion replaceRegion)
protected void unloadSemanticObject(org.eclipse.emf.ecore.EObject object)
protected java.lang.String insertChangeIntoReplaceRegion(ICompositeNode rootNode, ReplaceRegion region)
protected PartialParsingPointers calculatePartialParsingPointers(ICompositeNode oldRoot, ILeafNode left, ILeafNode right)
protected java.util.List<ICompositeNode> getAllParents(ICompositeNode node)
protected void filterInvalidRootNodes(java.util.List<ICompositeNode> validReplaceRootNodes)
protected boolean isInvalidRootNode(ICompositeNode candidate)
protected java.util.List<ICompositeNode> internalFindValidReplaceRootNodeForChangeRegion(java.util.List<ICompositeNode> nodesEnclosingRegion)
protected boolean isActionNode(ICompositeNode node)