blob: c2f62a6adbdeeb14a81bd1eeae7bf38249aef13b [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion Operator precedence is given implicitly by the grammar.
* @description Checks that operator precedence given implicitly by the grammar
* holds true (logical AND higher than logical OR and logical negation higher
* than both).
* @author vasya
*/
import "../../../Utils/expect.dart";
check(bool A, bool B, bool C, [bool D=true]) {
Expect.equals(A || (B && C), A || B && C);
Expect.equals((A && B) || (C && D), A && B || C && D);
Expect.equals(((A && B) && C) || D, A && B && C || D);
Expect.equals(((!A) && B) || C, !A && B || C);
}
main() {
check(true, true, true);
check(true, true, true, false);
check(true, true, false, false);
check(true, false, false, false);
check(false, false, false, false);
check(false, false, false);
check(false, false, true);
check(false, true, true);
}