java.lang.Object
com.darkcollective.relix.ast.AstBuilders
com.darkcollective.relix.lang.ast.ScriptBuilders

public abstract class ScriptBuilders extends AstBuilders
The Script authoring surface — the statement-level half of the AST contract, for tests and embedders that assemble a whole script without the .relix grammar.

SemanticAnalyzer.analyze(Script, rootPath) is the engine's front door, so a caller who can build a Script needs no parser at all. These factories are how that is done readably, and ScriptBuilderCoverageTest fails the build if a new Statement or SourceConfig kind arrives without one.

It extends AstBuilders, so one extends ScriptBuilders — or a static import of this class — reaches the relational factories too:

Script script = script(
        source("Orders", csvSource("orders.csv", column("id", ScalarType.NUMBER))),
        assign("Open", select(cmp(attr("status"), ComparisonOperator.EQUAL, str("OPEN")),
                              rel("Orders"))),
        query("Open"));

The same rule as AstBuilders applies: a factory takes the record's own components in the record's own order, minus SourceLocation, which defaults to SourceLocation.UNKNOWN. Statements that carry an exported flag get a two-form treatment — the short factory is the un-exported common case, and an explicit overload takes the flag.