diff options
| author | Danny Navarro <j@dannynavarro.net> | 2015-09-22 10:39:14 +0200 |
|---|---|---|
| committer | Danny Navarro <j@dannynavarro.net> | 2015-09-22 10:39:14 +0200 |
| commit | da973870428bf0c0f6be00370469cf8ffb957a30 (patch) | |
| tree | edbeacd478d95ecf93f775cc6696cd5638fff4a8 /Data | |
| parent | e74ee640a8e3db451c387bec276f3e0067524412 (diff) | |
| download | graphql-da973870428bf0c0f6be00370469cf8ffb957a30.tar.gz | |
Parser fixes:
- Braces instead of parens for `inputValueDefinitions`.
- Rename `bool` -> `booleanValue`.
- Some code rearrangements.
Diffstat (limited to 'Data')
| -rw-r--r-- | Data/GraphQL/Parser.hs | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/Data/GraphQL/Parser.hs b/Data/GraphQL/Parser.hs index db22be9..3ff780c 100644 --- a/Data/GraphQL/Parser.hs +++ b/Data/GraphQL/Parser.hs @@ -158,7 +158,7 @@ value = ValueVariable <$> variable -- TODO: Handle maxBound, Int32 in spec. <|> ValueInt <$> tok (signed decimal) <|> ValueFloat <$> tok (signed double) - <|> ValueBoolean <$> bool + <|> ValueBoolean <$> booleanValue <|> ValueString <$> stringValue -- `true` and `false` have been tried before <|> ValueEnum <$> name @@ -166,6 +166,9 @@ value = ValueVariable <$> variable <|> ValueObject <$> objectValue <?> "value error!" +booleanValue :: Parser Bool +booleanValue = True <$ tok "true" + <|> False <$ tok "false" stringValue :: Parser StringValue stringValue = StringValue <$> quotes (T.foldl' step mempty <$> takeText) @@ -188,10 +191,6 @@ objectValue = ObjectValue <$> braces (many objectField) objectField :: Parser ObjectField objectField = ObjectField <$> name <* tok ":" <*> value -bool :: Parser Bool -bool = True <$ tok "true" - <|> False <$ tok "false" - -- * Directives directives :: Parser [Directive] @@ -256,17 +255,7 @@ fieldDefinition = FieldDefinition <*> type_ argumentsDefinition :: Parser ArgumentsDefinition -argumentsDefinition = inputValueDefinitions - -inputValueDefinitions :: Parser [InputValueDefinition] -inputValueDefinitions = parens $ many1 inputValueDefinition - -inputValueDefinition :: Parser InputValueDefinition -inputValueDefinition = InputValueDefinition - <$> name - <* tok ":" - <*> type_ - <*> optional defaultValue +argumentsDefinition = parens $ many1 inputValueDefinition interfaceTypeDefinition :: Parser InterfaceTypeDefinition interfaceTypeDefinition = InterfaceTypeDefinition @@ -307,6 +296,16 @@ inputObjectTypeDefinition = InputObjectTypeDefinition <*> name <*> inputValueDefinitions +inputValueDefinitions :: Parser [InputValueDefinition] +inputValueDefinitions = braces $ many1 inputValueDefinition + +inputValueDefinition :: Parser InputValueDefinition +inputValueDefinition = InputValueDefinition + <$> name + <* tok ":" + <*> type_ + <*> optional defaultValue + typeExtensionDefinition :: Parser TypeExtensionDefinition typeExtensionDefinition = TypeExtensionDefinition <$ tok "extend" |
