BadScript 2
Loading...
Searching...
No Matches
BadNullCoalescingExpression.cs
Go to the documentation of this file.
1
using
BadScript2.Common
;
2
using
BadScript2.Parser.Expressions.Binary
;
3
using
BadScript2.Runtime
;
4
using
BadScript2.Runtime.Objects
;
5
6
namespace
BadScript2.Parser.Expressions.Access
;
7
12
public
class
BadNullCoalescingExpression
:
BadBinaryExpression
13
{
20
public
BadNullCoalescingExpression
(
BadExpression
left,
BadExpression
right,
BadSourcePosition
position) : base(
21
left,
22
right,
23
position
24
) { }
25
26
protected
override
IEnumerable<BadObject>
InnerExecute
(
BadExecutionContext
context)
27
{
28
BadObject
left =
BadObject
.
Null
;
29
30
foreach
(
BadObject
o
in
Left
.
Execute
(context))
31
{
32
left = o;
33
}
34
35
left = left.Dereference();
36
37
if
(left ==
BadObject
.
Null
)
38
{
39
foreach
(
BadObject
o
in
Right
.
Execute
(context))
40
{
41
yield
return
o;
42
}
43
}
44
else
45
{
46
yield
return
left;
47
}
48
}
49
50
protected
override
string
GetSymbol
()
51
{
52
return
"??"
;
53
}
54
}
BadScript2.Common.BadSourcePosition
Describes a specific position inside a source file.
Definition
BadSourcePosition.cs:9
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression
Implements the Null Coalescing Expression LEFT ?? RIGHT.
Definition
BadNullCoalescingExpression.cs:13
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression.BadNullCoalescingExpression
BadNullCoalescingExpression(BadExpression left, BadExpression right, BadSourcePosition position)
Constructor of the Null Coalescing Expression.
Definition
BadNullCoalescingExpression.cs:20
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression.InnerExecute
override IEnumerable< BadObject > InnerExecute(BadExecutionContext context)
Definition
BadNullCoalescingExpression.cs:26
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression.GetSymbol
override string GetSymbol()
Definition
BadNullCoalescingExpression.cs:50
BadScript2.Parser.Expressions.BadExpression
Base Implementation for all Expressions used inside the Script.
Definition
BadExpression.cs:23
BadScript2.Parser.Expressions.BadExpression.Execute
IEnumerable< BadObject > Execute(BadExecutionContext context)
Evaluates the Expression within the current Execution Context.
Definition
BadExpression.cs:238
BadScript2.Parser.Expressions.Binary.BadBinaryExpression
Base Implementation of all Binary Expressions.
Definition
BadBinaryExpression.cs:10
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.BadExecutionContext
The Execution Context. Every execution of a script needs a context the script is running in....
Definition
BadExecutionContext.cs:16
BadScript2.Runtime.Objects.BadObject
The Base Class for all BadScript Objects.
Definition
BadObject.cs:14
BadScript2.Runtime.Objects.BadObject.Null
static readonly BadObject Null
The Null Value for the BadScript Language.
Definition
BadObject.cs:28
BadScript2.Common
Contains Shared Data Structures and Functionality.
Definition
BadParseException.cs:1
BadScript2.Parser.Expressions.Access
Contains the Access Expressions for the BadScript2 Language.
Definition
BadArrayAccessExpression.cs:11
BadScript2.Parser.Expressions.Binary
Contains the Binary Expressions for the BadScript2 Language.
Definition
BadAssignExpression.cs:10
BadScript2.Runtime.Objects
Contains the Runtime Objects.
Definition
BadArray.cs:10
BadScript2.Runtime
Contains the Runtime Implementation.
Definition
BadExecutionContext.cs:8
src
BadScript2
Parser
Expressions
Access
BadNullCoalescingExpression.cs
Generated by
1.9.8