1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
tree-sitter-minizinc/corpus/expressions.txt

205 lines
7.1 KiB
Plaintext

===================
Array Comprehension
===================
simple = [ i | i in X ];
where = [ i | i in X where i == 2 ];
multiple = [ i | i in X, j in Y where i == j];
---
(source_file
(assignment (identifier) (array_comprehension (identifier) (generator (identifier) (identifier))))
(assignment (identifier) (array_comprehension (identifier) (generator (identifier) (identifier) (infix_operator (identifier) (integer_literal)))))
(assignment (identifier) (array_comprehension (identifier) (generator (identifier) (identifier)) (generator (identifier) (identifier) (infix_operator (identifier) (identifier))))))
====
Call
====
no_args = my_fn();
single_arg = my_fn(1);
mult_args = my_fn(2, "test");
generator_lookalike = my_fn(x in Xs)
---
(source_file
(assignment (identifier) (call (identifier)))
(assignment (identifier) (call (identifier) (integer_literal)))
(assignment (identifier) (call (identifier) (integer_literal) (string_literal)))
(assignment (identifier) (call (identifier) (infix_operator (identifier) (identifier)))))
==============
Generator Call
==============
simple_sum = sum(i in N)(i);
selective_sum = sum(i in N where i in X)(i);
---
(source_file
(assignment (identifier) (generator_call (identifier) (generator (identifier) (identifier)) (identifier)))
(assignment (identifier) (generator_call (identifier) (generator (identifier) (identifier) (infix_operator (identifier) (identifier))) (identifier))))
============
If-Then-Else
============
if_only = if b then i < j endif;
value_select = if b then i else j endif;
elseif = if b then i elseif c then j else k endif;
elseif_no_else = if b then i < j elseif c then j > i endif;
---
(source_file
(assignment (identifier) (if_then_else (identifier) (infix_operator (identifier) (identifier))))
(assignment (identifier) (if_then_else (identifier) (identifier) (identifier)))
(assignment (identifier) (if_then_else (identifier) (identifier) (identifier) (identifier) (identifier)))
(assignment (identifier) (if_then_else (identifier) (infix_operator (identifier) (identifier)) (identifier) (infix_operator (identifier) (identifier)))))
============
Index Access
============
named_colection = my_collection[1];
named_accessor = my_collection[i];
literal_collection = [1,2,3][i];
multiple_accessor = my_collection[i,2];
expression_accessor = my_collection[-i + 2];
slice = my_collection[1..2];
---
(source_file
(assignment (identifier) (indexed_access (identifier) (integer_literal)))
(assignment (identifier) (indexed_access (identifier) (identifier)))
(assignment (identifier) (indexed_access (array_literal (integer_literal) (integer_literal) (integer_literal)) (identifier)))
(assignment (identifier) (indexed_access (identifier) (identifier) (integer_literal)))
(assignment (identifier) (indexed_access (identifier) (infix_operator (prefix_operator (identifier)) (integer_literal))))
(assignment (identifier) (indexed_access (identifier) (infix_operator (integer_literal) (integer_literal)))))
==============
Infix Operator
==============
exponent = x ^ y;
mult = x * y;
div = x / y;
idiv = x div y;
add = x + y;
minus = x - y;
set_inter = x intersect y;
set_dotdot = x..y;
set_symdiff = x symdiff y;
set_diff = x diff y;
set_union = x union y;
same = x = y;
samedouble = x == y;
different = x != y;
smaller = x < y;
bigger = x > y;
smalleq = x <= y;
bigeq = x >= y;
set_in = x in y;
set_sub = x subset y;
set_super = x superset y;
and = x /\ y;
bool_xor = x xor y;
or = x \/ y;
---
(source_file
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier)))
(assignment (identifier) (infix_operator (identifier) (identifier))))
===========
Precedences
===========
given_precedence = (1 + 1) * 1;
mult_first = 1 + 1 * 1;
exp_first = 1 * 1 ^ 1;
annotation_bind = 1 ^ 1::some_ann;
---
(source_file
(assignment (identifier) (infix_operator (infix_operator (integer_literal) (integer_literal)) (integer_literal)))
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (integer_literal))))
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (integer_literal))))
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (identifier)))))
===============
Prefix Operator
===============
negatitve_number = -5;
negative_ident = -num;
negated_bool = not true;
unicode_negation = ¬ b;
---
(source_file
(assignment (identifier) (prefix_operator (integer_literal)))
(assignment (identifier) (prefix_operator (identifier)))
(assignment (identifier) (prefix_operator (boolean_literal)))
(assignment (identifier) (prefix_operator (identifier))))
=================
Set Comprehension
=================
simple = { i | i in X };
where = { i | i in X where i == 2 };
multiple = { i | i in X, j in Y where i == j};
---
(source_file
(assignment (identifier) (set_comprehension (identifier) (generator (identifier) (identifier))))
(assignment (identifier) (set_comprehension (identifier) (generator (identifier) (identifier) (infix_operator (identifier) (integer_literal)))))
(assignment (identifier) (set_comprehension (identifier) (generator (identifier) (identifier)) (generator (identifier) (identifier) (infix_operator (identifier) (identifier))))))
====================
String Interpolation
====================
simple = "\(x)";
with_text = "the \(i)th variable";
multiple = "\(x) and \(y)";
---
(source_file
(assignment (identifier) (string_interpolation (identifier)))
(assignment (identifier) (string_interpolation (string_content) (identifier) (string_content)))
(assignment (identifier) (string_interpolation (identifier) (string_content) (identifier))))