aboutsummaryrefslogtreecommitdiff
path: root/src/tokenize.c
diff options
context:
space:
mode:
authorkoekeishiya <aasvi93@hotmail.com>2017-08-24 10:52:01 +0200
committerkoekeishiya <aasvi93@hotmail.com>2017-08-24 10:52:01 +0200
commita97f0fb98a874d1bcea93938c81749931203e136 (patch)
tree7bf43a78464a4769bd48ccc8d56b02242dd39e7a /src/tokenize.c
parent498e08c26b58a5c454a8004920923febd4c5061b (diff)
downloadskhd-a97f0fb98a874d1bcea93938c81749931203e136.tar.gz
skhd-a97f0fb98a874d1bcea93938c81749931203e136.zip
#2 add function keys support to lexer
Diffstat (limited to 'src/tokenize.c')
-rw-r--r--src/tokenize.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/tokenize.c b/src/tokenize.c
index 53f294a..333ee67 100644
--- a/src/tokenize.c
+++ b/src/tokenize.c
@@ -58,10 +58,18 @@ eat_hex(struct tokenizer *tokenizer)
}
}
+// NOTE(koekeishiya): production rules:
+// identifier = <char><char> | <char><number>
+// number = <digit><digit> | <digit>
+// digit = 0..9
internal void
eat_identifier(struct tokenizer *tokenizer)
{
- while(*tokenizer->at && isalpha(*tokenizer->at)) {
+ while((*tokenizer->at) && isalpha(*tokenizer->at)) {
+ advance(tokenizer);
+ }
+
+ while((*tokenizer->at) && isdigit(*tokenizer->at)) {
advance(tokenizer);
}
}