A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
Loading...
Searching...
No Matches
a11::flow::EvalContext Struct Reference

What an expression is evaluated against. More...

#include <cpp/a11/flow/values.h>

Public Member Functions

CoerceContext Coercion () const
 

Public Attributes

const absl::flat_hash_map< const syntax::Node *, Value > *absl_nullable bound
 
Value it
 The value a where/map/group stage is looking at.
 
bool has_it = false
 
HostBridge *absl_nullable bridge = nullptr
 
const Program *absl_nullable shapes = nullptr
 The shapes the program declared, for a cast written inside an expression.
 

Detailed Description

What an expression is evaluated against.

bound is the first value of each stream the expression mentions, keyed by the syntax node that mentioned it. Keying on the node rather than rewriting the tree is what lets the AST stay immutable and shared: the Python reference replaced each resolved name with a RefValue node, which a tree handed across a language boundary cannot do.

Member Function Documentation

◆ Coercion()

CoerceContext a11::flow::EvalContext::Coercion ( ) const
inline

Member Data Documentation

◆ bound

const absl::flat_hash_map<const syntax::Node*, Value>* absl_nullable a11::flow::EvalContext::bound
Initial value:
=
nullptr

◆ bridge

HostBridge* absl_nullable a11::flow::EvalContext::bridge = nullptr

◆ has_it

bool a11::flow::EvalContext::has_it = false

◆ it

Value a11::flow::EvalContext::it

The value a where/map/group stage is looking at.

◆ shapes

const Program* absl_nullable a11::flow::EvalContext::shapes = nullptr

The shapes the program declared, for a cast written inside an expression.


The documentation for this struct was generated from the following file: