Expand description
This module contains the parser for the Cedar language.
Modules§
- Concrete Syntax Tree def used as parser first pass
- error handling utilities
- Step one: Convert text to CST This module contains step one of the parser for the Cedar language. It converts text to a CST
- Utility functions to unescape string literals
- Utility functions Utility functions used by multiple parts of the parser.
Structs§
- Represents a source location: index/range, and a reference to the source code which that index/range indexes into
- Metadata for our syntax trees
Functions§
- Format an iterator as a natural-language string, separating items with commas and a conjunction (e.g., “and”, “or”) between the last two items.
- parse a string into an internal Cedar string
- Main function for parsing a (static) policy. Will return an error if provided with a template. If
id
is Some, then the resulting policy will have thatid
. If theid
is None, the parser will use “policy0”. - Main function for parsing a policy or template. In either case, the returned value will be a
ast::Template
. Ifid
is Some, then the resulting template will have thatid
. If theid
is None, the parser will use “policy0”. - Parse a policy or template (either one works) to its EST representation
- Like
parse_policy_or_template()
, but also returns the (lossless) EST – that is, the EST of the original policy/template without any of the lossy transforms involved in converting to AST. - Like
parse_policy()
, but also returns the (lossless) EST – that is, the EST of the original policy without any of the lossy transforms involved in converting to AST. - simple main function for parsing policies generates numbered ids
- Like
parse_policyset()
, but also returns the (lossless) original text of each individual policy. INVARIANT: ThePolicyId
of everyPolicy
andTemplate
returned by thepolicies()
andtemplates()
methods on the returnedPolicy
must appear as a key in the returned map. - Like
parse_policyset()
, but also returns the (lossless) ESTs – that is, the ESTs of the original policies without any of the lossy transforms involved in converting to AST. - Main function for parsing a template. Will return an error if provided with a static policy. If
id
is Some, then the resulting policy will have thatid
. If theid
is None, the parser will use “policy0”.