summaryrefslogtreecommitdiff
path: root/src/sys/np/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/np/core')
-rw-r--r--src/sys/np/core/np_lex.c36
-rw-r--r--src/sys/np/core/np_parse.c3
2 files changed, 36 insertions, 3 deletions
diff --git a/src/sys/np/core/np_lex.c b/src/sys/np/core/np_lex.c
index eb15a52..fffe465 100644
--- a/src/sys/np/core/np_lex.c
+++ b/src/sys/np/core/np_lex.c
@@ -81,6 +81,37 @@ lex_pop(struct np_work *work)
}
/*
+ * Compare a token with existing integer types (used internally)
+ */
+static void
+lex_cmp_itype(const char *tokstr, struct lex_token *res)
+{
+ switch (*tokstr) {
+ case 'u':
+ if (strcmp(tokstr, TOKEN_U8) == 0) {
+ res->token = TT_U8;
+ break;
+ }
+
+ if (strcmp(tokstr, TOKEN_U16) == 0) {
+ res->token = TT_U16;
+ break;
+ }
+
+ if (strcmp(tokstr, TOKEN_U32) == 0) {
+ res->token = TT_U32;
+ break;
+ }
+
+ if (strcmp(tokstr, TOKEN_U64) == 0) {
+ res->token = TT_U64;
+ break;
+ }
+ break;
+ }
+}
+
+/*
* Compare a token with existing tokens (used internally)
*/
static int
@@ -103,9 +134,8 @@ lex_cmptok(char *tokstr, struct lex_token *res)
}
return 0;
case 'u':
- if (strcmp(tokstr, TOKEN_U8) == 0) {
- res->token = TT_U8;
- }
+ case 'i':
+ lex_cmp_itype(tokstr, res);
return 0;
}
diff --git a/src/sys/np/core/np_parse.c b/src/sys/np/core/np_parse.c
index 63f93aa..c560294 100644
--- a/src/sys/np/core/np_parse.c
+++ b/src/sys/np/core/np_parse.c
@@ -62,6 +62,9 @@ static const char *stoktab[] = {
/* Types */
[TT_U8] = "<TT_U8>",
+ [TT_U16] = "<TT_U16>",
+ [TT_U32] = "<TT_U32>",
+ [TT_U64] = "<TT_U64>",
/* Values */
[TT_NUMBER] = "<TT_NUMBER>",