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

One flow name { ... } declaration, or the one flow { ... } entry point. More...

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

Inheritance diagram for a11::flow::syntax::FlowDeclaration:
[legend]

Public Attributes

Word name
 
bool entry = false
 Whether this is the file's entry point: flow { ... }, with no name.
 
std::string description
 
std::vector< PortDeclarationPtr > ports
 
std::vector< HeaderDeclarationPtr > headers
 
std::vector< NodePtr > body
 
- Public Attributes inherited from a11::flow::syntax::Node
NodeKind kind = NodeKind::kError
 
Location location
 

Additional Inherited Members

- Public Member Functions inherited from a11::flow::syntax::NodeOf< NodeKind::kFlowDeclaration >
 NodeOf ()
 
- Public Member Functions inherited from a11::flow::syntax::Node
virtual ~Node ()=default
 
- Static Public Attributes inherited from a11::flow::syntax::NodeOf< NodeKind::kFlowDeclaration >
static constexpr NodeKind kNodeKind
 

Detailed Description

One flow name { ... } declaration, or the one flow { ... } entry point.

Member Data Documentation

◆ body

std::vector<NodePtr> a11::flow::syntax::FlowDeclaration::body

◆ description

std::string a11::flow::syntax::FlowDeclaration::description

◆ entry

bool a11::flow::syntax::FlowDeclaration::entry = false

Whether this is the file's entry point: flow { ... }, with no name.

A file may hold one. It is what an interpreter runs when handed the file, and it is not addressable: a flow with no name cannot be the target of a run or a call, which is what stops a program's entry point from being something a library flow reaches into or something that recurses into itself.

Its arguments arrive as ports nobody declared – argc and argv – for the same reason main gets them in C: every program of this shape wants them, and a file that had to declare them would say the same two lines every time.

◆ headers

std::vector<HeaderDeclarationPtr> a11::flow::syntax::FlowDeclaration::headers

◆ name

Word a11::flow::syntax::FlowDeclaration::name

◆ ports

std::vector<PortDeclarationPtr> a11::flow::syntax::FlowDeclaration::ports

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