summaryrefslogtreecommitdiff
path: root/Data
diff options
context:
space:
mode:
authorDanny Navarro <j@dannynavarro.net>2015-09-22 10:39:14 +0200
committerDanny Navarro <j@dannynavarro.net>2015-09-22 10:39:14 +0200
commitda973870428bf0c0f6be00370469cf8ffb957a30 (patch)
treeedbeacd478d95ecf93f775cc6696cd5638fff4a8 /Data
parente74ee640a8e3db451c387bec276f3e0067524412 (diff)
downloadgraphql-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.hs31
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"