slamdata / purescript-sql-squared

purescript Sql^2 ast, pretty printer etc
11 stars 6 forks source link

Enhancements #4

Open cryogenian opened 7 years ago

cryogenian commented 7 years ago

Make AST safe by constructions.

I'm almost sure that some recursion points in SqlF are in wrong places. E.g. it's possible to create CASE and print it but the output isn't correct sql^2 and emits an error during parsing.

The idea is about at least introducing Expression type that handles identifiers, literals and operators. Other thing is GROUP BY, keys should be NonEmpty List a or SELECT should take not Maybe (GroupBy a) but GroupBy a. There are few such things.

Make parser and gen coalgebraic

This one is heavily depending on making AST safe by construction.

Preserve position information during tokenizing

It's vanished right now.

natefaubion commented 6 years ago

The position information and printing issues are taken care of in the latest release. We now have lots of test cases which parse -> print -> parse and compare ASTs as equivalent.