C-minor v0.0

CodeFile Class

Assembly: Topten.Cminor.Compiler.dll
Namespace: Topten.Cminor.Lexical

Holds the contents of a source code file, along with its filename and provides utility functions for stepping through its content.

public class CodeFile

Inheritance

CodeFile → object

Constructors

CodeFile(string, string)

Construct a CodeFile from a string

Properties

Current

The current character

EOF

True if the current position is at EOF

EOL

True if the current position is at the end of a line

FileName

Gets the filename associated with this StringSource

Position

The current position as a character index from the start of the file

SourceText

Gets the source text for this StringSource

Methods

CapturePosition()

Creates a CodePosition for the current read position

CharAt(int)

The character at offset from current

CreatePosition(int)

Creates a CodePosition for a location

CreatePosition(int, int)

Creates a CodePosition for a range

DoesMatch(string)

Check if the current position in the string matches a substring (case sensitive)

DoesMatchI(string)

Check if the current position in the string matches a substring (case insensitive)

Extract(int)

Extract text from the specified position to the current position

FromFile(string)

Constructs a CodeFile from a file

FromFile(string, string)

Constructs a CodeFile for a file, resolving the full path from a base directory.

Next()

Move to the next character (if available)

Skip(Func<char,bool>)

Skip characters matching predicate

Skip(char)

Skip one instance of the specified character (case sensitive)

Skip(string)

Skip a string (case sensitive)

SkipAndExtract(Func<char,bool>)

Skip characters matching predicate and return the matched characters

SkipI(char)

Skip one instance of the specified character (case insensitive)

SkipI(string)

Skip a string (case insensitive)

SkipToEOL()

Move the current position to the end of the current line

SkipUntil(string)

Skip forward until a particular string is matched (case sensitive)

SkipWhitespace()

Skip over any whitespace at the current position