BadScript 2
Loading...
Searching...
No Matches
BadTernaryExpressionCompiler.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
BadTernaryExpressionCompiler
:
BadExpressionCompiler
<BadTernaryExpression>
9
{
11
public
override
void
Compile
(
BadExpressionCompileContext
context,
BadTernaryExpression
expression)
12
{
13
context.
Compile
(expression.
Left
);
14
int
jIfFalse = context.
EmitEmpty
();
15
context.
Compile
(expression.
TrueRet
);
16
int
jEnd = context.
EmitEmpty
();
17
context.
ResolveEmpty
(jIfFalse,
BadOpCode
.JumpRelativeIfFalse, expression.
Position
, context.
InstructionCount
- jIfFalse - 1);
18
context.
Compile
(expression.
FalseRet
);
19
context.
ResolveEmpty
(jEnd,
BadOpCode
.JumpRelative, expression.
Position
, context.
InstructionCount
- jEnd - 1);
20
}
21
}
BadScript2.Parser.Expressions.Access.BadTernaryExpression
Implements the Ternary Expression LEFT ? TRUE_RET : FALSE_RET.
Definition
BadTernaryExpression.cs:15
BadScript2.Parser.Expressions.Access.BadTernaryExpression.Left
BadExpression Left
Left side that will be evaluated.
Definition
BadTernaryExpression.cs:42
BadScript2.Parser.Expressions.Access.BadTernaryExpression.FalseRet
BadExpression FalseRet
Expression that is executed if left evaluates to false.
Definition
BadTernaryExpression.cs:37
BadScript2.Parser.Expressions.Access.BadTernaryExpression.TrueRet
BadExpression TrueRet
Expression that is executed if left evaluates to true.
Definition
BadTernaryExpression.cs:47
BadScript2.Parser.Expressions.BadExpression.Position
BadSourcePosition Position
The source Position of the Expression.
Definition
BadExpression.cs:165
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access.BadTernaryExpressionCompiler
Compiles the BadTernaryExpression.
Definition
BadTernaryExpressionCompiler.cs:9
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Access.BadTernaryExpressionCompiler.Compile
override void Compile(BadExpressionCompileContext context, BadTernaryExpression expression)
Definition
BadTernaryExpressionCompiler.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.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
BadTernaryExpressionCompiler.cs
Generated by
1.9.8