2010
DOI: 10.1145/1932681.1863585
|View full text |Cite
|
Sign up to set email alerts
|

Total parser combinators

Abstract: A monadic parser combinator library which guarantees termination of parsing, while still allowing many forms of left recursion, is described. The library's interface is similar to those of many other parser combinator libraries, with two important differences: one is that the interface clearly specifies which parts of the constructed parsers may be infinite, and which parts have to be finite, using dependent types and a combination of induction and coinduction; and the other is that the parser type is unusuall… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
26
0

Year Published

2011
2011
2021
2021

Publication Types

Select...
5
1
1

Relationship

2
5

Authors

Journals

citations
Cited by 28 publications
(26 citation statements)
references
References 32 publications
0
26
0
Order By: Relevance
“…There is an alternative, intrinsic approach to the problem of termination, which is, for instance, used by Danielsson [DN08,Dan10], as mentioned in the previous section. They develop a library of parser combinators and use the type system of the host language -in this case, Agda -to restrict the parser combinators to well-formed ones.…”
Section: Discussion and Future Workmentioning
confidence: 99%
See 1 more Smart Citation
“…There is an alternative, intrinsic approach to the problem of termination, which is, for instance, used by Danielsson [DN08,Dan10], as mentioned in the previous section. They develop a library of parser combinators and use the type system of the host language -in this case, Agda -to restrict the parser combinators to well-formed ones.…”
Section: Discussion and Future Workmentioning
confidence: 99%
“…Danielsson [Dan10] develops a library of parser combinators (see Hutton [Hut92]) with termination guarantees in the dependently typed functional programming language Agda [Agd] (see also joined work with Norell [DN08]). The main difference in comparison with our work is that Danielsson provides a library of combinators, whereas we aim at a parser generator for PEG grammars (though at the moment we only have an interpreter).…”
Section: Related Workmentioning
confidence: 99%
“…Section 6 shows that it works for arbitrary unary containers, defined in the style of Abbott et al [1]; this includes containers with infinite values, such as infinite streams. -The definition works well in mechanised proofs, and has been used in practice: I used it to state and formally prove many properties of a parser combinator library [6].…”
Section: Herementioning
confidence: 99%
“…In a previous paper I used the definitions of bag and set equivalence given above in order to state and formally prove properties of a parser combinator library [6]. That paper did not discuss bijectional reasoning, did not discuss alternative definitions of bag equivalence such as ≈ bag , and did not define bag and set equivalence for arbitrary containers, so the overlap with the present paper is very small.…”
Section: Related Workmentioning
confidence: 99%
“…I am currently turning to it whenever I have a problem with guardedness; see and Danielsson (2010b) for some examples not included in this paper.…”
Section: Discussionmentioning
confidence: 99%