Current section

Files

Jump to
graphql lib graphql.ex
Raw

lib/graphql.ex

defmodule GraphQL do
def tokenize(input_string) do
{:ok, tokens, _} = :graphql_lexer.string input_string
tokens
end
def parse(input_string) when is_binary(input_string) do
input_string |> to_char_list |> parse
end
def parse(input_string) do
case input_string |> tokenize |> :graphql_parser.parse do
{:ok, parse_result} ->
parse_result
{:error, {line_number, _, errors}} ->
raise GraphQL.SyntaxError, line: line_number, errors: errors
end
end
end
defmodule GraphQL.SyntaxError do
defexception line: nil, errors: "Syntax error"
def message(exception) do
"#{exception.errors} on line #{exception.line}"
end
end