C# (CSharp) LexicalAnalysis Namespace

Сlasses

Name Description
EmptyToken
FSA
FSAChar The FSA for scanning a C character. Note that this FSA doesn't scan the surrounding quotes. It is used in both FSACharConst and FSAString. There are multiple ways to represent a character: * A normal character : any character other than \\ \n or [quote] Note that [quote] might be \' or \" depending on the context. For example, inside a String, single quote are allowed, which means that the following code is legal: Char *str = "single quote here: ' see that?"; However, if we need a double quote inside a String, we have to use an escape character, like this: Char *str = "double quote needs to be escaped: \" "; Inside a Char, double quotes are allowed while single quotes need to be escaped. Char double_quote = '"'; // allowed Char single_quote = '\''; // needs to be escaped * An escape character : \a \b \f \n \r \t \v \' \" \\ \? Note that even though \' and \" might not needs to be escaped, you can always use them as escaped. If you escape a character not listed above, the behavior is undefined in the standard. I'll just assume you need the unescaped character. For example, if you typed '\c', then I'll just treat it as 'c'. * An octal number after a backslash. For example : \123. * A hexadecimal number after a backslash and an 'x' or 'X'. FOr example : \xFF.
FSACharConst FSACharConst ============ The FSA for scanning a C character constant. Upon finish, we can retrive a token of character. A character constant can either be represented by * '[char]' or * L'[char]' The character inside the quotes is read by FSAChar. Note that if the inner character is a single quote, it needs to be escaped.
FSAFloat The FSA for scanning a float.
FSAIdentifier
FSAInt
FSANewLine
FSAOperator
FSASpace
FSAString
Scanner
Token
TokenCharConst A character constant
TokenFloat The token representing a floating number. It can either be a float or double.
TokenIdentifier If the identifier is found to be a keyword, then it will be a keyword
TokenInt There are four types of integers: signed, unsigned, signed long, unsigned long
TokenKeyword
TokenOperator
TokenString String literal
Utils