Module ast

Module ast 

Source
Expand description

Abstract Syntax Tree definitions for GENT

Structs§

AgentDecl
An agent declaration: agent Name { fields... }
AgentField
A field in an agent declaration: name: value
AssignmentStmt
Assignment statement: x = expr
Block
A block of statements
Duration
Duration value with unit
EnumDecl
Enum declaration: enum Name { Variant1, Variant2(type) }
EnumField
A field in an enum variant
EnumVariant
A variant in an enum declaration
FnDecl
Function declaration (pure, no agent access): fn name(params) -> return_type { body }
ForStmt
For loop statement
IfStmt
If statement: if cond { ... } else { ... }
ImportStmt
Import statement: import { Name1, Name2 } from "./path.gnt"
Lambda
Lambda expression: (params) => body
LetStmt
Let statement: let x = expr
MatchArm
A single arm in a match expression
MatchExpr
Match expression: match value { Pattern => result }
ParallelDecl
Parallel execution block declaration
Param
Parameter in a tool or function declaration
Program
A complete GENT program
ReturnStmt
Return statement: return expr?
StructDecl
Struct declaration: struct Name { fields... }
StructField
A field in a struct or inline object type
ToolDecl
Tool declaration: tool name(params) -> return_type { body }
TopLevelCall
A top-level function call: funcName(args...)
TryStmt
Try/catch statement
WhileStmt
While loop statement

Enums§

BinaryOp
Binary operators
BlockStmt
A statement within a block
DurationUnit
Duration unit for timeout specifications
Expression
An expression in GENT
FieldType
Field types for structured output schemas
LambdaBody
Lambda body - either a single expression or a block
MatchBody
Body of a match arm
MatchPattern
Pattern in a match arm
OutputType
Output type specification (inline or named)
Statement
A statement in GENT
StringPart
Part of an interpolated string
TypeName
Type names in GENT
UnaryOp
Unary operators