Commit graph

78 commits

Author SHA1 Message Date
f9e5683bf4 WIP: Use previous changes to start implementing font caching and text parsing (still very broken, doesn't compile) 2019-10-14 10:17:15 +02:00
b8eb9e6856 Generalize the Parser type into a MonadParser class to use with MonadTrans and remove redundant code already defined in Applicative or Attoparsec 2019-10-14 10:17:15 +02:00
66d315b7fe Reflect the distinction between eval and run from State monad into the Parser module 2019-10-14 10:17:15 +02:00
51db57ec67 Ugly commit, breaks everything, still trying to figure a grammar for text 2019-10-14 10:17:15 +02:00
6f3c159ea7 Adding a module to implement text reading and a demo program to go with it 2019-10-14 10:17:15 +02:00
68f90d20e2 Implement PDF's multilayer updates and use it in getObj to display only the current version of the object taken into account instead of the concatenation of all its versions 2019-09-22 01:40:39 +02:00
3a39c75e6a Stop requiring an empty line between subsections in a xref section 2019-09-22 01:37:28 +02:00
29c5823f34 Fix precision bug caused by using Floats to represent PDF Number values sometimes used to represent a byte offset within a file 2019-09-22 01:34:17 +02:00
699f830a45 Simplify XRef structure, clarify integer types and remove nextLine 2019-09-20 22:39:14 +02:00
264b0dc92b Stop requiring «trailer» keywords to live on a separate line as counter-examples have been found 2019-05-31 15:08:54 +02:00
9dac275f68 Keep comment-opening '%' along with the comment and support empty lines 2019-05-31 15:07:41 +02:00
85e4eb9273 Fix bypassed error message for lines + add one for occurrences 2019-05-31 15:06:20 +02:00
11cb6504d7 Go strict ByteStrings with attoparsec 2019-05-24 10:48:09 +02:00
0daa03d958 Remove commented out dead code 2019-05-21 09:07:37 +02:00
b60f337cc4 First useable version 2019-05-18 11:09:03 +02:00
5614a25048 Generate valid PDF 2019-05-18 09:01:13 +02:00
0336baa687 Fix output implementation with dynamic XRefs 2019-05-17 16:14:06 +02:00
e23618da68 Implement output 2019-05-16 22:41:14 +02:00
088637b2c0 Compat stuff for Monoid / Semigroup 2019-05-16 21:40:19 +02:00
645466024a Starting to implement output with String builder 2019-05-16 17:04:45 +02:00
9b2f890227 Boyer-Moore is canceled, implement the rest of parsing with naive search 2019-05-16 11:01:50 +02:00
fc41f815a3 Broken state : trying to implement Boyer-Moore for fast-forwarding to the end of a section 2019-05-15 19:13:35 +02:00
379a821550 Fix bugs preventing the objects from loading 2019-05-15 15:03:55 +02:00
44508a204c Reuse Parser type in PDF.Body (and generalize the type of the comment parser) 2019-05-15 09:04:17 +02:00
91292d6401 Implement retrieving objects in the body of the document and use it to populate the structure previously parsed 2019-05-14 18:42:11 +02:00
8043f84da8 Cut PDF module in two, implement basic parsing up to reading XRef table 2019-05-13 18:22:05 +02:00
6eacb55fc4 Fix bug preventing startXref to be found for files with a single byte EOL encoding 2019-05-13 11:34:15 +02:00
c036334b6f Prototype successfully parsing (only last) startxref 2019-05-13 08:05:28 +02:00