%%%  Keywords  %%%

% type specifiers
\MakeWord{char}{TypeSpec}
\MakeWord{short}{TypeSpec}
\MakeWord{int}{TypeSpec}
\MakeWord{long}{TypeSpec}
\MakeWord{signed}{TypeSpec}
\MakeWord{unsigned}{TypeSpec}
\MakeWord{void}{TypeSpec}
\MakeWord{bool}{TypeSpec}
\MakeWord{float}{TypeSpec}
\MakeWord{double}{TypeSpec}
\MakeWord{enum}{TypeSpec}
\MakeWord{struct}{TypeSpec}
\MakeWord{union}{TypeSpec}
\MakeWord{_BitInt}{TypeSpec}
\MakeWord{_Bool}{TypeSpec}
\MakeWord{_Complex}{TypeSpec}
\MakeWord{_Decimal32}{TypeSpec}
\MakeWord{_Decimal64}{TypeSpec}
\MakeWord{_Decimal128}{TypeSpec}

% function specifier
\MakeWord{inline}{FuncSpec}

% storage class specifier
\MakeWord{auto}{StorageClass}
\MakeWord{typedef}{StorageClass}
\MakeWord{static}{StorageClass}
\MakeWord{extern}{StorageClass}
\MakeWord{_Thread_local}{StorageClass}
\MakeWord{thread_local}{StorageClass}
\MakeWord{register}{StorageClass}
\MakeWord{constexpr}{StorageClass}

% alignment specifier
\MakeWord{alignas}{AlignSpec}
\MakeWord{_Alignas}{AlignSpec}

% qualifiers
\MakeWord{const}{Qualifier}
\MakeWord{volatile}{Qualifier}
\MakeWord{restrict}{Qualifier}
\MakeWord{_Atomic}{Qualifier}

% operators
\MakeWord{sizeof}{Operator}
\MakeWord{_Alignof}{Operator}
\MakeWord{alignof}{Operator}
\MakeWord{typeof}{Operator}
\MakeWord{typeof_unqual}{Operator}
\MakeWord{_Countof}{Operator}
\MakeWord{static_assert}{Operator}
\MakeWord{_Static_assert}{Operator}

% control flow
\MakeWord{if}{Statement}
\MakeWord{else}{Statement}
\MakeWord{switch}{Statement}
\MakeWord{case}{SwitchLabel}
\MakeWord{default}{SwitchLabel}
\MakeWord{do}{Loop}
\MakeWord{while}{Loop}
\MakeWord{for}{Loop}
\MakeWord{break}{Jump}
\MakeWord{continue}{Jump}
\MakeWord{goto}{Jump}
\MakeWord{return}{Statement}
%
\MakeWord{_Generic}{CodeSelection}

% Predefined constants
\MakeWord{true}{NamedConstant}
\MakeWord{false}{NamedConstant}
\MakeWord{nullptr}{NamedConstant}
