public class TokenSequencePreservingPartialParsingHelper
extends java.lang.Object
implements org.eclipse.xtext.parser.antlr.IPartialParsingHelper
| Constructor and Description |
|---|
TokenSequencePreservingPartialParsingHelper() |
| Modifier and Type | Method and Description |
|---|---|
protected org.eclipse.xtext.parser.impl.PartialParsingPointers |
calculatePartialParsingPointers(org.eclipse.xtext.nodemodel.ICompositeNode oldRoot,
org.eclipse.xtext.nodemodel.ILeafNode left,
org.eclipse.xtext.nodemodel.ILeafNode right) |
protected org.eclipse.xtext.parser.IParseResult |
doParseRegion(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers,
org.eclipse.xtext.nodemodel.ICompositeNode replaceMe,
java.lang.String reparseRegion) |
protected void |
filterInvalidRootNodes(java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> validReplaceRootNodes) |
protected org.eclipse.xtext.parser.IParseResult |
fullyReparse(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.util.ReplaceRegion replaceRegion) |
protected java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> |
getAllParents(org.eclipse.xtext.nodemodel.ICompositeNode node) |
protected org.eclipse.xtext.nodemodel.ILeafNode |
getLeftNode(java.util.Iterator<org.eclipse.xtext.nodemodel.ILeafNode> leafNodes,
int offset) |
protected org.eclipse.emf.ecore.EObject |
getOldSemanticElement(org.eclipse.xtext.nodemodel.ICompositeNode replaceMe,
org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers) |
protected org.eclipse.xtext.nodemodel.ICompositeNode |
getReplacedNode(org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers) |
protected org.eclipse.xtext.nodemodel.ILeafNode |
getRightNode(java.util.Iterator<org.eclipse.xtext.nodemodel.ILeafNode> leafNodes,
int offset) |
protected java.lang.String |
insertChangeIntoReplaceRegion(org.eclipse.xtext.nodemodel.ICompositeNode rootNode,
org.eclipse.xtext.util.ReplaceRegion region) |
protected java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> |
internalFindValidReplaceRootNodeForChangeRegion(java.util.List<org.eclipse.xtext.nodemodel.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(org.eclipse.xtext.nodemodel.ICompositeNode node) |
protected boolean |
isBrokenPreviousState(org.eclipse.xtext.parser.IParseResult previousParseResult,
int offset)
Returns true if the previous document state was completely broken, e.g.
|
protected boolean |
isInvalidRootNode(org.eclipse.xtext.nodemodel.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) |
org.eclipse.xtext.parser.IParseResult |
reparse(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.util.ReplaceRegion changedRegion) |
protected void |
replaceOldSemanticElement(org.eclipse.emf.ecore.EObject oldElement,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.parser.IParseResult newParseResult) |
protected void |
unloadSemanticObject(org.eclipse.emf.ecore.EObject object) |
public TokenSequencePreservingPartialParsingHelper()
public org.eclipse.xtext.parser.IParseResult reparse(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.util.ReplaceRegion changedRegion)
reparse in interface org.eclipse.xtext.parser.antlr.IPartialParsingHelperprotected boolean isBrokenPreviousState(org.eclipse.xtext.parser.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,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.parser.IParseResult newParseResult)
protected org.eclipse.emf.ecore.EObject getOldSemanticElement(org.eclipse.xtext.nodemodel.ICompositeNode replaceMe,
org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers)
protected org.eclipse.xtext.nodemodel.ICompositeNode getReplacedNode(org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers)
protected org.eclipse.xtext.parser.IParseResult doParseRegion(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.impl.PartialParsingPointers parsingPointers,
org.eclipse.xtext.nodemodel.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 org.eclipse.xtext.nodemodel.ILeafNode getLeftNode(java.util.Iterator<org.eclipse.xtext.nodemodel.ILeafNode> leafNodes,
int offset)
protected org.eclipse.xtext.nodemodel.ILeafNode getRightNode(java.util.Iterator<org.eclipse.xtext.nodemodel.ILeafNode> leafNodes,
int offset)
protected org.eclipse.xtext.parser.IParseResult fullyReparse(org.eclipse.xtext.parser.IParser parser,
org.eclipse.xtext.parser.IParseResult previousParseResult,
org.eclipse.xtext.util.ReplaceRegion replaceRegion)
protected void unloadSemanticObject(org.eclipse.emf.ecore.EObject object)
protected java.lang.String insertChangeIntoReplaceRegion(org.eclipse.xtext.nodemodel.ICompositeNode rootNode,
org.eclipse.xtext.util.ReplaceRegion region)
protected org.eclipse.xtext.parser.impl.PartialParsingPointers calculatePartialParsingPointers(org.eclipse.xtext.nodemodel.ICompositeNode oldRoot,
org.eclipse.xtext.nodemodel.ILeafNode left,
org.eclipse.xtext.nodemodel.ILeafNode right)
protected java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> getAllParents(org.eclipse.xtext.nodemodel.ICompositeNode node)
protected void filterInvalidRootNodes(java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> validReplaceRootNodes)
protected boolean isInvalidRootNode(org.eclipse.xtext.nodemodel.ICompositeNode candidate)
protected java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> internalFindValidReplaceRootNodeForChangeRegion(java.util.List<org.eclipse.xtext.nodemodel.ICompositeNode> nodesEnclosingRegion)
protected boolean isActionNode(org.eclipse.xtext.nodemodel.ICompositeNode node)