Detailed Description

Provides a wrapper for reading characters from a string of code. It strips comments and other junk internally such as tabs and spaces.

Inheritance diagram for Wrench.CodeLexer:
Wrench.StringReader

Public Member Functions

 CodeLexer (string code)
 Creates a new code lexer with the given code text. More...
 
override char Read ()
 Reads a character from the string. More...
 
bool PeekJunk ()
 Finds if the current location is followed by junk. Note that the junk has already been read off. More...
 
bool ReadJunk ()
 Skips junk in the text such as tabs or comments. More...
 
- Public Member Functions inherited from Wrench.StringReader
 StringReader (string str)
 Creates a new reader for the given string. More...
 
bool More ()
 Checks if there is anything left to read. More...
 
char Peek ()
 Takes a peek at the next character in the stream without reading it. More...
 
char Peek (int delta)
 Takes a peek at the character that is a number of characters away from the next one without actually reading it. Peek(0) is the next character, Peek(1) is the one after that etc. More...
 
void StepBack ()
 Steps back one place in the stream. More...
 
void Advance ()
 Steps forward one place in the stream. More...
 
int Length ()
 The length of the string. More...
 
void ReadUntil (char character)
 Keeps reading the given character from the stream until it's no longer next. Used for e.g. stripping an unknown length block of whitespaces in the stream. More...
 
void ReadOff (char[] chars)
 Keeps reading from the stream until no characters in the given set are next. Used for e.g. stripping an unknown number of newlines (
or ) from this stream. More...
 
void ReadOff (char[] chars, out int count)
 Keeps reading from the stream until no characters in the given set are next. Used for e.g. stripping an unknown number of newlines (
or ) from this stream. More...
 
int GetLineNumber ()
 Gets the line number that the pointer is currently at. More...
 
int GetLineNumber (out int charOnLine)
 Gets the line number and character number that the pointer is currently at. More...
 
string ReadLine (int lineNumber)
 Reads the numbered line from this stream. More...
 

Public Attributes

bool Literal
 Set this true if no junk should be stripped out. More...
 
int LineNumber =1
 The current line the lexer is on. More...
 
bool DidReadJunk
 True if the lexer just read some junk. More...
 
- Public Attributes inherited from Wrench.StringReader
char[] Chars
 The internal buffer of characters from the original string. More...
 
int Position
 The current position this reader is at in the string. More...
 

Private Member Functions

void LineCheck (char c)
 Increases the line count if the given character is a newline. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Wrench.StringReader
static char NULL ='\0'
 The null character. This is returned when operations are working beyond the end of the stream. More...
 

Constructor & Destructor Documentation

Wrench.CodeLexer.CodeLexer ( string  code)
inline

Creates a new code lexer with the given code text.

Parameters
codeThe code to parse.

Member Function Documentation

void Wrench.CodeLexer.LineCheck ( char  c)
inlineprivate

Increases the line count if the given character is a newline.

bool Wrench.CodeLexer.PeekJunk ( )
inline

Finds if the current location is followed by junk. Note that the junk has already been read off.

Returns
True if it is, false otherwise.
override char Wrench.CodeLexer.Read ( )
inlinevirtual

Reads a character from the string.

Returns
The character read.

Reimplemented from Wrench.StringReader.

bool Wrench.CodeLexer.ReadJunk ( )
inline

Skips junk in the text such as tabs or comments.

Returns
True if junk was read off.

Member Data Documentation

bool Wrench.CodeLexer.DidReadJunk

True if the lexer just read some junk.

int Wrench.CodeLexer.LineNumber =1

The current line the lexer is on.

bool Wrench.CodeLexer.Literal

Set this true if no junk should be stripped out.