BadScript 2
Loading...
Searching...
No Matches
BadLogicOrExpressionCompiler.cs
Go to the documentation of this file.
1
using
BadScript2.Parser.Expressions.Binary.Logic
;
2
3
namespace
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic
;
4
8
public
class
BadLogicOrExpressionCompiler
:
BadBinaryExpressionCompiler
<BadLogicOrExpression>
9
{
11
protected
override
bool
EmitLeft
=>
false
;
12
14
protected
override
bool
EmitRight
=>
false
;
16
public
override
void
CompileBinary
(
BadExpressionCompileContext
context,
BadLogicOrExpression
expression)
17
{
18
context.
Compile
(expression.
Left
);
19
context.
Emit
(
BadOpCode
.Dup, expression.
Position
);
20
int
jumpPos = context.
EmitEmpty
();
21
context.
Emit
(
BadOpCode
.Pop, expression.
Position
);
22
context.
Compile
(expression.
Right
);
23
context.
ResolveEmpty
(jumpPos,
BadOpCode
.JumpRelativeIfTrue, expression.
Position
, context.
InstructionCount
- jumpPos - 1);
24
}
25
26
}
BadScript2.Parser.Expressions.BadExpression.Position
BadSourcePosition Position
The source Position of the Expression.
Definition
BadExpression.cs:165
BadScript2.Parser.Expressions.Binary.BadBinaryExpression.Right
BadExpression Right
Right side of the Expression.
Definition
BadBinaryExpression.cs:34
BadScript2.Parser.Expressions.Binary.BadBinaryExpression.Left
BadExpression Left
Left side of the Expression.
Definition
BadBinaryExpression.cs:29
BadScript2.Parser.Expressions.Binary.Logic.BadLogicOrExpression
Implements the Logic Or Expression.
Definition
BadLogicOrExpression.cs:13
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic.BadLogicOrExpressionCompiler
Compiles the BadLogicOrExpression.
Definition
BadLogicOrExpressionCompiler.cs:9
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic.BadLogicOrExpressionCompiler.EmitRight
override bool EmitRight
Definition
BadLogicOrExpressionCompiler.cs:14
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic.BadLogicOrExpressionCompiler.CompileBinary
override void CompileBinary(BadExpressionCompileContext context, BadLogicOrExpression expression)
Definition
BadLogicOrExpressionCompiler.cs:16
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic.BadLogicOrExpressionCompiler.EmitLeft
override bool EmitLeft
Definition
BadLogicOrExpressionCompiler.cs:11
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.BadBinaryExpressionCompiler
Defines a Compiler for a specific BadBinaryExpression.
Definition
BadBinaryExpressionCompiler.cs:11
BadScript2.Parser.Expressions.Binary.Logic
Contains the Logic Expressions for the BadScript2 Language.
Definition
BadLogicAssignAndExpression.cs:10
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Binary.Logic
Contains Binary Logic Expression Compilers.
Definition
BadLogicAssignAndExpressionCompiler.cs:6
BadScript2.Runtime.VirtualMachine.BadOpCode
BadOpCode
Defines the Operations that the BadVirtualMachine can execute.
Definition
BadOpCode.cs:7
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext
Definition
IBadExpressionCompiler.cs:7
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.ResolveEmpty
void ResolveEmpty(int index, BadOpCode code, BadSourcePosition position, params object[] args)
Definition
IBadExpressionCompiler.cs:43
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.Emit
void Emit(BadInstruction instruction)
Definition
IBadExpressionCompiler.cs:31
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.EmitEmpty
int EmitEmpty()
Definition
IBadExpressionCompiler.cs:35
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.Compile
void Compile(BadExpression expr)
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.InstructionCount
int InstructionCount
Definition
IBadExpressionCompiler.cs:12
src
BadScript2
Runtime
VirtualMachine
Compiler
ExpressionCompilers
Binary
Logic
BadLogicOrExpressionCompiler.cs
Generated by
1.9.8