Class Tokenizer
- java.lang.Object
-
- com.igormaznitsa.prologparser.tokenizer.Tokenizer
-
public final class Tokenizer extends java.lang.ObjectInternal tokenizer to extract next token from reader.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanblockCommentsAllowedprivate StringBuilderExinsideCharBufferprivate TokenizerResultlastPushedTermprivate intlastTokenLineprivate intlastTokenPosprivate intlineprivate Koi7CharOpMapmetaOperatorsprivate PrologParserparserprivate intposprivate intprevLineprivate intprevPosprivate intprevTokenLineprivate intprevTokenPosprivate java.io.Readerreaderprivate StringBuilderExspecCharBufprivate StringBuilderExstrBufprivate booleanzeroQuotationAllowsWhitespaceCharprivate booleanzeroSingleQuotationAllowed
-
Constructor Summary
Constructors Constructor Description Tokenizer(PrologParser parser, Koi7CharOpMap metaOperators, java.io.Reader reader)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcalcDiffAndPushResultBack(java.lang.String etalon, StringBuilderEx buffer)voidclose(boolean closeReader)private intdoReadChar()OpContainerfindOperatorForName(java.lang.String operatorName)OpContainerfindOperatorForSingleChar(char c)voidfixPosition()(package private) TokenizerResultgetLastPushed()intgetLastTokenLine()intgetLastTokenPos()intgetLine()intgetPos()booleanhasOperatorStartsWith(java.lang.String operatorNameStartSubstring)static booleanisCharAllowedForRadix(char chr, int radix)PrologTermmakeTermFromString(java.lang.String str, int radix, Quotation quotingType, TokenizerState state)TokenizerResultpeek()TokenizerResultpop()voidpush(char ch)voidpush(TokenizerResult object)TokenizerResultreadNextToken()Read next tokenprivate voidskipUntilBlockCommentEnd()private voidskipUntilNextString()
-
-
-
Field Detail
-
strBuf
private final StringBuilderEx strBuf
-
specCharBuf
private final StringBuilderEx specCharBuf
-
insideCharBuffer
private final StringBuilderEx insideCharBuffer
-
blockCommentsAllowed
private final boolean blockCommentsAllowed
-
zeroSingleQuotationAllowed
private final boolean zeroSingleQuotationAllowed
-
zeroQuotationAllowsWhitespaceChar
private final boolean zeroQuotationAllowsWhitespaceChar
-
reader
private final java.io.Reader reader
-
parser
private final PrologParser parser
-
metaOperators
private final Koi7CharOpMap metaOperators
-
lastPushedTerm
private TokenizerResult lastPushedTerm
-
prevTokenLine
private int prevTokenLine
-
prevTokenPos
private int prevTokenPos
-
lastTokenLine
private int lastTokenLine
-
lastTokenPos
private int lastTokenPos
-
prevPos
private int prevPos
-
prevLine
private int prevLine
-
pos
private int pos
-
line
private int line
-
-
Constructor Detail
-
Tokenizer
public Tokenizer(PrologParser parser, Koi7CharOpMap metaOperators, java.io.Reader reader)
-
-
Method Detail
-
isCharAllowedForRadix
public static boolean isCharAllowedForRadix(char chr, int radix)
-
getLastPushed
TokenizerResult getLastPushed()
-
doReadChar
private int doReadChar() throws java.io.IOException- Throws:
java.io.IOException
-
calcDiffAndPushResultBack
public void calcDiffAndPushResultBack(java.lang.String etalon, StringBuilderEx buffer)
-
push
public void push(char ch)
-
close
public void close(boolean closeReader) throws java.io.IOException- Throws:
java.io.IOException
-
hasOperatorStartsWith
public boolean hasOperatorStartsWith(java.lang.String operatorNameStartSubstring)
-
findOperatorForName
public OpContainer findOperatorForName(java.lang.String operatorName)
-
findOperatorForSingleChar
public OpContainer findOperatorForSingleChar(char c)
-
push
public void push(TokenizerResult object)
-
peek
public TokenizerResult peek()
-
getLastTokenPos
public int getLastTokenPos()
-
getLastTokenLine
public int getLastTokenLine()
-
fixPosition
public void fixPosition()
-
skipUntilBlockCommentEnd
private void skipUntilBlockCommentEnd() throws java.io.IOException- Throws:
java.io.IOException
-
skipUntilNextString
private void skipUntilNextString() throws java.io.IOException- Throws:
java.io.IOException
-
pop
public TokenizerResult pop()
-
readNextToken
public TokenizerResult readNextToken()
Read next token- Returns:
- next token or null if not found or stream ended
-
makeTermFromString
public PrologTerm makeTermFromString(java.lang.String str, int radix, Quotation quotingType, TokenizerState state)
-
getLine
public int getLine()
-
getPos
public int getPos()
-
-