blob: d6e12a804388ade3a7e187ebdb29a7bff0457b7c [file] [log] [blame]
const one = 1i;
const two = 2i;
// All assignment RHS expression should be parsed as two minus (nested) negation unary expression.
// E.g., two----one should be parsed as (two- -(-(-(one))))
const two_minus_minus_one = two--one;
const two_minus_minus_minus_one = two---one;
const two_minus_minus_minus_minus_one = two----one;
const two_minus_minus_minus_minus_minus_one = two-----one;
const two_minus_minus_minus_minus_minus_minus_one = two------one;
const two_minus_minus_minus_minus_minus_minus_minus_one = two-------one;
const two_minus_minus_minus_minus_minus_minus_minus_minus_one = two--------one;
const two_minus_minus_minus_minus_minus_minus_minus_minus_minus_one = two---------one;
const two_minus_minus_minus_minus_minus_minus_minus_minus_minus_minus_one = two----------one;
const_assert(two_minus_minus_one == 3i);
const_assert(two_minus_minus_minus_one == 1i);
const_assert(two_minus_minus_minus_minus_one == 3i);
const_assert(two_minus_minus_minus_minus_minus_one == 1i);
const_assert(two_minus_minus_minus_minus_minus_minus_one == 3i);
const_assert(two_minus_minus_minus_minus_minus_minus_minus_one == 1i);
const_assert(two_minus_minus_minus_minus_minus_minus_minus_minus_one == 3i);
const_assert(two_minus_minus_minus_minus_minus_minus_minus_minus_minus_one == 1i);
const_assert(two_minus_minus_minus_minus_minus_minus_minus_minus_minus_minus_one == 3i);
// Add some random spaces into the expressions, should not change the result.
const two_4_minus_one_with_spaces_0 = two-- - -one;
const two_4_minus_one_with_spaces_1 = two - - --one;
const two_10_minus_one_with_spaces_0 = two -- -- -- -- -- one;
const two_10_minus_one_with_spaces_1 = two-- - - - - - - --one;
const two_10_minus_one_with_spaces_2 = two-- - -- -- - -- one;
const two_10_minus_one_with_spaces_3 = two - -- -- --- - - one;
const two_10_minus_one_with_spaces_4 = two - -- --- ---- one;
const_assert(two_4_minus_one_with_spaces_0 == 3i);
const_assert(two_4_minus_one_with_spaces_1 == 3i);
const_assert(two_10_minus_one_with_spaces_0 == 3i);
const_assert(two_10_minus_one_with_spaces_1 == 3i);
const_assert(two_10_minus_one_with_spaces_2 == 3i);
const_assert(two_10_minus_one_with_spaces_3 == 3i);
const_assert(two_10_minus_one_with_spaces_4 == 3i);
@fragment
fn main() {
// a should be 3 - ([negation*14] 1) = 2
var a = two_minus_minus_minus_minus_minus_minus_minus_minus_minus_minus_one---------------one;
}