Skip to content

Commit 02a4c0a

Browse files
committed
fix: changed the name of Assignment binding name to AssignmentBinding, the code is backwards compatible with the old name.
1 parent e4638ae commit 02a4c0a

4 files changed

Lines changed: 31 additions & 2 deletions

File tree

src/GameDevWare.Dynamic.Expressions.Unity.2021/Packages/com.gamedevware.csharpeval/Runtime/Binding/MemberInitBinder.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ private static bool TryGetBinding(Type newExpressionType, object bindingNode, Bi
9191
switch (bindingType)
9292
{
9393
case Constants.EXPRESSION_TYPE_ASSIGNMENT_BINDING:
94+
case Constants.EXPRESSION_TYPE_ASSIGNMENT_BINDING_ALT:
9495
var expressionNode = bindingNodeTree.GetExpression(true);
9596
if (!AnyBinder.TryBindInNewScope(expressionNode, bindingContext, memberValueType, out var expression,
9697
out bindingError))

src/GameDevWare.Dynamic.Expressions.Unity.2021/Packages/com.gamedevware.csharpeval/Runtime/Constants.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ internal static class Constants
4242
public const string EXPRESSION_TYPE_AND = "And";
4343
public const string EXPRESSION_TYPE_AND_ALSO = "AndAlso";
4444
public const string EXPRESSION_TYPE_ARRAY_LENGTH = "ArrayLength";
45-
public const string EXPRESSION_TYPE_ASSIGNMENT_BINDING = "Assignment";
45+
public const string EXPRESSION_TYPE_ASSIGNMENT_BINDING = "AssignmentBinding";
46+
public const string EXPRESSION_TYPE_ASSIGNMENT_BINDING_ALT = "Assignment";
4647
public const string EXPRESSION_TYPE_ATTRIBUTE = "expressionType";
4748
public const string EXPRESSION_TYPE_CALL = "Call";
4849
public const string EXPRESSION_TYPE_CHECKED_SCOPE = "CheckedScope";

src/GameDevWare.Dynamic.Expressions.Unity.2021/Packages/com.gamedevware.csharpeval/Runtime/Packing/MemberInitPacker.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public static Dictionary<string, object> Pack(MemberAssignment memberAssignment)
6969
if (memberAssignment == null) throw new ArgumentNullException(nameof(memberAssignment));
7070

7171
return new Dictionary<string, object> {
72-
{ Constants.EXPRESSION_TYPE_ATTRIBUTE, Constants.EXPRESSION_TYPE_ASSIGNMENT_BINDING },
72+
{ Constants.EXPRESSION_TYPE_ATTRIBUTE, Constants.EXPRESSION_TYPE_ASSIGNMENT_BINDING_ALT },
7373
{ Constants.MEMBER_ATTRIBUTE, AnyPacker.Pack(memberAssignment.Member) },
7474
{ Constants.EXPRESSION_ATTRIBUTE, AnyPacker.Pack(memberAssignment.Expression) }
7575
};

src/GameDevWare.Dynamic.Expressions.Unity.2021/Packages/com.gamedevware.csharpeval/Runtime/SyntaxTreeNode.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,33 @@ internal ArgumentsTree GetArguments(bool throwOnError)
210210

211211
return ArgumentsTree.Empty;
212212
}
213+
internal List<SyntaxTreeNode> GetInitializerOrBindingList(string propertyName, bool throwOnError)
214+
{
215+
var binderOrInitializer = new List<SyntaxTreeNode>();
216+
if (this.TryGetValue(propertyName, out var argumentsObj) && argumentsObj is SyntaxTreeNode syntaxTreeNode)
217+
{
218+
for (var index = 0; index < syntaxTreeNode.Count; index++)
219+
{
220+
if (!syntaxTreeNode.TryGetValue(Constants.GetIndexAsString(index), out var argumentValue) ||
221+
!(argumentValue is SyntaxTreeNode argument))
222+
{
223+
throw new ExpressionParserException(string.Format(Resources.EXCEPTION_BIND_MISSINGORWRONGARGUMENT, index), this);
224+
}
225+
binderOrInitializer.Add(argument);
226+
}
227+
return binderOrInitializer;
228+
}
229+
230+
if (throwOnError)
231+
{
232+
throw new ExpressionParserException(
233+
string.Format(Resources.EXCEPTION_BIND_MISSINGATTRONNODE, Constants.ARGUMENTS_ATTRIBUTE,
234+
this.GetExpressionType(false) ?? "<null>"), this);
235+
}
236+
237+
return binderOrInitializer;
238+
}
239+
213240
internal Dictionary<string, string> GetArgumentNames(bool throwOnError)
214241
{
215242
if (this.TryGetValue(Constants.ARGUMENTS_ATTRIBUTE, out var argumentsObj) && argumentsObj is SyntaxTreeNode syntaxTreeNode)

0 commit comments

Comments
 (0)