BadScript 2
Loading...
Searching...
No Matches
BadLockExpressionCompiler.cs
Go to the documentation of this file.
1
using
BadScript2.Parser.Expressions.Block.Lock
;
2
3
namespace
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Block
;
4
8
public
class
BadLockExpressionCompiler
:
BadExpressionCompiler
<BadLockExpression>
9
{
11
public
override
void
Compile
(
BadExpressionCompileContext
context,
BadLockExpression
expression)
12
{
13
context.
Compile
(expression.
LockExpression
);
14
context.
Emit
(
BadOpCode
.Dup, expression.
Position
);
15
if
(expression.
Block
.Any())
// Dont aquire lock if there are no expressions in the block
16
{
17
context.
Emit
(
BadOpCode
.AquireLock, expression.
Position
);
18
context.
Compile
(expression.
Block
);
19
context.
Emit
(
BadOpCode
.ReleaseLock, expression.
Position
);
20
}
21
}
22
}
BadScript2.Parser.Expressions.BadExpression.Position
BadSourcePosition Position
The source Position of the Expression.
Definition
BadExpression.cs:165
BadScript2.Parser.Expressions.Block.Lock.BadLockExpression
Implements the Lock Expression.
Definition
BadLockExpression.cs:16
BadScript2.Parser.Expressions.Block.Lock.BadLockExpression.LockExpression
readonly BadExpression LockExpression
The Expression to lock on.
Definition
BadLockExpression.cs:20
BadScript2.Parser.Expressions.Block.Lock.BadLockExpression.Block
IEnumerable< BadExpression > Block
The Block Body.
Definition
BadLockExpression.cs:45
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompiler
Compiles a BadScript Expression of type T.
Definition
BadExpressionCompiler.cs:11
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Block.BadLockExpressionCompiler
Compiles the BadLockExpression.
Definition
BadLockExpressionCompiler.cs:9
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Block.BadLockExpressionCompiler.Compile
override void Compile(BadExpressionCompileContext context, BadLockExpression expression)
Definition
BadLockExpressionCompiler.cs:11
BadScript2.Parser.Expressions.Block.Lock
Contains the Locking Expressions for the BadScript2 Language.
Definition
BadLockExpression.cs:10
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.Block
Contains Block Expression Compilers.
Definition
BadForEachExpressionCompiler.cs:12
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.Emit
void Emit(BadInstruction instruction)
Definition
IBadExpressionCompiler.cs:31
BadScript2.Runtime.VirtualMachine.Compiler.ExpressionCompilers.BadExpressionCompileContext.Compile
void Compile(BadExpression expr)
src
BadScript2
Runtime
VirtualMachine
Compiler
ExpressionCompilers
Block
BadLockExpressionCompiler.cs
Generated by
1.9.8