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(left,
21
right,
22
position
23
) { }
24
25
protected
override
IEnumerable<BadObject>
InnerExecute
(
BadExecutionContext
context)
26
{
27
BadObject
left =
BadObject
.
Null
;
28
29
foreach
(
BadObject
o
in
Left
.
Execute
(context))
30
{
31
left = o;
32
}
33
34
left = left.Dereference(
Position
);
35
36
if
(left ==
BadObject
.
Null
)
37
{
38
foreach
(
BadObject
o
in
Right
.
Execute
(context))
39
{
40
yield
return
o;
41
}
42
}
43
else
44
{
45
yield
return
left;
46
}
47
}
48
49
protected
override
string
GetSymbol
()
50
{
51
return
"??"
;
52
}
53
}
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:25
BadScript2.Parser.Expressions.Access.BadNullCoalescingExpression.GetSymbol
override string GetSymbol()
Definition
BadNullCoalescingExpression.cs:49
BadScript2.Parser.Expressions.BadExpression
Base Implementation for all Expressions used inside the Script.
Definition
BadExpression.cs:23
BadScript2.Parser.Expressions.BadExpression.Position
BadSourcePosition Position
The source Position of the Expression.
Definition
BadExpression.cs:46
BadScript2.Parser.Expressions.BadExpression.Execute
IEnumerable< BadObject > Execute(BadExecutionContext context)
Evaluates the Expression within the current Execution Context.
Definition
BadExpression.cs:259
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