aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/keywords.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/keywords.h')
1 files changed, 56 insertions, 0 deletions
diff --git a/src/compiler/keywords.h b/src/compiler/keywords.h
new file mode 100644
index 0000000..51e0ae8
--- /dev/null
+++ b/src/compiler/keywords.h
@@ -0,0 +1,56 @@
+/*
+ * FlatBuffers keyword table
+ *
+ * See luthor project test files for more details on keyword table
+ * syntax.
+ *
+ * In brief: Keywords are assigned a hash key that is easy
+ * for the lexer to test.
+ *
+ * The first char is length of keyword, two next chars are the leading
+ * to characters of the keyword, and the last char is the last char of
+ * the keyword. For keywords longer than 9 add length to '0' in the
+ * first character. For keywords shorter than 3 characters, see luthor
+ * project - we don't need it. The keywords should be sorted.
+ */
+
+LEX_KW_TABLE_BEGIN
+ lex_kw(int, '3', 'i', 'n', 't')
+ lex_kw(bool, '4', 'b', 'o', 'l')
+ lex_kw(byte, '4', 'b', 'y', 'e')
+ lex_kw(char, '4', 'c', 'h', 'r')
+ lex_kw(enum, '4', 'e', 'n', 'm')
+ lex_kw(int8, '4', 'i', 'n', '8')
+ lex_kw(long, '4', 'l', 'o', 'g')
+ lex_kw(null, '4', 'n', 'u', 'l')
+ lex_kw(true, '4', 't', 'r', 'e')
+ lex_kw(uint, '4', 'u', 'i', 't')
+ lex_kw(false, '5', 'f', 'a', 'e')
+ lex_kw(float, '5', 'f', 'l', 't')
+ lex_kw(int32, '5', 'i', 'n', '2')
+ lex_kw(int16, '5', 'i', 'n', '6')
+ lex_kw(int64, '5', 'i', 'n', '4')
+ lex_kw(table, '5', 't', 'a', 'e')
+ lex_kw(ubyte, '5', 'u', 'b', 'e')
+ lex_kw(uint8, '5', 'u', 'i', '8')
+ lex_kw(ulong, '5', 'u', 'l', 'g')
+ lex_kw(union, '5', 'u', 'n', 'n')
+ lex_kw(short, '5', 's', 'h', 't')
+ lex_kw(double, '6', 'd', 'o', 'e')
+ lex_kw(string, '6', 's', 't', 'g')
+ lex_kw(struct, '6', 's', 't', 't')
+ lex_kw(uint32, '6', 'u', 'i', '2')
+ lex_kw(uint16, '6', 'u', 'i', '6')
+ lex_kw(uint64, '6', 'u', 'i', '4')
+ lex_kw(ushort, '6', 'u', 's', 't')
+ lex_kw(float32, '7', 'f', 'l', '2')
+ lex_kw(float64, '7', 'f', 'l', '4')
+ lex_kw(include, '7', 'i', 'n', 'e')
+ lex_kw(attribute, '9', 'a', 't', 'e')
+ lex_kw(namespace, '9', 'n', 'a', 'e')
+ lex_kw(root_type, '9', 'r', 'o', 'e')
+ lex_kw(rpc_service, '0' + 11, 'r', 'p', 'e')
+ lex_kw(file_extension, '0' + 14, 'f', 'i', 'n')
+ lex_kw(file_identifier, '0' + 15, 'f', 'i', 'r')
+LEX_KW_TABLE_END
+