Query DSL

Namespace: dftracer::utils::utilities::common::query

struct AndNode

left and right.

Public Members

QueryNodePtr left
QueryNodePtr right
struct ArrayNode

An array of literal values (used by in/not-in).

Public Members

std::vector<LiteralNode> elements
struct CompareNode

field op value (e.g., cat == “POSIX”).

Public Members

FieldNode field
CompareOp op
LiteralNode value
struct FieldNode

A field reference (e.g., “cat”, “args.level”).

Public Members

std::string path

Dotted path into JSON.

struct InNode

field in [values] (e.g., cat in [“POSIX”, “STDIO”]).

Public Members

FieldNode field
ArrayNode values
struct LiteralNode

A literal value node.

Public Members

LiteralValue value
struct NotInNode

field not in [values].

Public Members

FieldNode field
ArrayNode values
struct NotNode

not operand.

Public Members

QueryNodePtr operand
struct OrNode

left or right.

Public Members

QueryNodePtr left
QueryNodePtr right
class Query

Owns a parsed query AST and provides evaluation.

Public Functions

Query(const Query &other)
Query &operator=(const Query &other)
Query(Query&&) = default
Query &operator=(Query&&) = default
bool evaluate(const json::JsonValue &event) const

Evaluate against a JSON event. Missing fields → false.

bool evaluate(const ValueMap &fields) const

Evaluate against a typed key-value map. Missing fields → false.

inline const QueryNode &root() const

Access the root AST node.

inline const std::string &source() const

Original query source string.

std::string to_string() const

Serialize AST back to query DSL string.

inline const dftracer::utils::StringViewSet &fields() const

Fields referenced by this query, precomputed at construction.

inline bool references(std::string_view field) const

Public Static Functions

static dftracer::utils::expected<Query, QueryError> from_string(std::string_view input)

Parse a query DSL string. Returns error on invalid syntax.

struct QueryError

Structured parse error with source location.

Public Functions

std::string format() const

Format as multi-line error message with source and indicator.

Public Members

std::string message

Error description.

std::size_t column = 0

Column position (0-indexed).

std::string source

Original query string.

std::string indicator

Caret/tilde indicator line.

struct QueryNode

Sum type for all query AST nodes.

Public Functions

template<typename T>
inline explicit QueryNode(T &&val)

Public Members

QueryNodeVariant data
class QueryParseError : public std::runtime_error

Exception wrapping a QueryError.

Public Functions

explicit QueryParseError(QueryError err)
inline const QueryError &error() const
struct Token

Public Members

TokenKind kind
std::string_view text
std::size_t column