tree-sitter-c-sharp/corpus/query-syntax.txt
2024-03-25 23:16:07 +01:00

439 lines
15 KiB
Plaintext

================================================================================
Query from select
================================================================================
var x = from a in source select a.B;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(member_access_expression
expression: (identifier)
name: (identifier))))))))))
================================================================================
Query from select with operator
================================================================================
var x = from a in source select a * 2;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(binary_expression
left: (identifier)
right: (integer_literal))))))))))
================================================================================
Query from select with method call
================================================================================
var x = from a in source select a.B();
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(invocation_expression
function: (member_access_expression
expression: (identifier)
name: (identifier))
arguments: (argument_list))))))))))
================================================================================
Query from select with conditional operator
================================================================================
var x = from a in source select a ? 0 : 1;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(conditional_expression
condition: (identifier)
consequence: (integer_literal)
alternative: (integer_literal))))))))))
================================================================================
Query from select with assignment
================================================================================
var x = from a in source select somevar = a;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(assignment_expression
left: (identifier)
(assignment_operator)
right: (identifier))))))))))
================================================================================
Query from select projection
================================================================================
var x = from a in source select new { Name = a.B };
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(select_clause
(anonymous_object_creation_expression
(name_equals
(identifier))
(member_access_expression
expression: (identifier)
name: (identifier)))))))))))
================================================================================
Query from select with where
================================================================================
var x = from a in source
where a.B == "A"
select a;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(where_clause
(binary_expression
left: (member_access_expression
expression: (identifier)
name: (identifier))
right: (string_literal
(string_literal_fragment))))
(select_clause
(identifier)))))))))
================================================================================
Query from select with where and projection
================================================================================
var x = from a in source
where a.B == "A" && a.C == "D"
select new { Name = a.B };
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(where_clause
(binary_expression
left: (binary_expression
left: (member_access_expression
expression: (identifier)
name: (identifier))
right: (string_literal
(string_literal_fragment)))
right: (binary_expression
left: (member_access_expression
expression: (identifier)
name: (identifier))
right: (string_literal
(string_literal_fragment)))))
(select_clause
(anonymous_object_creation_expression
(name_equals
(identifier))
(member_access_expression
expression: (identifier)
name: (identifier)))))))))))
================================================================================
Query from select with orderby
================================================================================
var x = from a in source
orderby a.A descending
orderby a.C ascending
orderby 1
select a;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(order_by_clause
(member_access_expression
expression: (identifier)
name: (identifier)))
(order_by_clause
(member_access_expression
expression: (identifier)
name: (identifier)))
(order_by_clause
(integer_literal))
(select_clause
(identifier)))))))))
================================================================================
Query from select with let
================================================================================
var x = from a in source
let z = new { a.A, a.B }
select z;
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(let_clause
(identifier)
(anonymous_object_creation_expression
(member_access_expression
expression: (identifier)
name: (identifier))
(member_access_expression
expression: (identifier)
name: (identifier))))
(select_clause
(identifier)))))))))
================================================================================
Query from select with join
================================================================================
var x = from a in sourceA
join b in sourceB on a.FK equals b.PK
select new { A.A, B.B };
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(join_clause
name: (identifier)
(identifier)
(member_access_expression
expression: (identifier)
name: (identifier))
(member_access_expression
expression: (identifier)
name: (identifier)))
(select_clause
(anonymous_object_creation_expression
(member_access_expression
expression: (identifier)
name: (identifier))
(member_access_expression
expression: (identifier)
name: (identifier)))))))))))
================================================================================
Query from select with multiple from
================================================================================
var x = from a in sourceA
from b in sourceB
where a.FK == b.FK
select new { A.A, B.B };
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(from_clause
name: (identifier)
(identifier))
(where_clause
(binary_expression
left: (member_access_expression
expression: (identifier)
name: (identifier))
right: (member_access_expression
expression: (identifier)
name: (identifier))))
(select_clause
(anonymous_object_creation_expression
(member_access_expression
expression: (identifier)
name: (identifier))
(member_access_expression
expression: (identifier)
name: (identifier)))))))))))
================================================================================
Query from select with group by & continuation
================================================================================
var x = from a in sourceA
group a by a.Country into g
select new { Country = g.Key, Population = g.Sum(p => p.Population) };
--------------------------------------------------------------------------------
(compilation_unit
(global_statement
(local_declaration_statement
(variable_declaration
type: (implicit_type)
(variable_declarator
name: (identifier)
(equals_value_clause
(query_expression
(from_clause
name: (identifier)
(identifier))
(group_clause
(identifier)
(member_access_expression
expression: (identifier)
name: (identifier)))
(query_continuation
name: (identifier)
(select_clause
(anonymous_object_creation_expression
(name_equals
(identifier))
(member_access_expression
expression: (identifier)
name: (identifier))
(name_equals
(identifier))
(invocation_expression
function: (member_access_expression
expression: (identifier)
name: (identifier))
arguments: (argument_list
(argument
(lambda_expression
parameters: (implicit_parameter_list
(parameter
name: (identifier)))
body: (member_access_expression
expression: (identifier)
name: (identifier))))))))))))))))