| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| /// Taken from `https://en.cppreference.com/w/cpp/keyword` |
| /// Some experimental keywords were filtered out and the resulting list was |
| /// sorted using a rust program. |
| const RESERVED_KEYWORDS: &[&str] = &[ |
| "alignas", |
| "alignof", |
| "auto", |
| "bool", |
| "break", |
| "case", |
| "catch", |
| "char", |
| "char16_t", |
| "char32_t", |
| "char8_t", |
| "class", |
| "const", |
| "const_cast", |
| "consteval", |
| "constexpr", |
| "continue", |
| "decltype", |
| "default", |
| "delete", |
| "do", |
| "double", |
| "dynamic_cast", |
| "else", |
| "enum", |
| "explicit", |
| "export", |
| "extern", |
| "false", |
| "float", |
| "for", |
| "friend", |
| "goto", |
| "if", |
| "inline", |
| "int", |
| "long", |
| "mutable", |
| "namespace", |
| "new", |
| "noexcept", |
| "nullptr", |
| "operator", |
| "private", |
| "protected", |
| "public", |
| "register", |
| "reinterpret_cast", |
| "return", |
| "short", |
| "signed", |
| "sizeof", |
| "static", |
| "static_assert", |
| "static_cast", |
| "struct", |
| "switch", |
| "template", |
| "this", |
| "thread_local", |
| "throw", |
| "true", |
| "try", |
| "typedef", |
| "typename", |
| "union", |
| "unsigned", |
| "using", |
| "virtual", |
| "void", |
| "volatile", |
| "wchar_t", |
| "while", |
| ]; |
| |
| pub fn escape(rust_identifier: &mut String) { |
| if RESERVED_KEYWORDS |
| .binary_search(&rust_identifier.as_ref()) |
| .is_ok() |
| { |
| rust_identifier.push('_'); |
| } |
| } |