10 private readonly List<BadInstruction>
m_Instructions =
new List<BadInstruction>();
29 public void Compile(IEnumerable<BadExpression> exprs,
bool clearStack =
true) =>
Compiler.
Compile(
this, exprs, clearStack);
56 public void EmitRange(IEnumerable<BadInstruction> instructions)
Describes a specific position inside a source file.
Base Implementation for all Expressions used inside the Script.
Gets thrown when a Compiler is not able to compile a specific BadExpression.
Implements the Compile for the BadVirtualMachine.
void Compile(BadExpressionCompileContext context, BadExpression expression)
Compiles the given BadExpression into a set of BadInstructions.
Defines a Compiler for a specific BadExpression.
void Compile(BadExpressionCompileContext context, BadExpression expression)
Compiles the given BadExpression into a set of BadInstructions.
Contains Shared Data Structures and Functionality.
Contains the Expressions for the BadScript2 Language.
Contains Expression Compilers.
BadOpCode
Defines the Operations that the BadVirtualMachine can execute.
Implements a single instruction for the BadVirtualMachine.
void EmitRange(IEnumerable< BadInstruction > instructions)
readonly List< int > m_EmptyInstructions
void ResolveEmpty(int index, BadOpCode code, BadSourcePosition position, params object[] args)
void Emit(BadInstruction instruction)
void Compile(IEnumerable< BadExpression > exprs, bool clearStack=true)
void Emit(BadOpCode code, BadSourcePosition position, params object[] args)
void Compile(BadExpression expr)
BadExpressionCompileContext(BadCompiler compiler)
BadInstruction[] GetInstructions()
readonly List< BadInstruction > m_Instructions