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 protected
AbstractPackratParser(IParseResultFactory parseResultFactory, IGrammarAccess grammarAccess)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
accept(AbstractParsedToken token)
char
charAt(int index)
void
consumeAction(Action action, boolean isMany)
int
consumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy)
protected void
consumeHiddens()
int
consumeKeyword(Keyword keyword, java.lang.String feature, boolean isMany, boolean isBoolean, ICharacterClass notFollowedBy, boolean optional)
int
consumeNonTerminal(INonTerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isDatatype, boolean isBoolean, AbstractElement grammarElement, boolean optional)
int
consumeTerminal(ITerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isBoolean, AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional)
protected java.lang.CharSequence
createCharSequence(java.io.Reader reader0)
protected KeywordConsumer
createKeywordConsumer()
protected EnumLiteralConsumer
createLiteralConsumer()
protected abstract IParserConfiguration
createParserConfiguration(AbstractParserConfiguration.IInternalParserConfiguration configuration)
protected IParseResult
doParse(java.io.Reader reader)
protected IParseResult
doParse(java.lang.CharSequence sequence)
Marker
getActiveMarker()
protected IGrammarAccess
getGrammarAccess()
java.lang.CharSequence
getInput()
Marker
getNextMarker(Marker parent, int offset)
int
getOffset()
Retrieves the current state of the offset property.protected IParseResultFactory
getParseResultFactory()
protected INonTerminalConsumer
getRootConsumer()
void
incOffset()
Increments the offset by one.void
incOffset(int amount)
Increments the offset by the given amount.int
length()
IMarkerFactory.IMarker
mark()
Creates a new marker.IParseResult
parse(java.lang.CharSequence input)
IParseResult
parse(java.lang.CharSequence input, INonTerminalConsumer consumer)
protected IParseResult
parse(INonTerminalConsumer consumer)
void
releaseMarker(Marker marker)
IHiddenTokenHandler.IHiddenTokenState
replaceHiddenTokens(ITerminalConsumer... consumers)
void
setActiveMarker(Marker marker)
void
setOffset(int offset)
Random access to modify the offset.java.lang.CharSequence
subSequence(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:
parse
in interfaceIPackratParser
-
parse
public final IParseResult parse(java.lang.CharSequence input, INonTerminalConsumer consumer)
- Specified by:
parse
in 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:IMarkerFactory
Creates a new marker.- Specified by:
mark
in interfaceIMarkerFactory
- Returns:
- the created marker.
-
getActiveMarker
public Marker getActiveMarker()
- Specified by:
getActiveMarker
in interfaceMarker.IMarkerClient
-
getNextMarker
public Marker getNextMarker(Marker parent, int offset)
- Specified by:
getNextMarker
in interfaceMarker.IMarkerClient
-
setActiveMarker
public void setActiveMarker(Marker marker)
- Specified by:
setActiveMarker
in interfaceMarker.IMarkerClient
-
releaseMarker
public void releaseMarker(Marker marker)
- Specified by:
releaseMarker
in interfaceMarker.IMarkerClient
-
consumeKeyword
public int consumeKeyword(Keyword keyword, java.lang.String feature, boolean isMany, boolean isBoolean, ICharacterClass notFollowedBy, boolean optional)
- Specified by:
consumeKeyword
in interfaceIConsumerUtility
-
consumeEnum
public int consumeEnum(EnumLiteralDeclaration literal, ICharacterClass notFollowedBy)
- Specified by:
consumeEnum
in interfaceIConsumerUtility
-
consumeTerminal
public int consumeTerminal(ITerminalConsumer consumer, java.lang.String feature, boolean isMany, boolean isBoolean, AbstractElement grammarElement, ISequenceMatcher notMatching, boolean optional)
- Specified by:
consumeTerminal
in 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:
consumeNonTerminal
in interfaceIConsumerUtility
- Throws:
java.lang.Exception
-
consumeAction
public void consumeAction(Action action, boolean isMany)
- Specified by:
consumeAction
in interfaceIConsumerUtility
-
getParseResultFactory
protected IParseResultFactory getParseResultFactory()
-
getGrammarAccess
protected IGrammarAccess getGrammarAccess()
-
getOffset
public int getOffset()
Description copied from interface:ICharSequenceWithOffset
Retrieves the current state of the offset property.- Specified by:
getOffset
in interfaceICharSequenceWithOffset
- Returns:
- the current offset.
-
charAt
public char charAt(int index)
- Specified by:
charAt
in interfacejava.lang.CharSequence
-
length
public int length()
- Specified by:
length
in interfacejava.lang.CharSequence
-
subSequence
public java.lang.CharSequence subSequence(int start, int end)
- Specified by:
subSequence
in interfacejava.lang.CharSequence
-
incOffset
public void incOffset()
Description copied from interface:ICharSequenceWithOffset
Increments the offset by one.- Specified by:
incOffset
in interfaceICharSequenceWithOffset
-
incOffset
public void incOffset(int amount)
Description copied from interface:ICharSequenceWithOffset
Increments the offset by the given amount. Can be used to decrement the offset.- Specified by:
incOffset
in interfaceICharSequenceWithOffset
- Parameters:
amount
- the number of offset that should be shifted.
-
accept
public void accept(AbstractParsedToken token)
- Specified by:
accept
in interfaceIParsedTokenAcceptor
-
setOffset
public void setOffset(int offset)
Description copied from interface:ICharSequenceWithOffset
Random access to modify the offset. Can be set independently from the length of the char sequence.- Specified by:
setOffset
in interfaceICharSequenceWithOffset
- Parameters:
offset
- the new offset.
-
replaceHiddenTokens
public IHiddenTokenHandler.IHiddenTokenState replaceHiddenTokens(ITerminalConsumer... consumers)
- Specified by:
replaceHiddenTokens
in interfaceIHiddenTokenHandler
-
doParse
protected IParseResult doParse(java.io.Reader reader)
- Specified by:
doParse
in classAbstractParser
-
createCharSequence
protected java.lang.CharSequence createCharSequence(java.io.Reader reader0)
-
doParse
protected IParseResult doParse(java.lang.CharSequence sequence)
- Specified by:
doParse
in classAbstractParser
-
-