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 431 of file C4AulCompiler.cpp.

References C4AulCompiler::CodegenAstVisitor::EmitFunctionCode().

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

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

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 423 of file C4AulCompiler.cpp.

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

424 {
425  ConstantResolver::resolve(host, script);
426 
427  CodegenAstVisitor v(host, source_host);
428  v.visit(script);
429 }
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 415 of file C4AulCompiler.cpp.

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

Referenced by C4ScriptHost::Preparse().

416 {
417  PreparseAstVisitor v(host, source_host);
418  v.visit(script);
419 
420  ConstantResolver::resolve_quiet(host, script);
421 }
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: