cedar_policy_core

Module parser

Source
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 that id. If the id 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. If id is Some, then the resulting template will have that id. If the id 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: 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.
  • 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 that id. If the id is None, the parser will use “policy0”.