summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/c/pgf')
-rw-r--r--src/runtime/c/pgf/expr.h8
-rw-r--r--src/runtime/c/pgf/parser.c2
-rw-r--r--src/runtime/c/pgf/reader.c20
3 files changed, 17 insertions, 13 deletions
diff --git a/src/runtime/c/pgf/expr.h b/src/runtime/c/pgf/expr.h
index e560d3a83..b775bd9b5 100644
--- a/src/runtime/c/pgf/expr.h
+++ b/src/runtime/c/pgf/expr.h
@@ -197,16 +197,16 @@ pgf_literal_hash(GuHash h, PgfLiteral lit);
PGF_API_DECL GuHash
pgf_expr_hash(GuHash h, PgfExpr e);
-PGF_API size_t
+PGF_API_DECL size_t
pgf_expr_size(PgfExpr expr);
-PGF_API GuSeq*
+PGF_API_DECL GuSeq*
pgf_expr_functions(PgfExpr expr, GuPool* pool);
-PGF_API PgfExpr
+PGF_API_DECL PgfExpr
pgf_expr_substitute(PgfExpr expr, GuSeq* meta_values, GuPool* pool);
-PGF_API PgfType*
+PGF_API_DECL PgfType*
pgf_type_substitute(PgfType* type, GuSeq* meta_values, GuPool* pool);
typedef struct PgfPrintContext PgfPrintContext;
diff --git a/src/runtime/c/pgf/parser.c b/src/runtime/c/pgf/parser.c
index 20deba9da..cb59b2a55 100644
--- a/src/runtime/c/pgf/parser.c
+++ b/src/runtime/c/pgf/parser.c
@@ -10,7 +10,7 @@
#include <math.h>
#include <stdlib.h>
-#define PGF_PARSER_DEBUG
+//#define PGF_PARSER_DEBUG
//#define PGF_COUNTS_DEBUG
//#define PGF_RESULT_DEBUG
diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c
index d7094c9d5..82b6f8abf 100644
--- a/src/runtime/c/pgf/reader.c
+++ b/src/runtime/c/pgf/reader.c
@@ -328,16 +328,20 @@ pgf_read_patt(PgfReader* rdr)
uint8_t tag = pgf_read_tag(rdr);
switch (tag) {
case PGF_PATT_APP: {
- PgfPattApp *papp =
- gu_new_variant(PGF_PATT_APP,
- PgfPattApp,
- &patt, rdr->opool);
- papp->ctor = pgf_read_cid(rdr, rdr->opool);
+ PgfCId ctor = pgf_read_cid(rdr, rdr->opool);
gu_return_on_exn(rdr->err, gu_null_variant);
-
- papp->n_args = pgf_read_len(rdr);
+
+ size_t n_args = pgf_read_len(rdr);
gu_return_on_exn(rdr->err, gu_null_variant);
-
+
+ PgfPattApp *papp =
+ gu_new_flex_variant(PGF_PATT_APP,
+ PgfPattApp,
+ args, n_args,
+ &patt, rdr->opool);
+ papp->ctor = ctor;
+ papp->n_args = n_args;
+
for (size_t i = 0; i < papp->n_args; i++) {
papp->args[i] = pgf_read_patt(rdr);
gu_return_on_exn(rdr->err, gu_null_variant);