From 732ff47f44bff814f5b06494165d72d7d8c9b168 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Sun, 11 Feb 2018 13:42:05 -0800 Subject: [PATCH] Add function to extract strings from tokens. --- src/parser.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/parser.c b/src/parser.c index 244ee91..c9b8b0e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -3,6 +3,7 @@ #include "libabacus_util.h" #include "lexer.h" #include +#include struct parser_state { ll_node* current_node; @@ -55,6 +56,18 @@ libab_result _parser_consume_char(struct parser_state* state, char to_consume) { libab_result _parse_block(struct parser_state*, tree**, int); +libab_result _parser_extract_token(struct parser_state* state, char** into, lexer_match* match) { + libab_result result = LIBAB_SUCCESS; + size_t string_size = match->to - match->from; + if((*into = malloc(string_size + 1))) { + strncpy(*into, state->string + match->from, string_size); + (*into)[string_size] = '\0'; + } else { + result = LIBAB_MALLOC; + } + return result; +} + libab_result _parse_expression(struct parser_state* state, tree** store_into) { libab_result result = LIBAB_SUCCESS; return result;