diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2023-02-17 22:54:34 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2023-02-17 22:54:34 -0800 |
| commit | bdc8e2a05f4d647deec81249546cc7582eefaf74 (patch) | |
| tree | cd5dbb19ad24744b9b92562da3d7026c7dd84094 /src/parse.c | |
| parent | 42696cdb053d994eacfc66bb348b0ddf0d80046c (diff) | |
fixed parsing negative numbers, added float functions
Diffstat (limited to 'src/parse.c')
| -rw-r--r-- | src/parse.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parse.c b/src/parse.c index 79c1dc4..fcaab5d 100644 --- a/src/parse.c +++ b/src/parse.c @@ -23,6 +23,11 @@ sym_t* init_sym_int(int value) { *vp = value; return init_sym(LITERAL, INT, vp); } +sym_t* init_sym_float(float value) { + int* vp = malloc(sizeof(float)); + *vp = value; + return init_sym(LITERAL, FLOAT, vp); +} sym_t* init_sym_str(char* value) { char* vp = malloc((strlen(value) + 1) * sizeof(char)); strcpy(vp, value); @@ -77,7 +82,7 @@ symset_t* parse_symbols(char** str) { symbolSet->count = 0; while (1) { /* clear whitespace */ - while (!isalnum(**str) && **str != '(' && **str != ')' && **str != '\0') { + while (!isalnum(**str) && **str != '-' && **str != '(' && **str != ')' && **str != '\0') { (*str)++; } if (**str == ')') { |
