%{ #include "libc/str/str.h" #include "tool/tags/tags.h" #include "o/tool/tags/tags.h.inc" %} %compare-strncmp %language=ANSI-C %readonly-tables %struct-type %define lookup-function-name LookupKeyword struct KeywordSlot { char *name; int code; }; %% auto, TK_AUTO break, TK_BREAK case, TK_CASE char, TK_CHAR const, TK_CONST continue, TK_CONTINUE default, TK_DEFAULT do, TK_DO double, TK_DOUBLE else, TK_ELSE enum, TK_ENUM extern, TK_EXTERN float, TK_FLOAT for, TK_FOR goto, TK_GOTO if, TK_IF inline, TK_INLINE int, TK_INT long, TK_LONG register, TK_REGISTER restrict, TK_RESTRICT return, TK_RETURN short, TK_SHORT signed, TK_SIGNED sizeof, TK_SIZEOF static, TK_STATIC struct, TK_STRUCT switch, TK_SWITCH typedef, TK_TYPEDEF union, TK_UNION unsigned, TK_UNSIGNED void, TK_VOID volatile, TK_VOLATILE while, TK_WHILE _Alignas, TK_ALIGNAS _Alignof, TK_ALIGNOF _Atomic, TK_ATOMIC _Bool, TK_BOOL _Complex, TK_COMPLEX _Generic, TK_GENERIC _Imaginary, TK_IMAGINARY _Noreturn, TK_NORETURN _Static_assert, TK_STATIC_ASSERT _Thread_local, TK_THREAD_LOCAL elif, TK_ELIF endif, TK_ENDIF ifdef, TK_IFDEF ifndef, TK_IFNDEF define, TK_DEFINE undef, TK_UNDEF include, TK_INCLUDE line, TK_LINE error, TK_ERROR pragma, TK_PRAGMA asm, TK_ASM __attribute__, TK_ATTRIBUTE __restrict__, TK_RESTRICT __typeof__, TK_TYPEOF __typeof, TK_TYPEOF __inline, TK_INLINE __const__, TK_CONST __label__, TK_LABEL __noinline__, TK_LABEL __force_align_arg_pointer__, TK_FORCE_ALIGN_ARG_POINTER __always_inline__, TK_ALWAYS_INLINE __gnu_inline__, TK_GNU_INLINE __alignof__, TK_ALIGNOF __asm__, TK_ASM __auto_type, TK_AUTO_TYPE __byte__, TK_BYTE __complex__, TK_COMPLEX __imag__, TK_IMAG __may_alias__, TK_MAY_ALIAS __noreturn__, TK_NORETURN __packed__, TK_PACKED __pointer__, TK_POINTER __printf__, TK_PRINTF __real__, TK_REAL __scanf__, TK_SCANF __strfmon__, TK_STRFMON __strftime__, TK_STRFTIME __strong__, TK_STRONG __target__, TK_TARGET __transparent_union__, TK_TRANSPARENT_UNION __volatile__, TK_VOLATILE __word__, TK_WORD __alias__, TK_ALIAS __aligned__, TK_ALIGNED __alloc_align__, TK_ALLOC_ALIGN __alloc_size__, TK_ALLOC_SIZE __artificial__, TK_ARTIFICIAL __assume_aligned__, TK_ASSUME_ALIGNED __cold__, TK_COLD __constructor__, TK_CONSTRUCTOR __destructor__, TK_DESTRUCTOR __copy__, TK_COPY __deprecated__, TK_DEPRECATED __error__, TK_ERROR __warning__, TK_WARNING __externally_visible__, TK_EXTERNALLY_VISIBLE __flatten__, TK_FLATTEN __format__, TK_FORMAT __gnu_format__, TK_GNU_FORMAT __gnu_printf__, TK_GNU_PRINTF __gnu_scanf__, TK_GNU_SCANF __format_arg__, TK_FORMAT_ARG __hot__, TK_HOT __ifunc__, TK_IFUNC __interrupt__, TK_INTERRUPT __interrupt_handler__, TK_INTERRUPT_HANDLER __no_caller_saved_registers__, TK_NO_CALLER_SAVED_REGISTERS __leaf__, TK_LEAF __malloc__, TK_MALLOC __no_icf__, TK_NO_ICF __no_instrument_function__, TK_NO_INSTRUMENT_FUNCTION __no_profile_instrument_function__, TK_NO_PROFILE_INSTRUMENT_FUNCTION __no_reorder__, TK_NO_REORDER __no_sanitize__, TK_NO_SANITIZE __no_sanitize_address__, TK_NO_SANITIZE_ADDRESS __no_address_safety_analysis__, TK_NO_ADDRESS_SAFETY_ANALYSIS __no_sanitize_thread__, TK_NO_SANITIZE_THREAD __no_sanitize_undefined__, TK_NO_SANITIZE_UNDEFINED __no_split_stack__, TK_NO_SPLIT_STACK __no_stack_limit__, TK_NO_STACK_LIMIT __noclone__, TK_NOCLONE __noipa__, TK_NOIPA __nonnull__, TK_NONNULL __noplt__, TK_NOPLT __nothrow__, TK_NOTHROW __optimize__, TK_OPTIMIZE __pure__, TK_PURE __patchable_function_entry__, TK_PATCHABLE_FUNCTION_ENTRY __returns_nonnull__, TK_RETURNS_NONNULL __returns_twice__, TK_RETURNS_TWICE __section__, TK_SECTION __sentinel__, TK_SENTINEL __simd__, TK_SIMD __target_clones__, TK_TARGET_CLONES __unused__, TK_UNUSED __used__, TK_USED __visibility__, TK_VISIBILITY __warn_unused_result__, TK_WARN_UNUSED_RESULT __params_nonnull__, TK_PARAMS_NONNULL __weak__, TK_WEAK __vector_size__, TK_VECTOR_SIZE __ms_abi__, TK_MS_ABI __mode__, TK_MODE __optnone__, TK_OPTNONE __nodebug__, TK_NODEBUG