Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
ConditionParser.hpp File Reference

Signal-based condition expression parser and evaluator. More...

#include <icarus/core/Error.hpp>
#include <icarus/signal/Registry.hpp>
#include <cctype>
#include <memory>
#include <stdexcept>
#include <string>
#include <string_view>
#include <variant>
#include <vector>
Include dependency graph for ConditionParser.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  icarus::Token
class  icarus::ConditionNode< Scalar >
class  icarus::ComparisonNode< Scalar >
 Comparison: signal <op> value or signal <op> signal. More...
class  icarus::AndNode< Scalar >
 Boolean AND. More...
class  icarus::OrNode< Scalar >
 Boolean OR. More...
class  icarus::NotNode< Scalar >
 Boolean NOT. More...
class  icarus::Tokenizer
class  icarus::CompiledCondition< Scalar >
 Compiled condition ready for evaluation. More...
class  icarus::ConditionParser< Scalar >
 Parser for condition expressions. More...

Namespaces

namespace  icarus

Enumerations

enum class  icarus::TokenType {
  icarus::Number , icarus::Identifier , icarus::Less , icarus::LessEqual ,
  icarus::Greater , icarus::GreaterEqual , icarus::Equal , icarus::NotEqual ,
  icarus::And , icarus::Or , icarus::Not , icarus::LeftParen ,
  icarus::RightParen , icarus::Eof
}

Detailed Description

Signal-based condition expression parser and evaluator.

Part of Phase 6.1: Phase Manager. Parses conditions like "Propulsion.fuel_mass < 0.01 AND Vehicle.altitude > 1000" and evaluates them against the SignalRegistry.