diff --git a/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb new file mode 100644 index 0000000..7eefa79 --- /dev/null +++ b/LINQ/LINQ/Interpreter/Expressions/Keywords/OutputProjection.vb @@ -0,0 +1,22 @@ +Imports LINQ.Runtime +Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel + +Namespace Interpreter.Expressions + + Public Class OutputProjection : Inherits Expression + + Public Property fields As NamedValue(Of Expression)() + + Sub New(fields As IEnumerable(Of NamedValue(Of Expression))) + Me.fields = fields.ToArray + End Sub + + Public Overrides Function Exec(env As Environment) As Object + Throw New NotImplementedException() + End Function + + Public Overrides Function ToString() As String + Return $"new {{{fields.Select(Function(a) $"{a.Name} = {a.Value}").JoinBy(", ")}}}" + End Function + End Class +End Namespace \ No newline at end of file diff --git a/LINQ/LINQ/Interpreter/Expressions/SymbolDeclare.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/SymbolDeclare.vb similarity index 100% rename from LINQ/LINQ/Interpreter/Expressions/SymbolDeclare.vb rename to LINQ/LINQ/Interpreter/Expressions/Keywords/SymbolDeclare.vb diff --git a/LINQ/LINQ/Interpreter/Expressions/WhereFilter.vb b/LINQ/LINQ/Interpreter/Expressions/Keywords/WhereFilter.vb similarity index 100% rename from LINQ/LINQ/Interpreter/Expressions/WhereFilter.vb rename to LINQ/LINQ/Interpreter/Expressions/Keywords/WhereFilter.vb diff --git a/LINQ/LINQ/LINQ.vbproj b/LINQ/LINQ/LINQ.vbproj index 33105a0..cf7a46e 100644 --- a/LINQ/LINQ/LINQ.vbproj +++ b/LINQ/LINQ/LINQ.vbproj @@ -129,8 +129,9 @@ - - + + +