| # Copyright 2020 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| __all__ = ['IDENTIFIERS'] |
| |
| from generate.types import Identifier, Deny |
| |
| # These are keywords and identifiers used in languages we support and in |
| # generated bindings. This list is maintained by hand and should be expanded |
| # to cover as many cases as we can think of. |
| # |
| # Each identifier has lower_camel_case name, a tag (used to maintain source |
| # stability when adding identifiers) and optionally a deny list. |
| # |
| # The deny list members specify a list of styles, uses and bindings to deny. |
| # The bindings list is used to decide whether to include certain identifiers |
| # in the generated fidl files. If a bindings list is included then a |
| # [BindingsDenyList] attribute will be used, if not then the identifier will |
| # be entirely ommitted from the affected contexts. |
| |
| IDENTIFIERS = [ |
| Identifier('abstract', 1), |
| Identifier('alignas', 2), |
| Identifier('alignof', 3), |
| Identifier('and', 4), |
| Identifier('and_eq', 5), |
| Identifier('as', 6), |
| Identifier('asm', 7), |
| Identifier('assert', 8), |
| Identifier('async', 9), |
| Identifier('atomic_cancel', 10), |
| Identifier('atomic_commit', 11), |
| Identifier('atomic_noexcept', 12), |
| Identifier('auto', 13), |
| Identifier('await', 14), |
| Identifier('become', 15), |
| Identifier('bitand', 16), |
| Identifier('bitor', 17), |
| Identifier('bool', 18), |
| Identifier('box', 19), |
| Identifier('break', 20), |
| Identifier('byte', 21), |
| Identifier('bytes', 215), |
| Identifier('case', 22), |
| Identifier('catch', 23), |
| Identifier('chan', 24), |
| Identifier('char', 25), |
| Identifier('char16_t', 26), |
| Identifier('char32_t', 27), |
| Identifier('class', 28), |
| Identifier('co_await', 29), |
| Identifier('co_return', 30), |
| Identifier('co_yield', 31), |
| Identifier('coding_traits', 32), |
| Identifier('compl', 33), |
| Identifier('concept', 34), |
| Identifier('const', 35), |
| Identifier('const_cast', 36), |
| Identifier('constexpr', 37), |
| Identifier('continue', 38), |
| Identifier('controller', 39), |
| Identifier('covariant', 40), |
| Identifier('crate', 41), |
| Identifier('decltype', 42), |
| Identifier('decoder', 43), |
| Identifier('default', 44), |
| Identifier('defer', 45), |
| Identifier('deferred', 46), |
| Identifier('delete', 47), |
| Identifier('do', 48), |
| Identifier('double', 49), |
| Identifier('dynamic', 50), |
| Identifier('dynamic_cast', 51), |
| Identifier('else', 52), |
| Identifier('encoder', 53), |
| Identifier('ensure_values_instantiated', 54), |
| Identifier('enum', 55), |
| Identifier('empty', 56), |
| Identifier('err', 57), |
| Identifier('explicit', 58), |
| Identifier('export', 59), |
| Identifier('extends', 60), |
| Identifier('extern', 61), |
| Identifier('external', 62), |
| Identifier('factory', 63), |
| Identifier('fallthrough', 64), |
| Identifier('false', 65), |
| Identifier('fidl', 66), |
| Identifier('fidl_type', 67), |
| Identifier('final', 68), |
| Identifier('finally', 69), |
| Identifier('float', 70), |
| Identifier('fn', 71), |
| Identifier('for', 72), |
| Identifier('friend', 73), |
| Identifier('func', 74), |
| Identifier('future', 75), |
| Identifier('futures', 76), |
| Identifier('get', 77), |
| Identifier('go', 78), |
| Identifier('goto', 79), |
| Identifier('has_invalid_tag', 80), |
| Identifier('hash_code', 81), |
| Identifier('if', 82), |
| Identifier('impl', 83), |
| Identifier('implements', 84), |
| Identifier('import', 85), |
| Identifier('in', 86), |
| Identifier('index', 87), |
| Identifier('inline', 88), |
| Identifier('int', 89), |
| Identifier('int16', 90), |
| Identifier('int32', 91), |
| Identifier('int64', 92), |
| Identifier('int8', 93), |
| Identifier('interface', 94), |
| Identifier('internal_tag', 95), |
| Identifier('is', 96), |
| Identifier('let', 97), |
| Identifier('lhs', 98), |
| Identifier('library', 99), |
| Identifier('list', 100), |
| Identifier('long', 101), |
| Identifier('loop', 102), |
| Identifier('macro', 103), |
| Identifier('map', 104), |
| Identifier('match', 105), |
| Identifier('mixin', 106), |
| Identifier('mod', 107), |
| Identifier('module', 108), |
| Identifier('move', 109), |
| Identifier('mut', 110), |
| Identifier('mutable', 111), |
| Identifier('namespace', 112), |
| Identifier('never', 113), |
| Identifier('new', 114), |
| Identifier('no_such_method', 115), |
| Identifier('noexcept', 116), |
| Identifier('none', 117), |
| Identifier('not', 118), |
| Identifier('not_eq', 119), |
| Identifier('null', 120), |
| Identifier('nullptr', 121), |
| Identifier('num', 122), |
| Identifier('object', 123), |
| Identifier('offset', 124), |
| Identifier('offsetof', 125), |
| Identifier('ok', 126), |
| Identifier('on_open', 127), |
| Identifier('operator', 128), |
| Identifier('option', 129), |
| Identifier('or', 130), |
| Identifier('or_eq', 131), |
| Identifier('override', 132), |
| Identifier('package', 133), |
| Identifier('part', 134), |
| Identifier('priv', 135), |
| Identifier('private', 136), |
| Identifier('proc', 137), |
| Identifier('protected', 138), |
| Identifier('proxy', 139), |
| Identifier('pub', 140), |
| Identifier('public', 141), |
| Identifier('pure', 142), |
| Identifier('range', 143), |
| Identifier('ref', 144), |
| Identifier('register', 145), |
| Identifier('reinterpret_cast', 146), |
| Identifier('requires', 147), |
| Identifier('result', 148), |
| Identifier('rethrow', 149), |
| Identifier('return', 150), |
| Identifier('rhs', 151), |
| Identifier('rune', 152), |
| Identifier('runtime_type', 153), |
| Identifier('select', 154), |
| Identifier('self', 155), |
| Identifier('send', 156), |
| Identifier('set', 157), |
| Identifier('set_controller', 158), |
| Identifier('short', 159), |
| Identifier('signed', 160), |
| Identifier('sizeof', 161), |
| Identifier('some', 162), |
| Identifier('static', 163), |
| Identifier('static_assert', 164), |
| Identifier('static_cast', 165), |
| Identifier('stream', 166), |
| Identifier('string', 167), |
| Identifier('struct', 168), |
| Identifier('stub', 169), |
| Identifier('super', 170), |
| Identifier('switch', 171), |
| Identifier('synchronized', 172), |
| Identifier('template', 173), |
| Identifier('this', 174), |
| Identifier('thread_local', 175), |
| Identifier('throw', 176), |
| Identifier('to_string', 177), |
| Identifier('trait', 178), |
| Identifier('true', 179), |
| Identifier('try', 180), |
| Identifier('type', 181), |
| Identifier('typedef', 182), |
| Identifier('typeid', 183), |
| Identifier('typename', 184), |
| Identifier('typeof', 185), |
| Identifier('uint16', 186), |
| # We use uint32 as a type in some tests which makes it conflict. |
| # See also: fxbug.dev/38124 fxbug.dev/8042) |
| Identifier( |
| 'uint32', 187, [ |
| Deny( |
| styles=['lower'], |
| uses=['constants', 'struct.types', 'table.names']) |
| ]), |
| Identifier('uint64', 188), |
| Identifier('uint8', 189), |
| Identifier('union', 190), |
| Identifier('unknown', 216), |
| Identifier('unknown_bytes', 217), |
| # TODO(fxb/60495): Remedy identifier clashes. |
| Identifier('unknown_data', 218, [Deny(bindings=['dart'])]), |
| Identifier('unsafe', 191), |
| Identifier('unsigned', 192), |
| Identifier('unsized', 193), |
| Identifier('use', 194), |
| Identifier('using', 195), |
| Identifier('value', 196), |
| Identifier('value_of', 197), |
| Identifier('value_union', 198), |
| Identifier('values_map', 199), |
| Identifier('var', 200), |
| Identifier('vec', 201), |
| Identifier('virtual', 202), |
| Identifier('void', 203), |
| Identifier('volatile', 204), |
| Identifier('wchar_t', 205), |
| Identifier('where', 206), |
| Identifier('which', 207), |
| Identifier('while', 208), |
| Identifier('with', 209), |
| Identifier('xor', 210), |
| Identifier('xor_eq', 211), |
| Identifier('xunion', 212), |
| Identifier('yield', 213), |
| Identifier('zx', 214), |
| ] |