This class compiles littlefoot source code into a littlefoot::Program object which can be executed by a littlefoot::Runner. More...

Public Member Functions

 Compiler ()=default
 
void addNativeFunctions (const char *const *functionPrototypes)
 Gives the compiler a zero-terminated list of native function prototypes to use when parsing function calls. More...
 
template<typename RunnerType >
void addNativeFunctions (const RunnerType &runner)
 Tells the compiler to use the list of native function prototypes from this littlefoot::Runner object. More...
 
Result compile (const String &sourceCode, uint32 defaultHeapSize)
 Compiles a littlefoot program. More...
 
Program getCompiledProgram () const noexcept
 After a successful compilation, this returns the finished Program. More...
 

Public Attributes

Array< uint8compiledObjectCode
 After a successful call to compile(), this contains the bytecode generated. More...
 

Detailed Description

This class compiles littlefoot source code into a littlefoot::Program object which can be executed by a littlefoot::Runner.

Constructor & Destructor Documentation

◆ Compiler()

littlefoot::Compiler::Compiler ( )
default

Member Function Documentation

◆ addNativeFunctions() [1/2]

void littlefoot::Compiler::addNativeFunctions ( const char *const *  functionPrototypes)

Gives the compiler a zero-terminated list of native function prototypes to use when parsing function calls.

◆ addNativeFunctions() [2/2]

template<typename RunnerType >
void littlefoot::Compiler::addNativeFunctions ( const RunnerType &  runner)

Tells the compiler to use the list of native function prototypes from this littlefoot::Runner object.

◆ compile()

Result littlefoot::Compiler::compile ( const String sourceCode,
uint32  defaultHeapSize 
)

Compiles a littlefoot program.

If there's an error, this returns it, otherwise the compiled bytecode is placed in the compiledObjectCode member.

References Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::clear(), compiledObjectCode, Result::fail(), and Result::ok().

◆ getCompiledProgram()

Program littlefoot::Compiler::getCompiledProgram ( ) const
noexcept

Member Data Documentation

◆ compiledObjectCode

Array<uint8> littlefoot::Compiler::compiledObjectCode

After a successful call to compile(), this contains the bytecode generated.

A littlefoot::Program object can be created directly from this array.

Referenced by compile(), and getCompiledProgram().


The documentation for this struct was generated from the following file: