19 Commits

Author SHA1 Message Date
Vladimir Razuvaev
25cfebbd37 Lexer: unify unexpected character errors 2018-11-21 18:09:57 +07:00
Simon Podlipsky
a95d2ad140
Fix CS in src/Language 2018-10-05 10:47:57 +02:00
Simon Podlipsky
ad8693cb8a
Fix CS in src/Language 2018-08-20 20:26:21 +02:00
Vladimir Razuvaev
a19fc3d208 RFC: SDL - Separate multiple inherited interfaces with & 2018-08-08 01:11:47 +07:00
Simon Podlipsky
1b42de0658
@return self 2018-07-10 01:34:35 +03:00
Vladimir Razuvaev
1b22f95a86 Removed previously deprecated classes/methods 2018-05-27 19:13:32 +07:00
Daniel Tschinder
022c490011 RFC: Descriptions as strings
As discussed in facebook/graphql#90

This proposes replacing leading comment blocks as descriptions in the schema definition language with leading strings (typically block strings).

While I think there is some reduced ergonomics of using a string literal instead of a comment to write descriptions (unless perhaps you are accustomed to Python or Clojure), there are some compelling advantages:

* Descriptions are first-class in the AST of the schema definition language.
* Comments can remain "ignored" characters.
* No ambiguity between commented out regions and descriptions.

Specific to this reference implementation, since this is a breaking change and comment descriptions in the experimental SDL have fairly wide usage, I've left the comment description implementation intact and allow it to be enabled via an option. This should help with allowing upgrading with minimal impact on existing codebases and aid in automated transforms.

BREAKING CHANGE: This does not parse descriptions from comments by default anymore and the value of description in Nodes changed from string to StringValueNode
2018-02-10 18:44:51 +01:00
Daniel Tschinder
8747ff8954 RFC: Block String
This RFC adds a new form of `StringValue`, the multi-line string, similar to that found in Python and Scala.

A multi-line string starts and ends with a triple-quote:

```
"""This is a triple-quoted string
and it can contain multiple lines"""
```

Multi-line strings are useful for typing literal bodies of text where new lines should be interpretted literally. In fact, the only escape sequence used is `\"""` and `\` is otherwise allowed unescaped. This is beneficial when writing documentation within strings which may reference the back-slash often:

```
"""
In a multi-line string \n and C:\\ are unescaped.
"""
```

The primary value of multi-line strings are to write long-form input directly in query text, in tools like GraphiQL, and as a prerequisite to another pending RFC to allow docstring style documentation in the Schema Definition Language.

Ref: graphql/graphql-js#926
2018-02-10 18:43:26 +01:00
Vladimir Razuvaev
296544089c Moved GraphQL\Utils to GraphQL\Utils\Utils 2017-07-10 19:53:46 +07:00
Vladimir Razuvaev
a0657b7847 Refactored Lexer algorithm for better performance. Now O(N) vs O(N^2) previously (#137) 2017-06-24 22:42:55 +07:00
jane-olszewska
bbb5cf1e4d Fixed comment token extraction: will no longer read one character from the next line 2017-02-06 18:13:43 +00:00
vladar
5a17ae8246 Clearer lexer errors 2016-11-19 17:08:20 +07:00
Andreas Heiberg
b2c8d8eeb1 [style changes] Lexer 2016-11-16 18:14:46 +07:00
vladar
2675b65095 Moved all error-related classes to separate namespace; fixed related broken tests 2016-10-21 16:40:56 +07:00
vladar
3eeb4d450b Reworked lexer: tokens are now represented as double linked list 2016-10-17 02:53:50 +07:00
vladar
c053169671 Updated Lexer and LexerTest to april 2016 spec 2016-09-14 18:41:02 +07:00
Matthew Leverton
7c6f216578 Change Lexer::readString to decode escaped characters to their literal values 2016-07-14 13:32:57 -05:00
vladar
022c962942 New language features (NamedType, directives rethinking) 2015-08-17 02:53:11 +06:00
vladar
20c482ce2f Version 0.1 2015-07-15 23:05:46 +06:00