aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse_constants.h
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-10-15 12:04:23 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-10-15 12:04:23 -0700
commitff7108877be5d6ace18ff91a75bd3c73ac02d09c (patch)
treebb355e4fe2e990ad44727ee138a4d00745f5152f /parse_constants.h
parent1927ebbc5dda3b130241cc3e0bbf6002662cd98f (diff)
Use binary search to determine what tokens are keywords
Diffstat (limited to 'parse_constants.h')
-rw-r--r--parse_constants.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/parse_constants.h b/parse_constants.h
index 54670c79..559aad29 100644
--- a/parse_constants.h
+++ b/parse_constants.h
@@ -77,27 +77,27 @@ enum parse_token_type_t
FIRST_PARSE_TOKEN_TYPE = parse_token_type_string
} __packed;
+/* These must be maintained in sorted order (except for none, which isn't a keyword). This enables us to do binary search. */
enum parse_keyword_t
{
parse_keyword_none,
- parse_keyword_if,
- parse_keyword_else,
- parse_keyword_for,
- parse_keyword_in,
- parse_keyword_while,
+ parse_keyword_and,
parse_keyword_begin,
- parse_keyword_function,
- parse_keyword_switch,
+ parse_keyword_builtin,
parse_keyword_case,
- parse_keyword_end,
- parse_keyword_and,
- parse_keyword_or,
- parse_keyword_not,
parse_keyword_command,
- parse_keyword_builtin,
+ parse_keyword_else,
+ parse_keyword_end,
parse_keyword_exec,
-
- LAST_KEYWORD = parse_keyword_exec
+ parse_keyword_for,
+ parse_keyword_function,
+ parse_keyword_if,
+ parse_keyword_in,
+ parse_keyword_not,
+ parse_keyword_or,
+ parse_keyword_switch,
+ parse_keyword_while,
+ LAST_KEYWORD = parse_keyword_while
} __packed;
/* Statement decorations. This matches the order of productions in decorated_statement */