diff options
Diffstat (limited to 'test/self/lexer.mnml')
-rw-r--r-- | test/self/lexer.mnml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/self/lexer.mnml b/test/self/lexer.mnml new file mode 100644 index 0000000..8468f66 --- /dev/null +++ b/test/self/lexer.mnml @@ -0,0 +1,22 @@ +const main: function = (input: string): array { + return lex(input = input, position = 0, output = []) +} + +const lex: function = (input: string, position: integer, output: array): array { + if (position == (strlen(input))) { + return output + } + + const current_char: string = get_char(input, position) + + const appended_output: array + if (current_char != " ") { + appended_output = array_append(output, current_char) + } else { + appended_output = output + } + + return lex(input = input, position = (position + 1), output = appended_output) +} + +main(input = "a b c d e f g") => dump($) |