OpenCores
URL https://opencores.org/ocsvn/s80186/s80186/trunk

Subversion Repositories s80186

[/] [s80186/] [trunk/] [vendor/] [googletest/] [googlemock/] [scripts/] [generator/] [cpp/] [keywords.py] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jamieiles
#!/usr/bin/env python
2
#
3
# Copyright 2007 Neal Norwitz
4
# Portions Copyright 2007 Google Inc.
5
#
6
# Licensed under the Apache License, Version 2.0 (the "License");
7
# you may not use this file except in compliance with the License.
8
# You may obtain a copy of the License at
9
#
10
#      http://www.apache.org/licenses/LICENSE-2.0
11
#
12
# Unless required by applicable law or agreed to in writing, software
13
# distributed under the License is distributed on an "AS IS" BASIS,
14
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
# See the License for the specific language governing permissions and
16
# limitations under the License.
17
 
18
"""C++ keywords and helper utilities for determining keywords."""
19
 
20
__author__ = 'nnorwitz@google.com (Neal Norwitz)'
21
 
22
 
23
try:
24
    # Python 3.x
25
    import builtins
26
except ImportError:
27
    # Python 2.x
28
    import __builtin__ as builtins
29
 
30
 
31
if not hasattr(builtins, 'set'):
32
    # Nominal support for Python 2.3.
33
    from sets import Set as set
34
 
35
 
36
TYPES = set('bool char int long short double float void wchar_t unsigned signed'.split())
37
TYPE_MODIFIERS = set('auto register const inline extern static virtual volatile mutable'.split())
38
ACCESS = set('public protected private friend'.split())
39
 
40
CASTS = set('static_cast const_cast dynamic_cast reinterpret_cast'.split())
41
 
42
OTHERS = set('true false asm class namespace using explicit this operator sizeof'.split())
43
OTHER_TYPES = set('new delete typedef struct union enum typeid typename template'.split())
44
 
45
CONTROL = set('case switch default if else return goto'.split())
46
EXCEPTION = set('try catch throw'.split())
47
LOOP = set('while do for break continue'.split())
48
 
49
ALL = TYPES | TYPE_MODIFIERS | ACCESS | CASTS | OTHERS | OTHER_TYPES | CONTROL | EXCEPTION | LOOP
50
 
51
 
52
def IsKeyword(token):
53
    return token in ALL
54
 
55
def IsBuiltinType(token):
56
    if token in ('virtual', 'inline'):
57
        # These only apply to methods, they can't be types by themselves.
58
        return False
59
    return token in TYPES or token in TYPE_MODIFIERS

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.