-
Notifications
You must be signed in to change notification settings - Fork 0
Utils.StringParserQuickTextReader
Text Reader Parser Quick for JSON system.
public class StringParserQuickTextReader :
QuickJSON.Utils.IStringParserQuick
Inheritance System.Object 🡒 StringParserQuickTextReader
Implements IStringParserQuick
Constructor
public StringParserQuickTextReader(System.IO.TextReader textreader, int chunksize);
textreader
System.IO.TextReader
Textreader to read from
chunksize
System.Int32
Chunk size to take each time from textreader. Make sure its big enough to read the longest number
Text of line in whole
public string Line { get; }
Implements Line
Current parse position
public int Position { get; }
Implements Position
Backup one position
public void BackUp();
Implements BackUp()
Calculate a checksum on the next char block.
public uint ChecksumCharBlock(System.Func<char,bool> test, bool skipafter=true);
test
System.Func<System.Char,System.Boolean>
Test character, if true, accept it and continue
skipafter
System.Boolean
True to skip spaces after the block ends
System.UInt32
Checksum, 0 if no chars
Implements ChecksumCharBlock(Func<char,bool>, bool)
Get next character or char.MinValue if at EOL.
public char GetChar();
Implements GetChar()
Skip spaces, then get next character or char.MinValue if at EOL. Optionally skip afterwards
public char GetNextNonSpaceChar(bool skipspacesafter=true);
skipspacesafter
System.Boolean
Implements GetNextNonSpaceChar(bool)
Is this character at the current position, if so, skip it. Optionally skip space afterwards
public bool IsCharMoveOn(char t, bool skipspaceafter=true);
skipspaceafter
System.Boolean
Implements IsCharMoveOn(char, bool)
Is at End of Line
public bool IsEOL();
Implements IsEOL()
Is this string at the current position, if so, skip it and skip space
public bool IsStringMoveOn(string s);
Implements IsStringMoveOn(string)
Read next number: long, ulong, bigint or double.
public QuickJSON.JToken JNextNumber(bool sign, bool skipafter=true);
sign
System.Boolean
True if negative. Sign has been removed
skipafter
System.Boolean
True to skip spaces after the string ends
JToken
New JToken of number, Long, BigInt or Double. Null if failed
Implements JNextNumber(bool, bool)
Read next token value from string then skip on
public QuickJSON.JToken JNextValue(char[] buffer, bool inarray);
buffer
System.Char[]
Buffer to place string into
inarray
System.Boolean
True if in a json array
JToken
New JToken of string, Long, ULong, BigInt or Double, Bool. Null if failed
Implements JNextValue(char[], bool)
Read a character block.
public int NextCharBlock(char[] buffer, System.Func<char,bool> test, bool skipafter=true);
buffer
System.Char[]
Buffer to place string into
test
System.Func<System.Char,System.Boolean>
Test function, if true, accept it, else stop here (without removing it)
skipafter
System.Boolean
True to skip spaces after the block ends
System.Int32
Number of characters in buffer. -1 if it runs out of buffer space
Implements NextCharBlock(char[], Func<char,bool>, bool)
Get the next quoted string into buffer. Quote has already been removed.
public int NextQuotedString(char quote, char[] buffer, bool replaceescape=false, bool skipafter=true);
quote
System.Char
Quote character to stop on
buffer
System.Char[]
Buffer to place string into
replaceescape
System.Boolean
True to replace escape sequences \, /, \b, \f, \n, \r, \t, uNNNN
skipafter
System.Boolean
True to skip spaces after the string ends
System.Int32
Number of characters in buffer. -1 if it runs out of store buffer space or reached end of data
Implements NextQuotedString(char, char[], bool, bool)
Peek next character or char.MinValue if at EOL.
public char PeekChar();
Implements PeekChar()
Skip all white space
public void SkipSpace();
Implements SkipSpace()