diff options
author | kdx <kikoodx@paranoici.org> | 2023-03-16 05:00:39 +0100 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-03-16 05:00:39 +0100 |
commit | 06e220903dc731957205d733b9cb71f908e285a6 (patch) | |
tree | c65b40069149d99ac71d07df6c04c72aaaba5401 | |
parent | aa926bd6a868320a767d7428fffeff1b0f087dee (diff) | |
download | golem-06e220903dc731957205d733b9cb71f908e285a6.tar.gz |
identify return
-rw-r--r-- | group.h | 1 | ||||
-rw-r--r-- | identify.c | 11 | ||||
-rw-r--r-- | identify.h | 1 | ||||
-rw-r--r-- | main.c | 1 |
4 files changed, 14 insertions, 0 deletions
@@ -9,6 +9,7 @@ enum { GROUP_ASSIGN = '=', GROUP_LET = 'l', GROUP_DEREF = 'd', + GROUP_RETURN = 'r', }; struct Token; @@ -50,6 +50,17 @@ identify_let(Token **list) } int +identify_return(Token **list) +{ + if (token_len(*list) != 2) + return 0; + if ((*list)->type != TOK_KW_RETURN) + return 1; + token_delete(list, *list); + return 1; +} + +int identify_assign(Token **list) { if (token_len(*list) != 3) @@ -4,4 +4,5 @@ void identify(Token *list, int (*fun)(Token**), unsigned int type, int recurse); int identify_function(Token **list); int identify_let(Token **list); +int identify_return(Token **list); int identify_assign(Token **list); @@ -41,6 +41,7 @@ main(int argc, char **argv) group_deref(&tokens); identify(tokens, identify_function, GROUP_FUNCTION, 0); identify(tokens, identify_let, GROUP_LET, 1); + identify(tokens, identify_return, GROUP_RETURN, 1); identify(tokens, identify_assign, GROUP_ASSIGN, 1); token_print(tokens, 1, 0); token_destroy(tokens); |