summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/CPlusPlusUtil.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2002-07-16 09:41:39 +0000
committerMichi Henning <michi@zeroc.com>2002-07-16 09:41:39 +0000
commit963bf35c720a698dfea603c1bcfe81115aaa96d1 (patch)
treef578d5647e6972ee8e50dcedd11986f3f515da35 /cpp/src/Slice/CPlusPlusUtil.cpp
parentAdded IceBox.Name configuration variable (diff)
downloadice-963bf35c720a698dfea603c1bcfe81115aaa96d1.tar.bz2
ice-963bf35c720a698dfea603c1bcfe81115aaa96d1.tar.xz
ice-963bf35c720a698dfea603c1bcfe81115aaa96d1.zip
Added sanity checks to make sure that the meaning of an identifier doesn't
change halfway through a scope. This all works now, except for operations because, currently, parameter lists are not in their own scope (but they have to be). Will add that tomorrow. Also want to improve diagnostics to show, if an identifier changes meaning, where it was introduced with different meaning.
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp
index 4154018bc18..f4838f81b35 100644
--- a/cpp/src/Slice/CPlusPlusUtil.cpp
+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
@@ -276,13 +276,14 @@ lookupKwd(const string& name)
//
static const string keywordList[] =
{
- "asm", "auto", "bool", "break", "case", "catch", "char", "class", "const", "const_cast",
- "continue", "default", "delete", "do", "double", "dynamic_cast", "else", "enum", "explicit",
- "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int", "long",
- "mutable", "namespace", "new", "operator", "private", "protected", "public", "register",
- "reinterpret_cast", "return", "short", "signed", "sizeof", "static", "static_cast", "struct",
- "switch", "template", "this", "throw", "true", "try", "typedef", "typeid", "typename", "union",
- "unsigned", "using", "virtual", "void", "volatile", "wchar_t", "while"
+ "and", "and_eq", "asm", "auto", "bit_and", "bit_or", "bool", "break", "case", "catch", "char",
+ "class", "compl", "const", "const_cast", "continue", "default", "delete", "do", "double",
+ "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false", "float", "for",
+ "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "not", "not_eq",
+ "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast",
+ "return", "short", "signed", "sizeof", "static", "static_cast", "struct", "switch", "template",
+ "this", "throw", "true", "try", "typedef", "typeid", "typename", "union", "unsigned", "using",
+ "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq"
};
bool found = binary_search(&keywordList[0],
&keywordList[sizeof(keywordList) / sizeof(*keywordList)],