OpenClonk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
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

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

Definition at line 432 of file C4AulCompiler.cpp.

References C4AulCompiler::CodegenAstVisitor::EmitFunctionCode().

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

433 {
434  {
435  // Don't visit the whole definition here; that would create a new function
436  // and we don't want that.
437  PreparseAstVisitor v(func);
438  def->body->accept(&v);
439  }
440  {
441  CodegenAstVisitor v(func);
442  v.EmitFunctionCode(def);
443  }
444 }

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 424 of file C4AulCompiler.cpp.

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

425 {
426  ConstantResolver::resolve(host, script);
427 
428  CodegenAstVisitor v(host, source_host);
429  v.visit(script);
430 }
static void resolve(C4ScriptHost *host, const ::aul::ast::Script *script)

Here is the call graph for this function:

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

Definition at line 416 of file C4AulCompiler.cpp.

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

Referenced by C4ScriptHost::Preparse().

417 {
418  PreparseAstVisitor v(host, source_host);
419  v.visit(script);
420 
421  ConstantResolver::resolve_quiet(host, script);
422 }
static void resolve_quiet(C4ScriptHost *host, const ::aul::ast::Script *script)

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: