1 //TODO: find a complete list 2 pub const RESERVED: &[&str] = &[ 3 // control flow 4 "break", 5 "if", 6 "else", 7 "continue", 8 "goto", 9 "do", 10 "while", 11 "for", 12 "switch", 13 "case", 14 // types and values 15 "void", 16 "unsigned", 17 "signed", 18 "bool", 19 "char", 20 "int", 21 "long", 22 "float", 23 "double", 24 "char8_t", 25 "wchar_t", 26 "true", 27 "false", 28 "nullptr", 29 "union", 30 "class", 31 "struct", 32 "enum", 33 // other 34 "main", 35 "using", 36 "decltype", 37 "sizeof", 38 "typeof", 39 "typedef", 40 "explicit", 41 "export", 42 "friend", 43 "namespace", 44 "operator", 45 "public", 46 "template", 47 "typename", 48 "typeid", 49 "co_await", 50 "co_return", 51 "co_yield", 52 "module", 53 "import", 54 "ray_data", 55 "vec_step", 56 "visible", 57 "as_type", 58 // qualifiers 59 "mutable", 60 "static", 61 "volatile", 62 "restrict", 63 "const", 64 "non-temporal", 65 "dereferenceable", 66 "invariant", 67 // exceptions 68 "throw", 69 "try", 70 "catch", 71 // operators 72 "const_cast", 73 "dynamic_cast", 74 "reinterpret_cast", 75 "static_cast", 76 "new", 77 "delete", 78 "and", 79 "and_eq", 80 "bitand", 81 "bitor", 82 "compl", 83 "not", 84 "not_eq", 85 "or", 86 "or_eq", 87 "xor", 88 "xor_eq", 89 "compl", 90 // Metal-specific 91 "constant", 92 "device", 93 "threadgroup", 94 "threadgroup_imageblock", 95 "kernel", 96 "compute", 97 "vertex", 98 "fragment", 99 "read_only", 100 "write_only", 101 "read_write", 102 "auto", 103 // Metal reserved types 104 "llong", 105 "ullong", 106 "quad", 107 "complex", 108 "imaginary", 109 // Metal constants 110 "CHAR_BIT", 111 "SCHAR_MAX", 112 "SCHAR_MIN", 113 "UCHAR_MAX", 114 "CHAR_MAX", 115 "CHAR_MIN", 116 "USHRT_MAX", 117 "SHRT_MAX", 118 "SHRT_MIN", 119 "UINT_MAX", 120 "INT_MAX", 121 "INT_MIN", 122 "ULONG_MAX", 123 "LONG_MAX", 124 "LONG_MIN", 125 "ULLONG_MAX", 126 "LLONG_MAX", 127 "LLONG_MIN", 128 "FLT_DIG", 129 "FLT_MANT_DIG", 130 "FLT_MAX_10_EXP", 131 "FLT_MAX_EXP", 132 "FLT_MIN_10_EXP", 133 "FLT_MIN_EXP", 134 "FLT_RADIX", 135 "FLT_MAX", 136 "FLT_MIN", 137 "FLT_EPSILON", 138 "FLT_DECIMAL_DIG", 139 "FP_ILOGB0", 140 "FP_ILOGB0", 141 "FP_ILOGBNAN", 142 "FP_ILOGBNAN", 143 "MAXFLOAT", 144 "HUGE_VALF", 145 "INFINITY", 146 "NAN", 147 "M_E_F", 148 "M_LOG2E_F", 149 "M_LOG10E_F", 150 "M_LN2_F", 151 "M_LN10_F", 152 "M_PI_F", 153 "M_PI_2_F", 154 "M_PI_4_F", 155 "M_1_PI_F", 156 "M_2_PI_F", 157 "M_2_SQRTPI_F", 158 "M_SQRT2_F", 159 "M_SQRT1_2_F", 160 "HALF_DIG", 161 "HALF_MANT_DIG", 162 "HALF_MAX_10_EXP", 163 "HALF_MAX_EXP", 164 "HALF_MIN_10_EXP", 165 "HALF_MIN_EXP", 166 "HALF_RADIX", 167 "HALF_MAX", 168 "HALF_MIN", 169 "HALF_EPSILON", 170 "HALF_DECIMAL_DIG", 171 "MAXHALF", 172 "HUGE_VALH", 173 "M_E_H", 174 "M_LOG2E_H", 175 "M_LOG10E_H", 176 "M_LN2_H", 177 "M_LN10_H", 178 "M_PI_H", 179 "M_PI_2_H", 180 "M_PI_4_H", 181 "M_1_PI_H", 182 "M_2_PI_H", 183 "M_2_SQRTPI_H", 184 "M_SQRT2_H", 185 "M_SQRT1_2_H", 186 "DBL_DIG", 187 "DBL_MANT_DIG", 188 "DBL_MAX_10_EXP", 189 "DBL_MAX_EXP", 190 "DBL_MIN_10_EXP", 191 "DBL_MIN_EXP", 192 "DBL_RADIX", 193 "DBL_MAX", 194 "DBL_MIN", 195 "DBL_EPSILON", 196 "DBL_DECIMAL_DIG", 197 "MAXDOUBLE", 198 "HUGE_VAL", 199 "M_E", 200 "M_LOG2E", 201 "M_LOG10E", 202 "M_LN2", 203 "M_LN10", 204 "M_PI", 205 "M_PI_2", 206 "M_PI_4", 207 "M_1_PI", 208 "M_2_PI", 209 "M_2_SQRTPI", 210 "M_SQRT2", 211 "M_SQRT1_2", 212 ]; 213