BadScript 2
Loading...
Searching...
No Matches
BadNullCoalescingExpressionCompiler.cs
Go to the documentation of this file.
1
using
BadScript2.Parser.Expressions.Access
;
2
3
namespace
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access
;
4
8
public
class
BadNullCoalescingExpressionCompiler
:
BadExpressionCompiler
<BadNullCoalescingExpression>
9
{
11
public
override
void
Compile
(
BadExpressionCompileContext
context,
BadNullCoalescingExpression
expression)
12
{
13
context.
Compile
(expression.
Left
);
14
context.
Emit
(
BadOpCode
.Dup, expression.
Position
);
15
int
jend = context.
EmitEmpty
();
16
context.
Emit
(
BadOpCode
.Pop, expression.
Position
);
17
context.
Compile
(expression.
Right
);
18
context.
ResolveEmpty
(jend,
BadOpCode
.JumpRelativeIfNotNull, expression.
Position
, context.
InstructionCount
- jend - 1);
19
}
20
}
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression
Implements the Null Coalescing Expression LEFT ?? RIGHT.
Definition
BadNullCoalescingExpression.cs:13
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.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access.BadNullCoalescingExpressionCompiler
Compiles the BadNullCoalescingExpression.
Definition
BadNullCoalescingExpressionCompiler.cs:9
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access.BadNullCoalescingExpressionCompiler.Compile
override void Compile(BadExpressionCompileContext context, BadNullCoalescingExpression expression)
Definition
BadNullCoalescingExpressionCompiler.cs:11
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompiler
Compiles a BadScript Expression of type T.
Definition
BadExpressionCompiler.cs:11
BadScript2.Parser.Expressions.Access
Contains the Access Expressions for the BadScript2 Language.
Definition
BadArrayAccessExpression.cs:11
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access
Contains Access Expression Compilers.
Definition
BadArrayAccessExpressionCompiler.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
Access
BadNullCoalescingExpressionCompiler.cs
Generated by
1.9.8