Commit Graph

142 Commits

Author SHA1 Message Date
Danny Navarro 3f30a44d1d Test fixtures for Schema toplevel
This includes simplications to the Schema data types.
2015-10-17 17:49:56 +02:00
Danny Navarro 8e3bae4b5c Initial stub for a `GraphQL` and `execute` 2015-10-17 13:23:49 +02:00
Danny Navarro c8f629e826 Merge pull request #2 from timmytofu/isstring-variable
`IsString` variable and .gitignore
2015-09-26 09:23:46 +02:00
timmy_tofu 85941139c1 Adds IsString instance to Variable for easier REPL playing 2015-09-25 19:12:22 -04:00
timmy_tofu 0848e65da2 Adds dist/ dir and cabal sandbox dir and file to gitignore 2015-09-25 19:11:42 -04:00
Danny Navarro 6ce2004264 Version Bump
This also includes updates to CHANGELOG, TODO and README.
2015-09-22 14:27:10 +02:00
Danny Navarro af42e5577c Rename `Data.GraphQL.Printer` -> `Data.GraphQL.Encoder` 2015-09-22 14:23:18 +02:00
Danny Navarro a4db99ea5d Fixes for ghc-7.8 2015-09-22 14:02:49 +02:00
Danny Navarro 06b3302862 Add kitchen sink parse/encode unit test
This also includes the fixes to make it work. Golden tests have been
removed.
2015-09-22 14:02:49 +02:00
Danny Navarro 4508364266 Fix alias colon order 2015-09-22 11:16:36 +02:00
Danny Navarro 99b4d86702 Polish printer code
- Add printing combinators to make code more readable.
- Optimize printing for encoding. Pretty printing will be in a different
  module.
2015-09-22 11:13:09 +02:00
Danny Navarro da97387042 Parser fixes:
- Braces instead of parens for `inputValueDefinitions`.
- Rename `bool` -> `booleanValue`.
- Some code rearrangements.
2015-09-22 10:39:14 +02:00
Danny Navarro e74ee640a8 Initial implementation of GraphQL pretty printer
This just typechecks. It needs to be cleaned and tested. Tests have been
deactivated.
2015-09-21 18:26:22 +02:00
Danny Navarro 3d97b3e2ff Introduce `Node` data type to simplify `OperationDefinition`
Thanks to @swolchok for the suggestion.
2015-09-21 10:05:09 +02:00
Danny Navarro 88ca3d1866 Add errors for all parser `Alternative`s 2015-09-21 09:28:51 +02:00
Danny Navarro 899fa1b531 Handle escaped quotes for GraphQL String Values
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.
2015-09-18 18:11:11 +02:00
Danny Navarro cb9977141d Golf 2015-09-18 16:29:40 +02:00
Danny Navarro 4f4e31805a Parse secure names 2015-09-18 15:43:22 +02:00
Danny Navarro d88acf3d0e Refine numeric types 2015-09-18 15:02:51 +02:00
Danny Navarro c9c1137ceb Garden 2015-09-18 14:55:59 +02:00
Danny Navarro dac6721f02 Version bump and CHANGELOG 2015-09-16 11:16:16 +02:00
Danny Navarro b3482172a6 Add travis support 2015-09-16 10:51:53 +02:00
Danny Navarro f88948e801 Support ghc-7.8 2015-09-16 10:36:59 +02:00
Danny Navarro ee0e0c3d1f Use Cabal data-files to access golden tests data
Fixes #1.
2015-09-16 10:13:44 +02:00
Danny Navarro 82a380079c Version bump, CHANGELOG and some gardening 2015-09-14 17:26:09 +02:00
Danny Navarro 7cf2b59331 Version bump, CHANGELOG and some gardening 2015-09-14 17:25:18 +02:00
Danny Navarro dcd7b46a6d Convenient imports for ghci 2015-09-14 17:02:43 +02:00
Danny Navarro 8d81f43b61 Add golden test for kitchen-sink.graphql 2015-09-14 17:01:14 +02:00
Danny Navarro b4b8388392 Enable warnings and take care of extra imports 2015-09-14 15:48:47 +02:00
Danny Navarro ec018db73a Handle comments in whitespace 2015-09-14 15:43:09 +02:00
Danny Navarro 3084b188dd Update TODO 2015-09-14 14:32:46 +02:00
Danny Navarro 26e2372c5e Fix `value` parsing
- Add missing variable parsing.
- Reuse `name` in value string.

This parses successfully the `kitchen-sink.graphql` sample from
`graphql-js`.
2015-09-14 14:14:25 +02:00
Danny Navarro c0b6fc8a05 Replace `take...` functions with `many...`
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.
2015-09-14 13:16:58 +02:00
Danny Navarro 62adfd89cd Several improvements to the parser
- 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.
2015-09-14 12:15:04 +02:00
Danny Navarro b206079047 Add missing `=` required default values and unions 2015-09-13 17:44:31 +02:00
Danny Navarro 048ee552d8 Take care of comments 2015-09-13 15:34:01 +02:00
Danny Navarro 0e67fdc21c Add GraphQL parser
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.
2015-09-13 13:55:15 +02:00
Danny Navarro 44a2ff4765 Minor adjustments in AST for easier parsing
Also `Maybe` wrappers removed. I don't think there needs to be a special
case for empty values vs no values at all.
2015-09-13 13:49:11 +02:00
Danny Navarro 97b99eb448 Add missing OperationDefinition `Name` 2015-09-12 15:44:30 +02:00
Danny Navarro 0f673b9b4d Rename module `Data.GraphQL` -> `Data.GraphQL.AST` 2015-09-12 15:16:28 +02:00
Danny Navarro 50a0c953d3 Garden 2015-09-12 13:09:06 +02:00
Danny Navarro 5af7136893 Initial commit
This includes a rough port of the data types at
https://github.com/graphql/graphql-js/blob/master/src/language/ast.js
2015-09-12 12:54:05 +02:00