1/* Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 Use of this source code is governed by a BSD-style license that can be 3 found in the LICENSE file. */ 4 5/* This file tests parsing of enumerations under different conditions */ 6 7/* OK Enum(Es1) */ 8enum Es1 { 9 /* OK EnumItem(E1) */ 10 E1 = 1, 11 /* OK EnumItem(E2) */ 12 E2 = 2 13}; 14 15/* FAIL Enum missing name. */ 16enum { 17 E3 = 3, 18 E4 = 4 19}; 20 21/* OK Enum(Es3) */ 22enum Es3 { 23 E5 = 1 << 1, 24 E6 = 3 << 2 25}; 26 27/* FAIL Unexpected empty block. */ 28enum Es4 { 29}; 30 31/* OK Enum(Es5) */ 32enum Es5 { 33 /* OK EnumItem(E9) */ 34 E9 = 9, 35 /* OK EnumItem(E10) */ 36 /* FAIL Trailing comma in block. */ 37 E10 = 10, 38}; 39 40/* FAIL Unexpected trailing comment. */ 41enum Es6 { 42 E5 = 11, 43 E6 = 12 44} 45 46/* Bad comment because of Es6 */ 47enum Es7 { 48 E11 = 11 49}; 50 51 52/* OK Enum(Es8) */ 53enum Es8 { 54 /* OK EnumItem(E12) */ 55 E12 = 12, 56 /* OK EnumItem(E13) */ 57 /* FAIL Unexpected value 13.0 after "=". */ 58 E13 = 13.0, 59 /* FAIL Unexpected string "hello" after "=". */ 60 /* OK EnumItem(E14) */ 61 E14 = "hello", 62 /* OK EnumItem(E15) */ 63 E15 = 0x400 64}; 65 66/* OK Enum(Es9) */ 67enum Es9 { 68 /* OK EnumItem(Es9_1) */ 69 Es9_1 = 0, 70 /* OK EnumItem(Es9_2) */ 71 Es9_2 = Es9_1, 72 /* OK EnumItem(Es9_3) */ 73 Es9_3 = Es9_1 << Es9_2, 74 /* OK EnumItem(Es9_3a) */ 75 /* FAIL Unexpected symbol Es9_2 after symbol Es9_1. */ 76 Es9_3a = Es9_1 Es9_2, 77 /* OK EnumItem(Es9_4) */ 78 Es9_4 = Es9_1 >> Es9_2, 79 /* OK EnumItem(Es9_5) */ 80 Es9_5 = Es9_1 | Es9_2, 81 /* OK EnumItem(Es9_6) */ 82 Es9_6 = Es9_1 & Es9_2, 83 /* OK EnumItem(Es9_7) */ 84 Es9_7 = Es9_1 ^ Es9_2, 85 /* OK EnumItem(Es9_8) */ 86 Es9_8 = Es9_1 + Es9_2, 87 /* OK EnumItem(Es9_9) */ 88 Es9_9 = Es9_1 - Es9_2, 89 /* OK EnumItem(Es9_10) */ 90 Es9_10 = Es9_1 * Es9_2, 91 /* OK EnumItem(Es9_11) */ 92 Es9_11 = Es9_1 / Es9_2, 93 /* OK EnumItem(Es9_12) */ 94 Es9_12 = -Es9_1, 95 /* OK EnumItem(Es9_13) */ 96 Es9_13 = ~Es9_1, 97 /* OK EnumItem(Es9_14) */ 98 Es9_14 = (Es9_1), 99 /* OK EnumItem(Es9_14a) */ 100 /* FAIL Unexpected ,. */ 101 Es9_14a = (Es9_1, 102 /* OK EnumItem(Es9_15) */ 103 Es9_15 = (Es9_1 + Es9_2) << Es9_3 + 1, 104 /* OK EnumItem(Es9_16) */ 105 Es9_16 = Es9_1 + -Es9_2 106}; 107 108 109