summaryrefslogtreecommitdiff
path: root/identifiers.c
diff options
context:
space:
mode:
Diffstat (limited to 'identifiers.c')
-rw-r--r--identifiers.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/identifiers.c b/identifiers.c
index 6335ed8..e88c745 100644
--- a/identifiers.c
+++ b/identifiers.c
@@ -32,9 +32,10 @@ typedef IdentTree *Identifier;
static IdentTree ident_base_tree;
static long ident_curr_id; /* NOTE: you should eventually add something to reset this */
-static Identifier ident_tree_finsert(IdentTree *t, FILE *fp) {
+/* moves s to the char after the identifier */
+static Identifier ident_tree_insert(IdentTree *t, char **s) {
while (1) {
- int c = fgetc(fp);
+ char c = *((*s)++);
if (!isident(c)) {
if (t->id == 0) t->id = ++ident_curr_id;
return t;
@@ -51,8 +52,8 @@ static Identifier ident_tree_finsert(IdentTree *t, FILE *fp) {
/* inserts if does not exist. reads until non-ident char is found. */
/* advances past identifier */
-static Identifier ident_finsert(FILE *fp) {
- return ident_tree_finsert(&ident_base_tree, fp);
+static Identifier ident_insert(char **s) {
+ return ident_tree_insert(&ident_base_tree, s);
}