diff options
Diffstat (limited to 'tnslc/src/parse/token.tnsl')
-rw-r--r-- | tnslc/src/parse/token.tnsl | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/tnslc/src/parse/token.tnsl b/tnslc/src/parse/token.tnsl index a841f58..cbbb31f 100644 --- a/tnslc/src/parse/token.tnsl +++ b/tnslc/src/parse/token.tnsl @@ -30,9 +30,9 @@ /# Token struct definition #/ ;raw struct Token { uint - type, + token_type, line, - char, + col, ~{}charp data @@ -43,6 +43,14 @@ /; operator delete ;delete this.data ;/ + + /; add_char (`{}charp part) + ;uint l = len `this.data + ;realloc this.data, l + len part + /;loop (uint i = 0; i < len part) [i++] + `this.data{l + i} = part{i} + ;/ + ;/ ;/ /# @@ -206,7 +214,7 @@ #; is_in_string (`const {}charp cmp, charp p) [bool] - /; for (int i = 0; i < len cmp) [i++] + /; loop (int i = 0; i < len cmp) [i++] /; if (s == cmp{i}) ;return true @@ -222,11 +230,11 @@ #; is_in_string_list (`const {}{}charp cmp, `{}charp s) [bool] - /; for (int i = 0; i < len cmp) [i++] + /; loop (int i = 0; i < len cmp) [i++] /; if (len s == len cmp{i}) - /; for (int j = 0; j < len s) [j++] + /; loop (int j = 0; j < len s) [j++] /; if (s{j} !== cmp{i}{j}) ;goto cont_outer |