Skip to content

Commit 790c1c0

Browse files
authored
[Lexer] Add missing keywords to lexer (#14)
Fixes #6
1 parent ae7ab8e commit 790c1c0

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

lldb/include/lldb/ValueObject/DILLexer.h

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ enum class TokenKind {
3535
colon,
3636
coloncolon,
3737
comma,
38+
eof,
3839
equal,
3940
equalequal,
40-
eof,
4141
exclaim,
4242
exclaimequal,
4343
flt,
@@ -50,20 +50,28 @@ enum class TokenKind {
5050
invalid,
5151
kw_bool,
5252
kw_char,
53+
kw_char16_t,
54+
kw_char32_t,
55+
kw_const,
5356
kw_double,
5457
kw_dynamic_cast,
5558
kw_false,
5659
kw_float,
5760
kw_int,
5861
kw_long,
62+
kw_namespace,
5963
kw_nullptr,
6064
kw_reinterpret_cast,
6165
kw_short,
6266
kw_signed,
67+
kw_sizeof,
6368
kw_static_cast,
6469
kw_this,
6570
kw_true,
6671
kw_unsigned,
72+
kw_void,
73+
kw_volatile,
74+
kw_wchar_t,
6775
l_paren,
6876
l_square,
6977
less,
@@ -99,15 +107,6 @@ enum class TokenKind {
99107
wide_char_constant,
100108
wide_string_literal,
101109
word,
102-
// type keywords -- Lexer does not recognize these yet.
103-
kw_char16_t,
104-
kw_char32_t,
105-
kw_const,
106-
kw_namespace,
107-
kw_sizeof,
108-
kw_void,
109-
kw_volatile,
110-
kw_wchar_t,
111110
};
112111

113112
enum class TypeSpecifier {

lldb/source/ValueObject/DILLexer.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,28 @@ namespace dil {
2121
const llvm::StringMap<dil::TokenKind> Keywords = {
2222
{"bool", dil::TokenKind::kw_bool},
2323
{"char", dil::TokenKind::kw_char},
24+
{"char16_t", dil::TokenKind::kw_char16_t},
25+
{"char32_t", dil::TokenKind::kw_char32_t},
26+
{"const", dil::TokenKind::kw_const},
2427
{"double", dil::TokenKind::kw_double},
2528
{"dynamic_cast", dil::TokenKind::kw_dynamic_cast},
2629
{"false", dil::TokenKind::kw_false},
2730
{"float", dil::TokenKind::kw_float},
2831
{"int", dil::TokenKind::kw_int},
2932
{"long", dil::TokenKind::kw_long},
33+
{"namespace", dil::TokenKind::kw_namespace},
3034
{"nullptr", dil::TokenKind::kw_nullptr},
3135
{"reinterpret_cast", dil::TokenKind::kw_reinterpret_cast},
3236
{"short", dil::TokenKind::kw_short},
3337
{"signed", dil::TokenKind::kw_signed},
38+
{"sizeof", dil::TokenKind::kw_sizeof},
3439
{"static_cast", dil::TokenKind::kw_static_cast},
3540
{"this", dil::TokenKind::kw_this},
3641
{"true", dil::TokenKind::kw_true},
3742
{"unsigned", dil::TokenKind::kw_unsigned},
38-
};
43+
{"void", dil::TokenKind::kw_void},
44+
{"volatile", dil::TokenKind::kw_volatile},
45+
{"wchar_t", dil::TokenKind::kw_wchar_t}};
3946

4047
const std::string DILToken::getTokenName(dil::TokenKind kind) {
4148
std::string retval;

0 commit comments

Comments
 (0)