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 |
|