diff --git a/pdf.c b/pdf.c index ce2d4ed3ea9ed8fcb626da4f554acf82ee804742..5c8dc7f6589060062ef1cb4c878790c455c1328c 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; }