diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/parser.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/parser.c b/src/parser.c index a8b9c47..8732a25 100644 --- a/src/parser.c +++ b/src/parser.c | |||
@@ -961,6 +961,13 @@ parse_symbol(Parser *parser) { | |||
961 | array_push(node->arguments, array_pop(parser->nodes), | 961 | array_push(node->arguments, array_pop(parser->nodes), |
962 | parser->storage); | 962 | parser->storage); |
963 | } | 963 | } |
964 | if (parse_match(parser, TOK_DOT)) { | ||
965 | // Symbol chain. | ||
966 | parse_consume(parser, TOK_SYMBOL, | ||
967 | cstr("expected symbol after '.' operator")); | ||
968 | parse_symbol(parser); | ||
969 | node->next = array_pop(parser->nodes); | ||
970 | } | ||
964 | } else { | 971 | } else { |
965 | node = node_alloc(parser, NODE_SYMBOL, prev); | 972 | node = node_alloc(parser, NODE_SYMBOL, prev); |
966 | if (!node) return; | 973 | if (!node) return; |