From 20de320558634cc03b63c4834d288e5731a8e35e Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Wed, 16 Mar 2022 15:09:19 +0300 Subject: [PATCH] 1 --- lexer.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 lexer.c diff --git a/lexer.c b/lexer.c new file mode 100644 index 0000000..42d6d21 --- /dev/null +++ b/lexer.c @@ -0,0 +1,34 @@ + +Autoarr(Token)* lexan(char* source){ + Autoarr(Token)* tokens=malloc(sizeof(Autoarr(Token))); + *tokens=Autoarr_create(Token,64,1024); + char c; + string label={source,0}; + + void addlabel(){ + if(label.length!=0) return; + Unitype token=ST_pull_str(label); + if(token.type==Null){ + //custom token + } + Autoarr_add(tokens, (*token.VoidPtr)); + label={source,0}; + }; + + addtok(TokenId id){ + Autoarr_add(tokens, default_tokens[id]); + } + + while ((c=*source++)) switch(c){ + case ' ': case '\t': + case '\r': case '\n': + addlabel(); + break; + case '(': + addlabel(); + addtok(tok_lbracket); + break; + + + } +}