C++11: Add the alignof and alignas tokens.

Change-Id: I7f60057953787b3300aafa4d3f230f10b1e9a50f
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Christian Kamm
2012-09-17 13:34:36 +02:00
committed by hjk
parent 410b5cfa2a
commit 484d4dc26e
3 changed files with 24 additions and 2 deletions

View File

@@ -573,6 +573,26 @@ static inline int classify7(const char *s, bool q, bool x) {
}
}
}
else if (x && s[0] == 'a') {
if (s[1] == 'l') {
if (s[2] == 'i') {
if (s[3] == 'g') {
if (s[4] == 'n') {
if (s[5] == 'a') {
if (s[6] == 's') {
return T_ALIGNAS;
}
}
else if (s[5] == 'o') {
if (s[6] == 'f') {
return T_ALIGNOF;
}
}
}
}
}
}
}
else if (s[0] == 'd') {
if (s[1] == 'e') {
if (s[2] == 'f') {

View File

@@ -46,7 +46,7 @@ static const char *token_names[] = {
("|="), ("||"), ("+"), ("+="), ("++"), ("#"), ("##"), ("?"), ("}"),
("]"), (")"), (";"), ("*"), ("*="), ("~"), ("~="),
("asm"), ("auto"), ("bool"), ("break"), ("case"), ("catch"),
("alignas"), ("alignof"), ("asm"), ("auto"), ("bool"), ("break"), ("case"), ("catch"),
("char"), ("char16_t"), ("char32_t"),
("class"), ("const"), ("const_cast"), ("constexpr"), ("continue"),
("decltype"), ("default"),

View File

@@ -115,7 +115,9 @@ enum Kind {
T_LAST_OPERATOR = T_TILDE_EQUAL,
T_FIRST_KEYWORD,
T_ASM = T_FIRST_KEYWORD,
T_ALIGNAS = T_FIRST_KEYWORD,
T_ALIGNOF,
T_ASM,
T_AUTO,
T_BOOL,
T_BREAK,