Fixed tokenization

This commit is contained in:
2022-07-25 05:08:33 -05:00
parent 36d2fefa3b
commit 52df580ccb
2 changed files with 9 additions and 1 deletions

View File

@@ -67,6 +67,9 @@ static void gettoken(FILE *file, Token *ret) {
for (;;) { for (;;) {
c = fgetc(file); c = fgetc(file);
switch (c) { switch (c) {
case '#':
while (c != '\n' && c != EOF)
c = fgetc(file);
case '\n': case '\n':
ret->type = LINE_END; ret->type = LINE_END;
return; return;
@@ -125,7 +128,12 @@ static CommandType getcommand(FILE *file, int *argcret, char ***argvret) {
case FILE_END: case FILE_END:
if (argc == 0) if (argc == 0)
return PAST_END; return PAST_END;
goto gotcommand;
case LINE_END: case LINE_END:
if (argc == 0)
return getcommand(file, argcret, argvret);
goto gotcommand;
gotcommand:
*argcret = argc; *argcret = argc;
*argvret = argv; *argvret = argv;
return NORMAL; return NORMAL;