From 4fdb258036d874e65559f6b0d79bdc8ada0906af Mon Sep 17 00:00:00 2001 From: Pompolic <pompolic@special-circumstanc.es> Date: Fri, 14 Feb 2020 16:59:53 +0100 Subject: [PATCH] Define semantic action for ascii85 digit (no ARULE yet) --- pdf.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pdf.c b/pdf.c index ce2d4ed..5c8dc7f 100644 --- a/pdf.c +++ b/pdf.c @@ -237,6 +237,23 @@ act_ahextruncated(const HParseResult *p, void *u) return H_MAKE_UINT(b); } +HParsedToken * +act_a85zero(const HParseResult *p, void *u) +{ + uint8_t nybble = 0; + /* Remember, this only represents 4 bytes. */ + return H_MAKE_UINT(nybble); +} + +HParsedToken * +act_a85digit(const HParseResult *p void *u) +{ + uint8_t nybble = H_CAST_UINT(p->ast); + nybble -= '!'; + + return H_MAKE_UINT(nybble); +} + HParsedToken * act_nat(const HParseResult *p, void *u) { @@ -1097,8 +1114,10 @@ ASCII85Decode(const Dict *parms, HBytes b, HParser *p) { HParseResult *res; H_RULE(lwchar, IN(LWCHARS)); - + H_RULE(a85eod, SEQ(h_ch('~'), OPT(h_many(lwchar)), h_ch('>'))); + H_ARULE(a85zero, h_ch('z')); + fprintf(stderr, "ASCII85Decode: not implemented\n"); return NULL; } -- GitLab