How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
Fast, Error Correcting Parser Combinatiors: A Short Tutorial
SOFSEM '99 Proceedings of the 26th Conference on Current Trends in Theory and Practice of Informatics on Theory and Practice of Informatics
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Deterministic, Error-Correcting Combinator Parsers
Advanced Functional Programming, Second International School-Tutorial Text
Journal of Functional Programming
Type-safe, self inspecting code
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Metamorphisms: Streaming representation-changers
Science of Computer Programming
Partial Parsing: Combining Choice with Commitment
Implementation and Application of Functional Languages
Lazy functional incremental parsing
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
The next 700 data description languages
Journal of the ACM (JACM)
Semantics and algorithms for data-dependent grammars
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A principled approach to programming with nested types in Haskell
Higher-Order and Symbolic Computation
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Stepwise evaluation of attribute grammars
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Instantly turning a naive exhaustive search into three efficient searches with pruning
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Efficient divide-and-conquer parsing of practical context-free languages
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We present the derivation of a space efficient parser combinator library: the constructed parsers do not keep unnecessary references to the input, produce online results and efficiently handle ambiguous grammars. The underlying techniques can be applied in many contexts where traditionally backtracking is used.We present two data types, one for keeping track of the progress of the search process, and one for representing the final result in a linear way. Once these data types are combined into a single type, we can perform a breadth-first search, while returning parts of the result as early as possible.