Package org.eclipse.xtext.parser.packrat
Class AbstractPackratParser
- java.lang.Object
-
- org.eclipse.xtext.parser.AbstractParser
-
- org.eclipse.xtext.parser.packrat.AbstractPackratParser
-
- All Implemented Interfaces:
java.lang.CharSequence,IParser,IConsumerUtility,ICharSequenceWithOffset,IHiddenTokenHandler,IMarkerFactory,Marker.IMarkerClient,IPackratParser,IParsedTokenAcceptor
- Direct Known Subclasses:
TerminalsPackratParser
public abstract class AbstractPackratParser extends AbstractParser implements IPackratParser, Marker.IMarkerClient, ICharSequenceWithOffset, IParsedTokenAcceptor, IHiddenTokenHandler, IConsumerUtility
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.xtext.parser.packrat.IHiddenTokenHandler
IHiddenTokenHandler.IHiddenTokenState
-
Nested classes/interfaces inherited from interface org.eclipse.xtext.parser.packrat.IMarkerFactory
IMarkerFactory.IMarker
-
Nested classes/interfaces inherited from interface org.eclipse.xtext.parser.IParser
IParser.NullImpl
-
-
Field Summary
-
Fields inherited from interface org.eclipse.xtext.parser.packrat.IHiddenTokenHandler
EMPTY_HIDDENS
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractPackratParser(IParseResultFactory parseResultFactory, IGrammarAccess grammarAccess)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaccept(AbstractParsedToken token)charcharAt(int index)voidconsumeAction(Action action, boolean isMany)intconsumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy)protected voidconsumeHiddens()intconsumeKeyword(Keyword keyword, java.lang.String feature, boolean isMany, boolean isBoolean, ICharacterClass notFollowedBy, boolean optional)intconsumeNonTerminal(INonTerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isDatatype, boolean isBoolean, AbstractElement grammarElement, boolean optional)intconsumeTerminal(ITerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isBoolean, AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional)protected java.lang.CharSequencecreateCharSequence(java.io.Reader reader0)protected KeywordConsumercreateKeywordConsumer()protected EnumLiteralConsumercreateLiteralConsumer()protected abstract IParserConfigurationcreateParserConfiguration(AbstractParserConfiguration.IInternalParserConfiguration configuration)protected IParseResultdoParse(java.io.Reader reader)protected IParseResultdoParse(java.lang.CharSequence sequence)MarkergetActiveMarker()protected IGrammarAccessgetGrammarAccess()java.lang.CharSequencegetInput()MarkergetNextMarker(Marker parent, int offset)intgetOffset()Retrieves the current state of the offset property.protected IParseResultFactorygetParseResultFactory()protected INonTerminalConsumergetRootConsumer()voidincOffset()Increments the offset by one.voidincOffset(int amount)Increments the offset by the given amount.intlength()IMarkerFactory.IMarkermark()Creates a new marker.IParseResultparse(java.lang.CharSequence input)IParseResultparse(java.lang.CharSequence input, INonTerminalConsumer consumer)protected IParseResultparse(INonTerminalConsumer consumer)voidreleaseMarker(Marker marker)IHiddenTokenHandler.IHiddenTokenStatereplaceHiddenTokens(ITerminalConsumer... consumers)voidsetActiveMarker(Marker marker)voidsetOffset(int offset)Random access to modify the offset.java.lang.CharSequencesubSequence(int start, int end)-
Methods inherited from class org.eclipse.xtext.parser.AbstractParser
doReparse, isReparseSupported, parse, reparse
-
-
-
-
Constructor Detail
-
AbstractPackratParser
protected AbstractPackratParser(IParseResultFactory parseResultFactory, IGrammarAccess grammarAccess)
-
-
Method Detail
-
createParserConfiguration
protected abstract IParserConfiguration createParserConfiguration(AbstractParserConfiguration.IInternalParserConfiguration configuration)
-
createKeywordConsumer
protected KeywordConsumer createKeywordConsumer()
-
createLiteralConsumer
protected EnumLiteralConsumer createLiteralConsumer()
-
getInput
public java.lang.CharSequence getInput()
-
parse
public final IParseResult parse(java.lang.CharSequence input)
- Specified by:
parsein interfaceIPackratParser
-
parse
public final IParseResult parse(java.lang.CharSequence input, INonTerminalConsumer consumer)
- Specified by:
parsein interfaceIPackratParser
-
parse
protected final IParseResult parse(INonTerminalConsumer consumer)
-
getRootConsumer
protected INonTerminalConsumer getRootConsumer()
-
consumeHiddens
protected void consumeHiddens()
-
mark
public IMarkerFactory.IMarker mark()
Description copied from interface:IMarkerFactoryCreates a new marker.- Specified by:
markin interfaceIMarkerFactory- Returns:
- the created marker.
-
getActiveMarker
public Marker getActiveMarker()
- Specified by:
getActiveMarkerin interfaceMarker.IMarkerClient
-
getNextMarker
public Marker getNextMarker(Marker parent, int offset)
- Specified by:
getNextMarkerin interfaceMarker.IMarkerClient
-
setActiveMarker
public void setActiveMarker(Marker marker)
- Specified by:
setActiveMarkerin interfaceMarker.IMarkerClient
-
releaseMarker
public void releaseMarker(Marker marker)
- Specified by:
releaseMarkerin interfaceMarker.IMarkerClient
-
consumeKeyword
public int consumeKeyword(Keyword keyword, java.lang.String feature, boolean isMany, boolean isBoolean, ICharacterClass notFollowedBy, boolean optional)
- Specified by:
consumeKeywordin interfaceIConsumerUtility
-
consumeEnum
public int consumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy)
- Specified by:
consumeEnumin interfaceIConsumerUtility
-
consumeTerminal
public int consumeTerminal(ITerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isBoolean, AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional)
- Specified by:
consumeTerminalin interfaceIConsumerUtility
-
consumeNonTerminal
public int consumeNonTerminal(INonTerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isDatatype, boolean isBoolean, AbstractElement grammarElement, boolean optional) throws java.lang.Exception
- Specified by:
consumeNonTerminalin interfaceIConsumerUtility- Throws:
java.lang.Exception
-
consumeAction
public void consumeAction(Action action, boolean isMany)
- Specified by:
consumeActionin interfaceIConsumerUtility
-
getParseResultFactory
protected IParseResultFactory getParseResultFactory()
-
getGrammarAccess
protected IGrammarAccess getGrammarAccess()
-
getOffset
public int getOffset()
Description copied from interface:ICharSequenceWithOffsetRetrieves the current state of the offset property.- Specified by:
getOffsetin interfaceICharSequenceWithOffset- Returns:
- the current offset.
-
charAt
public char charAt(int index)
- Specified by:
charAtin interfacejava.lang.CharSequence
-
length
public int length()
- Specified by:
lengthin interfacejava.lang.CharSequence
-
subSequence
public java.lang.CharSequence subSequence(int start, int end)- Specified by:
subSequencein interfacejava.lang.CharSequence
-
incOffset
public void incOffset()
Description copied from interface:ICharSequenceWithOffsetIncrements the offset by one.- Specified by:
incOffsetin interfaceICharSequenceWithOffset
-
incOffset
public void incOffset(int amount)
Description copied from interface:ICharSequenceWithOffsetIncrements the offset by the given amount. Can be used to decrement the offset.- Specified by:
incOffsetin interfaceICharSequenceWithOffset- Parameters:
amount- the number of offset that should be shifted.
-
accept
public void accept(AbstractParsedToken token)
- Specified by:
acceptin interfaceIParsedTokenAcceptor
-
setOffset
public void setOffset(int offset)
Description copied from interface:ICharSequenceWithOffsetRandom access to modify the offset. Can be set independently from the length of the char sequence.- Specified by:
setOffsetin interfaceICharSequenceWithOffset- Parameters:
offset- the new offset.
-
replaceHiddenTokens
public IHiddenTokenHandler.IHiddenTokenState replaceHiddenTokens(ITerminalConsumer... consumers)
- Specified by:
replaceHiddenTokensin interfaceIHiddenTokenHandler
-
doParse
protected IParseResult doParse(java.io.Reader reader)
- Specified by:
doParsein classAbstractParser
-
createCharSequence
protected java.lang.CharSequence createCharSequence(java.io.Reader reader0)
-
doParse
protected IParseResult doParse(java.lang.CharSequence sequence)
- Specified by:
doParsein classAbstractParser
-
-