diff options
Diffstat (limited to 'src/runtime/c')
| -rw-r--r-- | src/runtime/c/pgf/expr.c | 30 | ||||
| -rw-r--r-- | src/runtime/c/pgf/expr.h | 6 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/runtime/c/pgf/expr.c b/src/runtime/c/pgf/expr.c index 3482e0b11..d579027aa 100644 --- a/src/runtime/c/pgf/expr.c +++ b/src/runtime/c/pgf/expr.c @@ -112,6 +112,36 @@ pgf_expr_string(GuString str, GuPool* pool) lit); } +PgfExpr +pgf_expr_int(int val, GuPool* pool) +{ + PgfLiteral lit; + PgfLiteralInt* plit = + gu_new_variant(PGF_LITERAL_INT, + PgfLiteralInt, + &lit, pool); + plit->val = val; + return gu_new_variant_i(pool, + PGF_EXPR_LIT, + PgfExprLit, + lit); +} + +PgfExpr +pgf_expr_float(double val, GuPool* pool) +{ + PgfLiteral lit; + PgfLiteralFlt* plit = + gu_new_variant(PGF_LITERAL_FLT, + PgfLiteralFlt, + &lit, pool); + plit->val = val; + return gu_new_variant_i(pool, + PGF_EXPR_LIT, + PgfExprLit, + lit); +} + typedef struct PgfExprParser PgfExprParser; typedef enum { diff --git a/src/runtime/c/pgf/expr.h b/src/runtime/c/pgf/expr.h index 23aa971f0..2e76bf21d 100644 --- a/src/runtime/c/pgf/expr.h +++ b/src/runtime/c/pgf/expr.h @@ -150,6 +150,12 @@ PgfExpr pgf_expr_string(GuString, GuPool* pool); PgfExpr +pgf_expr_int(int val, GuPool* pool); + +PgfExpr +pgf_expr_float(double val, GuPool* pool); + +PgfExpr pgf_read_expr(GuIn* in, GuPool* pool, GuExn* err); int |
