aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/token.h
diff options
authorAl Viro <viro@ftp.linux.org.uk>2006-10-01 19:55:02 +0100
committerJosh Triplett <josh@freedesktop.org>2006-10-24 05:23:24 -0700
commit758c8a83cebba4e7e762792719d26246a8cf8ac2 (patch)
tree260f05cece59def5d65063abaac3628048b154ea /token.h
parent70ada4fad4c4a9f59862677dc7f905482c4f4e99 (diff)
downloadsparse-dev-758c8a83cebba4e7e762792719d26246a8cf8ac2.tar.gz
switch to hash-based get_one_special()
Weird, but true: the set of C two-character punctuators and two-symbol prefixes of three-character punctuators is distinguishable by 5-bit hash function (27 out of 32). Application is obvious - we get much faster get_one_special() out of that... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Josh Triplett <josh@freedesktop.org>
Diffstat (limited to 'token.h')
-rw-r--r--token.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/token.h b/token.h
index 96b0c416..71ef151d 100644
--- a/token.h
+++ b/token.h
@@ -88,13 +88,13 @@ enum token_type {
"*=", \
"/=", \
"%=", \
- "..", "...", \
- "<=", "<<", "<<=", \
- ">=", ">>", ">>=", \
+ "<=", ">=", \
"==", "!=", \
"&&", "&=", \
"||", "|=", \
"^=", "##", \
+ "<<", ">>", "..", \
+ "<<=", ">>=", "..." \
"", \
"<", ">", "<=", ">=" \
}
@@ -111,14 +111,8 @@ enum special_token {
SPECIAL_MUL_ASSIGN,
SPECIAL_DIV_ASSIGN,
SPECIAL_MOD_ASSIGN,
- SPECIAL_DOTDOT,
- SPECIAL_ELLIPSIS,
SPECIAL_LTE,
- SPECIAL_LEFTSHIFT,
- SPECIAL_SHL_ASSIGN,
SPECIAL_GTE,
- SPECIAL_RIGHTSHIFT,
- SPECIAL_SHR_ASSIGN,
SPECIAL_EQUAL,
SPECIAL_NOTEQUAL,
SPECIAL_LOGICAL_AND,
@@ -127,6 +121,12 @@ enum special_token {
SPECIAL_OR_ASSIGN,
SPECIAL_XOR_ASSIGN,
SPECIAL_HASHHASH,
+ SPECIAL_LEFTSHIFT,
+ SPECIAL_RIGHTSHIFT,
+ SPECIAL_DOTDOT,
+ SPECIAL_SHL_ASSIGN,
+ SPECIAL_SHR_ASSIGN,
+ SPECIAL_ELLIPSIS,
SPECIAL_ARG_SEPARATOR,
SPECIAL_UNSIGNED_LT,
SPECIAL_UNSIGNED_GT,