OpenClonk
C4AulCompiler Class Reference

#include <C4AulCompiler.h>

Classes

class  CodegenAstVisitor
 
class  ConstantResolver
 
class  ConstexprEvaluator
 
class  PreparseAstVisitor
 

Static Public Member Functions

static void Compile (C4AulScriptFunc *out, const ::aul::ast::Function *f)
 
static void Preparse (C4ScriptHost *out, C4ScriptHost *source, const ::aul::ast::Script *s)
 
static void Compile (C4ScriptHost *out, C4ScriptHost *source, const ::aul::ast::Script *s)
 

Detailed Description

Definition at line 22 of file C4AulCompiler.h.

Member Function Documentation

◆ Compile() [1/2]

void C4AulCompiler::Compile ( C4AulScriptFunc out,
const ::aul::ast::Function f 
)
static

Definition at line 507 of file C4AulCompiler.cpp.

508 {
509  {
510  // Don't visit the whole definition here; that would create a new function
511  // and we don't want that.
512  PreparseAstVisitor v(func);
513  def->body->accept(&v);
514  }
515  {
516  CodegenAstVisitor v(func);
517  v.EmitFunctionCode(def);
518  }
519 }

References C4AulCompiler::CodegenAstVisitor::EmitFunctionCode().

Referenced by C4ScriptHost::Parse(), C4AulScriptFunc::ParseDirectExecFunc(), and C4AulScriptFunc::ParseDirectExecStatement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Compile() [2/2]

void C4AulCompiler::Compile ( C4ScriptHost out,
C4ScriptHost source,
const ::aul::ast::Script s 
)
static

Definition at line 499 of file C4AulCompiler.cpp.

500 {
501  ConstantResolver::resolve(host, script);
502 
503  CodegenAstVisitor v(host, source_host);
504  v.visit(script);
505 }
static void resolve(C4ScriptHost *host, const ::aul::ast::Script *script)

References C4AulCompiler::ConstantResolver::resolve(), and C4AulCompiler::CodegenAstVisitor::visit().

Here is the call graph for this function:

◆ Preparse()

void C4AulCompiler::Preparse ( C4ScriptHost out,
C4ScriptHost source,
const ::aul::ast::Script s 
)
static

Definition at line 491 of file C4AulCompiler.cpp.

492 {
493  PreparseAstVisitor v(host, source_host);
494  v.visit(script);
495 
496  ConstantResolver::resolve_quiet(host, script);
497 }
static void resolve_quiet(C4ScriptHost *host, const ::aul::ast::Script *script)

References C4AulCompiler::ConstantResolver::resolve_quiet(), and C4AulCompiler::PreparseAstVisitor::visit().

Referenced by C4ScriptHost::Preparse().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: