Initial import

This commit is contained in:
Justine Tunney 2020-06-15 07:18:57 -07:00
commit c91b3c5006
14915 changed files with 590219 additions and 0 deletions

486
tool/emacs/key.py Normal file
View file

@ -0,0 +1,486 @@
import os,sys,re
kar_types = frozenset([
"char",
"signed char",
"unsigned char",
"int",
"signed",
"signed int",
"unsigned",
"unsigned int",
"short",
"short int",
"short signed",
"short signed int",
"short unsigned",
"short unsigned int",
"signed short",
"signed short int",
"unsigned short",
"unsigned short int",
"long",
"long int",
"long signed",
"long signed int",
"long unsigned",
"long unsigned int",
"signed long",
"signed long int",
"unsigned long",
"unsigned long int",
"float",
"double",
])
ansi_types = frozenset([
"void",
"wchar_t",
"wint_t",
"size_t",
"long double",
])
c99_types = frozenset([
"long long",
"long long int",
"long long signed",
"long long signed int",
"long long unsigned",
"long long unsigned int",
"signed long long",
"signed long long int",
"unsigned long long",
"unsigned long long int",
"char16_t",
"char32_t",
"errno_t",
"int8_t",
"int16_t",
"int32_t",
"int64_t",
"int_fast8_t",
"int_fast16_t",
"int_fast32_t",
"int_fast64_t",
"int_least16_t",
"int_least32_t",
"int_least64_t",
"int_least8_t",
"uint_fast16_t",
"uint_fast32_t",
"uint_fast64_t",
"uint_fast8_t",
"uint_least16_t",
"uint_least32_t",
"uint_least64_t",
"uint_least8_t",
"intmax_t",
"intptr_t",
"ptrdiff_t",
"ssize_t",
"uint16_t",
"uint32_t",
"uint64_t",
"uint64_t",
"uint8_t",
"uintmax_t",
"uintptr_t",
])
c11_types = frozenset([
"atomic_bool",
"atomic_char",
"atomic_schar",
"atomic_uchar",
"atomic_short",
"atomic_ushort",
"atomic_int",
"atomic_uint",
"atomic_long",
"atomic_ulong",
"atomic_llong",
"atomic_ullong",
"atomic_char16_t",
"atomic_char32_t",
"atomic_wchar_t",
"atomic_int_least8_t",
"atomic_uint_least8_t",
"atomic_int_least16_t",
"atomic_uint_least16_t",
"atomic_int_least32_t",
"atomic_uint_least32_t",
"atomic_int_least64_t",
"atomic_uint_least64_t",
"atomic_int_fast8_t",
"atomic_uint_fast8_t",
"atomic_int_fast16_t",
"atomic_uint_fast16_t",
"atomic_int_fast32_t",
"atomic_uint_fast32_t",
"atomic_int_fast64_t",
"atomic_uint_fast64_t",
"atomic_intptr_t",
"atomic_uintptr_t",
"atomic_size_t",
"atomic_ptrdiff_t",
"atomic_intmax_t",
"atomic_uintmax_t",
])
gnu_types = frozenset([
"__int128",
"signed __int128",
"unsigned __int128",
])
cxx17_types = frozenset([
"bool",
])
cosmo_types = frozenset([
"bool32",
"int128_t",
"int_fast128_t",
"int_least128_t",
"uint128_t",
])
x86intrin_types = frozenset([
"__m1",
"__m2",
"__m64",
"__m128",
"__m128_u",
"__m128d",
"__m128d_u",
"__m128i",
"__m128i_u",
"__v16qi",
"__v16qs",
"__v16qu",
"__v1di",
"__v2df",
"__v2di",
"__v2du",
"__v2sf",
"__v2si",
"__v4hi",
"__v4sf",
"__v4si",
"__v4su",
"__v8hi",
"__v8hu",
"__v8qi",
])
################################################################################
kar_kws = frozenset([
"auto",
"if",
"break",
"case",
"while",
"continue",
"default",
"return",
"do",
"signed",
"else",
"sizeof",
"extern",
"struct",
"switch",
"for",
"goto",
"union",
])
ansi_kws = frozenset([
"auto",
"if",
"break",
"case",
"volatile",
"while",
"const",
"register",
"continue",
"default",
"return",
"do",
"double",
"signed",
"else",
"sizeof",
"static",
"extern",
"struct",
"float",
"switch",
"for",
"typedef",
"goto",
"union",
"typedef",
"enum",
])
c99_kws= frozenset([
"_Bool",
"_Complex",
"_Imaginary",
"inline",
"restrict",
])
c11_kws = frozenset([
"_Alignas",
"_Alignof",
"_Atomic",
"_Generic",
"_Noreturn",
"_Static_assert",
"_Thread_local",
])
cxx17_kws = frozenset([
"alignas",
"alignof",
"asm",
"auto",
"bool",
"break",
"case",
"catch",
"class",
"const",
"const_cast",
"constexpr",
"continue",
"decltype",
"default",
"delete",
"do",
"double",
"dynamic_cast",
"else",
"enum",
"explicit",
"export",
"extern",
"false",
"float",
"for",
"friend",
"goto",
"if",
"inline",
"mutable",
"namespace",
"new",
"noexcept",
"nullptr",
"operator",
"private",
"protected",
"public",
"register",
"reinterpret_cast",
"return",
"short",
"signed",
"sizeof",
"static",
"static_assert",
"static_cast",
"struct",
"switch",
"template",
"this",
"thread_local",
"throw",
"true",
"try",
"typedef",
"typeid",
"typename",
"union",
"using",
"virtual",
"virtual",
"volatile",
"volatile",
"while",
])
cosmo_kws = frozenset([
"pass",
"alignas",
"aligned",
"alignof",
"artificial",
"attributeallocalign",
"attributeallocsize",
"autotype",
"byanymeansnecessary",
"compatfn",
"decltype",
"externinline",
"firstclass",
"flattenout",
"forcealignargpointer",
"forceinline",
"frownedupon",
"hasatleast",
"hidden",
"initarray",
"interruptfn",
"mallocesque",
"mayalias",
"memcpyesque",
"nocallback",
"nodebuginfo",
"nodiscard",
"noinline",
"noinstrument",
"nointerpose",
"nooptimize",
"noprune",
"noreturn",
"nosideeffect",
"nothrow",
"nothrow",
"null",
"nullterminated",
"paramsnonnull",
"preinitarray",
"printfesque",
"privileged",
"pureconst",
"reallocesque",
"relegated",
"returnsnonnull",
"returnspointerwithnoaliases",
"returnstwice",
"scanfesque",
"strftimeesque",
"strlenesque",
"testonly",
"textexit",
"textreal",
"textstartup",
"textwindows",
"thatispacked",
"threadlocal",
"typeof",
"unreachable",
"warnifused",
"winstruct",
"nocallersavedregisters",
"pass",
"alignas",
"aligned",
"alignof",
"artificial",
"attributeallocalign",
"attributeallocsize",
"autotype",
"byanymeansnecessary",
"compatfn",
"decltype",
"externinline",
"firstclass",
"flattenout",
"forcealignargpointer",
"forceinline",
"frownedupon",
"hasatleast",
"hidden",
"initarray",
"interruptfn",
"mallocesque",
"mayalias",
"memcpyesque",
"nocallback",
"nodebuginfo",
"nodiscard",
"noinline",
"noinstrument",
"nointerpose",
"nooptimize",
"noprune",
"noreturn",
"nosideeffect",
"nothrow",
"nothrow",
"null",
"nullterminated",
"paramsnonnull",
"preinitarray",
"printfesque",
"privileged",
"pureconst",
"reallocesque",
"relegated",
"returnsnonnull",
"returnspointerwithnoaliases",
"returnstwice",
"scanfesque",
"strftimeesque",
"strlenesque",
"testonly",
"textexit",
"textreal",
"textstartup",
"textwindows",
"thatispacked",
"threadlocal",
"typeof",
"unreachable",
"warnifused",
"winstruct",
"nocallersavedregisters",
])
################################################################################
typegroups = (("kar", kar_types),
("ansi", ansi_types),
("c99", c99_types),
("c11", c11_types),
("gnu", gnu_types),
("cxx17", cxx17_types),
("cosmo", cosmo_types),
("x86intrin", x86intrin_types))
kwgroups = (("kar", kar_kws),
("ansi", ansi_kws),
("c99", c99_kws),
("c11", c11_kws),
("cxx17", cxx17_kws),
("cosmo", cosmo_kws))
types = reduce(lambda a,b: a|b[1], typegroups, set())
kws = reduce(lambda a,b: a|b[1], kwgroups, set())
################################################################################
for name, gg, nonono in (("cosmo-c-types", typegroups, kws),
("cosmo-c-keywords", kwgroups, types)):
first = True
sys.stdout.write("""\
(defconst %s-regex
(let (""" % name)
for k, vs in gg:
sys.stdout.write(("""%s(%s (list %s))
""" % ("" if first else "\n ", k, """
""".join('"%s"' % repr(s)[1:][:-1]
for s in vs - nonono))).rstrip())
first = False
sys.stdout.write(""")
(concat "\\<" (regexp-opt (append """)
sys.stdout.write("""
""".join(k for k,_ in gg))
sys.stdout.write(""")) "\\>")))\n\n""")