Module parser

Module parser 

Source
Expand description

This module contains the parser for the Cedar language.

Modules§

cst
Concrete Syntax Tree def used as parser first pass
err
error handling utilities
text_to_cst
Step one: Convert text to CST This module contains step one of the parser for the Cedar language. It converts text to a CST
unescape
Utility functions to unescape string literals
util
Utility functions Utility functions used by multiple parts of the parser.

Structs§

Loc
Represents a source location: index/range, and a reference to the source code which that index/range indexes into
Node
Metadata for our syntax trees

Functions§

join_with_conjunction
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_internal_string
parse a string into an internal Cedar string
parse_policy
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 that id. If the id is None, the parser will use “policy0”.
parse_policy_or_template
Main function for parsing a policy or template. In either case, the returned value will be a ast::Template. If id is Some, then the resulting template will have that id. If the id is None, the parser will use “policy0”.
parse_policy_or_template_to_est
Parse a policy or template (either one works) to its EST representation
parse_policy_or_template_to_est_and_ast
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.
parse_policy_to_est_and_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.
parse_policyset
simple main function for parsing policies generates numbered ids
parse_policyset_and_also_return_policy_text
Like parse_policyset(), but also returns the (lossless) original text of each individual policy. INVARIANT: The PolicyId of every Policy and Template returned by the policies() and templates() methods on the returned Policy must appear as a key in the returned map.
parse_policyset_to_ests_and_pset
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.
parse_template
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 that id. If the id is None, the parser will use “policy0”.