add escape sequences
This commit is contained in:
54
src/lexer.c
54
src/lexer.c
@@ -319,6 +319,60 @@ ResultType(CometToken, ErrorMessage) lexerParseString(CometLexer* lexer, char st
|
||||
while (lexer->currentChar != startingQuote && lexer->pos < lexer->sourceLen) {
|
||||
char current = lexer->currentChar;
|
||||
|
||||
// escape sequences
|
||||
if (current == '\\') {
|
||||
switch (lexer->source[lexer->pos+1]) {
|
||||
case '\\': {
|
||||
current = '\\';
|
||||
break;
|
||||
}
|
||||
case 'n': {
|
||||
current = '\n';
|
||||
break;
|
||||
}
|
||||
case 't': {
|
||||
current = '\t';
|
||||
break;
|
||||
}
|
||||
case 'r': {
|
||||
current = '\r';
|
||||
break;
|
||||
}
|
||||
case '0': {
|
||||
current = 0;
|
||||
break;
|
||||
}
|
||||
case 'a': {
|
||||
current = '\a';
|
||||
break;
|
||||
}
|
||||
case 'b': {
|
||||
current = '\b';
|
||||
break;
|
||||
}
|
||||
case 'v': {
|
||||
current = '\v';
|
||||
break;
|
||||
}
|
||||
case 'f': {
|
||||
current = '\f';
|
||||
break;
|
||||
}
|
||||
case '"': {
|
||||
current = '"';
|
||||
break;
|
||||
}
|
||||
case '\'': {
|
||||
current = '\'';
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
lexer->pos++;
|
||||
}
|
||||
buffer[bufferPos] = current;
|
||||
bufferPos++;
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import io
|
||||
|
||||
func main() -> int {
|
||||
int[*] someArray
|
||||
io.print("You look...\n\n \"silly\"\n")
|
||||
return 0
|
||||
}
|
||||
Reference in New Issue
Block a user