-module(glemplate@ast). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/glemplate/ast.gleam"). -export_type([node_/0, template/0, dynamic_node/0, var/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC( " The abstract syntax tree that templates are stored as in memory. This AST\n" " can be rendered with the renderer module.\n" ). -type node_() :: {text, binary()} | {dynamic, dynamic_node()} | {nodes, list(node_())}. -type template() :: {template, binary(), list(node_())}. -type dynamic_node() :: {output, var()} | {raw_output, var()} | {'if', var(), list(node_()), list(node_())} | {iter, var(), binary(), list(node_())} | {render, binary(), list({var(), binary()})}. -type var() :: {assign, binary()} | {field_access, var(), binary()}.