| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
This introduces a distinction between a Full and a Core AST. Fragments and
variables are replaced when transforming from Full to Core.
|
|
|
|
|
|
One AST is meant to be a target parser and tries to adhere as much as possible
to the spec. The other is a simplified version of that AST meant for execution.
Also newtypes have been replaced by type synonyms and NonEmpty lists are being
used where it makes sense.
|
|
|
|
|
|
The essential change hidden behind the code golfing is using the `tok`
combinator. This was making fail the Kitchen Sink test.
|
|
The current parser will fail parsing floats because it parses an int,
and then stumbles on the dot.
To fix I interpret the value with the scientific library which already
is a dependency through attoparsec, so we're not introducing any extra
downloads or compiling.
I think this is still subtly wrong because "10.0" will be parsed as
ValueInt, but because input argument ints are allowed to be coerced
into doubles (according to the spec) this is probably acceptable.
|
|
|
|
This adds general API documentation, a tutorial and error handling.
|
|
|
|
|
|
|
|
This also includes the fixes to make it work. Golden tests have been
removed.
|
|
- Braces instead of parens for `inputValueDefinitions`.
- Rename `bool` -> `booleanValue`.
- Some code rearrangements.
|
|
Thanks to @swolchok for the suggestion.
|
|
|
|
This also includes a new type for Value String.
The tests fail now, although it parses successfully. I'll use a pretty
printer in next commit so that it's easier to spot the differences.
Onces this is working I'll add the rest of the escaped characters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Add missing variable parsing.
- Reuse `name` in value string.
This parses successfully the `kitchen-sink.graphql` sample from
`graphql-js`.
|
|
They are less efficient but they are giving me issues because they don't
fail. Once this is working I'll look into optimizing.
Also disable skipping comments until I figure out how to skip both
comments and space at the same time.
|
|
- Add token combinator to simplify whitespace handling.
- Simplify whiteSpace parsers.
- Add `optempty` to handle pure mempty cases. `empty /= pure mempty`.
- Use `between` combinators for brackets, braces and parens.
This also includes small adjustments to the AST.
|
|
|
|
|
|
WIP: This parser just type checks, it hasn't even been tested manually.
Check new tasks in the TODO file and the TODO comments in the code for
more gotchas.
|