Skip to content

Commit

Permalink
Simplify inlined IO ABNF
Browse files Browse the repository at this point in the history
This updates the ABNF to be more simplified and generic. This makes
it more consistent with the rest of the ABNF where things like what
property keys are allowed aren't defined. This makes writing a
generic parser easier, though it does impose more on validation.
  • Loading branch information
JordonPhillips committed Nov 5, 2021
1 parent bd3ebb9 commit 7dd8711
Showing 1 changed file with 8 additions and 14 deletions.
22 changes: 8 additions & 14 deletions designs/inline-io.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,25 +115,19 @@ operation GetUser {

```
operation_statement =
"operation" ws identifier ws "{" *operation_body ws "}"
"operation" ws identifier ws inlineable_properties
operation_body =
operation_input / operation_output / operation_errors
inlineable_properties =
"{" *(inlineable_property ws) ws "}"
operation_input =
"input" ws (io_reference / inline_structure)
operation_output =
"output" ws (io_reference / inline_structure)
io_reference =
":" ws shape_id ws
inlineable_property =
node_object_kvp / inline_structure
inline_structure =
":=" ws trait_statements [identifier] [mixins ws] "{" shape_members "}"
node_object_key ws ":=" ws inline_structure_value
operation_errors =
"errors" ws ":" ws "[" *(ws shape_id) ws "]"
inline_structure_value =
trait_statements [mixins ws] shape_members
```

The following demonstrate customizing the suffixes.
Expand Down

0 comments on commit 7dd8711

Please sign in to comment.