Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit is a complete rewrite of the Smithy IDL parser and grammar. It is intended to clear up the intention of how the IDL works in practice by making the grammar embed things like how control statements come before metadata, which come before namespace, etc.. It also clarifies how different node_value locations have different semantics (e.g., keys in objects are not resolved against keywords like true and do not perform relative shape ID resolution nor do they support text blocks). Many other fixes have been made to the grammar too, including specifying where whitespace is allowed and where line breaks are required. This makes the grammar more verbose but also more accurate and in line with what was already implemented. With these changes, control statement keyus, metadata keys, and object keys must now be quoted if they contain ".", "#", or "$". In practice, the model parser already enforced these constraints in some places.
- Loading branch information