-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds chapters on text encoding #381
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good; a few simple suggestions.
# Values | ||
|
||
## Annotations | ||
In the text format, type annotations are denoted by a [symbol token](symbol-tokens.md) and double-colons preceding any value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably note that e-expressions and expression groups are not values, and cannot be annotated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can mention it, but it's not specific to the text encoding. I tried to keep this mostly focused to the encoding itself.
Whitespace is insignificant and is only required where necessary to separate tokens, and C-style comments | ||
(either block or in-line) are treated as whitespace (and are not part of the binary encoding). | ||
|
||
A text Ion 1.1 stream begins with the Ion 1.1 [version marker](../todo.md) (`$ion_1_1`) followed by a series of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the binary section I think I linked to the glossary for "Ion version marker". Do you think it needs its own page or section somewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need a section that defines the semantics of an Ion stream. By that I mean a chapter that covers things like IVMs, system values vs user values, and $ion_literal
.
[ 1 , two ] // List of an int and a symbol | ||
[a , [b]] // Nested list | ||
[ 1.2, ] // Trailing comma is legal in Ion (unlike JSON) | ||
[ 1, , 2 ] // ERROR: missing element between commas |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe throw in an example that has a nested e-expression?
Issue #, if available:
N/A
Description of changes:
Adds chapters about the text encoding to the Ion 1.1 specification. They are mostly lifted (with some editing and rearranging) from parts of the Ion 1.0 spec, but has an added section on E-expressions.
See it here: https://popematt.github.io/ion-docs/books/ion-1-1/text/encoding.html
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.