summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/graphviz.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/c/pgf/graphviz.c')
-rw-r--r--src/runtime/c/pgf/graphviz.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runtime/c/pgf/graphviz.c b/src/runtime/c/pgf/graphviz.c
index 0a7b6d30a..0936a2d63 100644
--- a/src/runtime/c/pgf/graphviz.c
+++ b/src/runtime/c/pgf/graphviz.c
@@ -174,13 +174,26 @@ pgf_bracket_lzn_end_phrase(PgfLinFuncs** funcs, PgfCId cat, int fid, int lindex,
state->parent = state->parent->parent;
}
+static void
+pgf_bracket_lzn_symbol_meta(PgfLinFuncs** funcs, PgfMetaId meta_id)
+{
+ PgfBracketLznState* state = gu_container(funcs, PgfBracketLznState, funcs);
+
+ PgfParseNode* node = gu_new(PgfParseNode, state->pool);
+ node->id = 100000 + gu_buf_length(state->leaves);
+ node->parent = state->parent;
+ node->label = "?";
+ gu_buf_push(state->leaves, PgfParseNode*, node);
+}
+
static PgfLinFuncs pgf_bracket_lin_funcs = {
.symbol_token = pgf_bracket_lzn_symbol_token,
.begin_phrase = pgf_bracket_lzn_begin_phrase,
.end_phrase = pgf_bracket_lzn_end_phrase,
.symbol_ne = NULL,
.symbol_bind = NULL,
- .symbol_capit = NULL
+ .symbol_capit = NULL,
+ .symbol_meta = pgf_bracket_lzn_symbol_meta
};
static void