Expand description
The front-end of the RTLola Monitoring Framework
This crate offers functionality to transform a textual representation of an RTLola specification into one of three tree-shaped representation and perform a variety of checks.
§Specification Representations
- RtLolaAst: The Ast represents the abstract syntax of the specification. It is obtained by first parsing the specification into a homogenous tree and then remove concrete syntax fragments irrelevant for the logics of the specification. Apart from that, the Ast does not provide much functionality. The only checks performed when creating the Ast concern the correct syntax. See also: rtlola_parser, RtLolaAst, and parse_to_ast.
- RtLolaHir: The Hir represents a high-level intermediate representation optimized for analyzability. It contains more convenient methods than the Ast, enables different
analysis steps and provides their reports. The Hir traverses several modes representing the level to which it was analyzed and refined.
Its base mode is
RtLolaHir<BaseMode>
and its fully analyzed version isRtLolaHir<CompleteMode>
. See also: rtlola_hir, rtlola_hir::RtLolaHir, parse_to_base_hir, and parse_to_base_hir. - RtLolaMir: The Mir represents a mid-level intermediate representation optimized for external use such as interpretation and compilation. It contains several interconnections enabling easy accesses and additional annotation such as memory bounds for each stream. See also: RtLolaMir, parse.
As a rule of thumb, if you want to analyze and/or enrich a specification, use the RtLolaHir. If you only need a convenient representation of the specification for some devious activity such as compiling it into something else, the RtLolaMir is the way to go.
§Modules
Re-exports§
pub use crate::mir::RtLolaMir;
Modules§
- hash
- Allows attaching a hash to an RtLolaMir. Used when exporting/importing an RtLolaMir with serde::Serialize/Deserialize and check, whether the frontend version or specification did not change or whether the specification has to be parsed again.
- mir
- This module covers the Mid-Level Intermediate Representation (MIR) of an RTLola specification.
- tag_
parser - This module provides a parser to interpret the annotated tags of a specification as a custom type.
Structs§
- Diagnostic
- A Diagnostic is more flexible way to build and output errors and warnings.
- Frontend
Config - Represents the configuration for the whole frontend.
- Handler
- A handler is responsible for emitting warnings and errors
- Parser
Config - The configuration of the parser.
- RawDiagnostic
- Represents a diagnostic message that can provide information like errors and warnings to the user.
- RtLola
Error - An error type to collect diagnostics throughout the frontend.
Enums§
- Memory
Bound Mode - The way the memory bound is computed.
- Span
- Represents a location in the source
Traits§
- Parser
Config Ext - Extension to provide additional methods to the ParserConfig.
Functions§
- parse
- Attempts to parse a textual specification into an RtLolaMir.
- parse_
to_ ast - Attempts to parse a textual specification into an RtLolaAst.
- parse_
to_ base_ hir - Attempts to parse a textual specification into an
RtLolaHir<BaseMode>
. - parse_
to_ final_ hir - Attempts to parse a textual specification into a fully analyzed
RtLolaHir<CompleteMode>
. - parse_
with_ features - Attempts to parse a textual specification into an RtLolaHir. Returns an FeatureSelector allowing to check for language features that are not supported by the backend.