25RCSID(
"$Id: 198684ac1262b05a8e6c2d89ea8ae70d2ffd6874 $")
27#include "unlang_priv.h"
79 .unlang_name =
"unlang_group_t",
unlang_action_t
Returned by unlang_op_t calls, determine the next action of the interpreter.
Common header for all CONF_* types.
unlang_t * unlang_compile_empty(unlang_t *parent, UNUSED unlang_compile_ctx_t *unlang_ctx, CONF_SECTION *cs, unlang_type_t type)
unlang_op_t unlang_ops[UNLANG_TYPE_MAX]
Different operations the interpreter can execute.
static TALLOC_CTX * unlang_ctx
void unlang_register(unlang_op_t *op)
Register an operation with the interpreter.
static unlang_t * unlang_compile_return(unlang_t *parent, unlang_compile_ctx_t *unlang_ctx, UNUSED CONF_ITEM const *ci)
void unlang_return_init(void)
unlang_action_t unlang_return(unlang_result_t *p_result, request_t *request, unlang_stack_frame_t *frame)
Declarations for the "return" keyword, used to implement other keywords.
unlang_result_t section_result
The aggregate result of executing all siblings in this section.
static unlang_action_t unwind_to_op_flag(unsigned int *depth_p, unlang_stack_t *stack, unlang_op_flag_t flag)
Mark the entire stack as cancelled.
bool closed
whether or not this section is closed to new statements
@ UNLANG_TYPE_LOAD_BALANCE
Load balance section.
@ UNLANG_TYPE_RETURN
Return statement.
@ UNLANG_TYPE_REDUNDANT_LOAD_BALANCE
Redundant load balance section.
@ UNLANG_TYPE_PARALLEL
execute statements in parallel
unlang_t const * instruction
The unlang node we're evaluating.
char const * name
Name of the keyword.
@ UNLANG_OP_FLAG_RETURN_POINT
Return point.
@ UNLANG_OP_FLAG_SINGLE_WORD
the operation is parsed and compiled as a single word
unlang_type_t type
The specialisation of this node.
Generic representation of a grouping.
A node in a graph of unlang_op_t (s) that we execute.
Our interpreter stack, as distinct from the C stack.