Consume entire input in sexp parser

This commit is contained in:
2024-09-18 11:25:19 -06:00
parent 2d3c8748be
commit c770c1ca8b
2 changed files with 20 additions and 1 deletions

View File

@@ -147,7 +147,12 @@ func parseList(input gigaparsec.State[byte]) (gigaparsec.Result[byte, Sexp], err
}
func Parse(data []byte) (Sexp, error) {
result, err := parseSexp(gigaparsec.MakeState(cursor.NewSlice(data)))
parser := gigaparsec.Seq2(
parseSexp,
gigaparsec.End[byte](),
func(s Sexp, _ struct{}) Sexp { return s },
)
result, err := parser(gigaparsec.MakeState(cursor.NewSlice(data)))
if err != nil {
return nil, fmt.Errorf("csexp.Parse: %w", err)
}