Statifier.Validator.ExpressionCompiler (statifier v1.9.0)
View SourceCompiles expressions in SCXML documents for performance optimization.
This module handles compilation of all expression types during document validation, collecting compilation errors as warnings for developer feedback. Expression compilation happens after structural validation but before runtime optimization.
Compilation Strategy
- Transitions: Compile
condattributes for condition evaluation - SendAction: Compile
event_expr,target_expr,type_expr,delay_expr - AssignAction: Compile
exprattribute for value evaluation - IfAction: Compile condition expressions in conditional blocks
- ForeachAction: Compile
arrayexpression for iteration
Warning Collection
Compilation errors are collected as validation warnings with detailed context:
- Expression content and context (e.g., "transition condition")
- Source location information (line/column when available)
- Compilation error details for debugging
Usage
# Compile expressions in a document during validation
{warnings, compiled_document} = ExpressionCompiler.compile_document(document)
Summary
Functions
Compile all expressions in a document and collect warnings.
Functions
@spec compile_document(Statifier.Document.t()) :: {[String.t()], Statifier.Document.t()}
Compile all expressions in a document and collect warnings.
Returns a tuple with compilation warnings and the document with compiled expressions.