Module balena_temen::ast

source ·
Expand description

An expression Abstract Syntax Tree

The Elegant Parser is used to parse an expression. Full grammar.

Examples

use balena_temen::ast::*;

let parsed: Expression = "1 + 2".parse().unwrap();
let manual = Expression::new(
    ExpressionValue::Math(
        MathExpression::new(
            Expression::new(ExpressionValue::Integer(1)),
            Expression::new(ExpressionValue::Integer(2)),
            MathOperator::Addition
        )
    )
);
assert_eq!(parsed, manual);

Structs

An expression
A function call
An identifier
Logical expression
Math expression
String concatenation

Enums

An expression value
An identifier value (component)
Logical operator
Math operator