aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/parser.c b/src/parser.c
index 5e07f0e..3f9c030 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -5,6 +5,8 @@ typedef struct {
TslTokenizer tokenizer;
} TslParser;
+static int tsl_parser_parse_rhs(TslParser *self);
+
static void tsl_parser_init(TslParser *self, const char *code, size_t code_size) {
tsl_tokenizer_init(&self->tokenizer, code, code_size);
}
@@ -13,6 +15,8 @@ static int tsl_parser_parse_map(TslParser *self) {
#define parse_map_element_separator \
if(!tsl_tokenizer_accept(&self->tokenizer, TSL_TOKEN_COLON)) \
return -1; \
+ if(tsl_parser_parse_rhs(self) != 0) \
+ return -1; \
token = tsl_tokenizer_next(&self->tokenizer); \
if(token == TSL_TOKEN_COMMA) { \
continue; \
@@ -85,7 +89,7 @@ static int tsl_parser_parse_list(TslParser *self) {
}
}
-static int tsl_parser_parse_rhs(TslParser *self) {
+int tsl_parser_parse_rhs(TslParser *self) {
TslToken token = tsl_tokenizer_next(&self->tokenizer);
if(token == TSL_TOKEN_NUM) {
printf("rhs num: %ld\n", self->tokenizer.number_value);