// Copyright 2012 Rui Ueyama. Released under the MIT license.

op(OP_ARROW, "->")
op(OP_A_ADD, "+=")
op(OP_A_AND, "&=")
op(OP_A_DIV, "/=")
op(OP_A_MOD, "%=")
op(OP_A_MUL, "*=")
op(OP_A_OR, "|=")
op(OP_A_SAL, "<<=")
op(OP_A_SAR, ">>=")
op(OP_A_SUB, "-=")
op(OP_A_XOR, "^=")
op(OP_DEC, "--")
op(OP_EQ, "==")
op(OP_GE, ">=")
op(OP_INC, "++")
op(OP_LE, "<=")
op(OP_LOGAND, "&&")
op(OP_LOGOR, "||")
op(OP_NE, "!=")
op(OP_SAL, "<<")
op(OP_SAR, ">>")

keyword(KALIGNAS, "_Alignas", true)
keyword(KALIGNOF, "_Alignof", false)
keyword(KAUTO, "auto", true)
keyword(KBOOL, "_Bool", true)
keyword(KBREAK, "break", false)
keyword(KCASE, "case", false)
keyword(KCHAR, "char", true)
keyword(KCOMPLEX, "_Complex", true)
keyword(KCONST, "const", true)
keyword(KCONTINUE, "continue", false)
keyword(KDEFAULT, "default", false)
keyword(KDO, "do", false)
keyword(KDOUBLE, "double", true)
keyword(KELSE, "else", false)
keyword(KENUM, "enum", true)
keyword(KEXTERN, "extern", true)
keyword(KFLOAT, "float", true)
keyword(KFOR, "for", false)
keyword(KGENERIC, "_Generic", false)
keyword(KGOTO, "goto", false)
keyword(KIF, "if", false)
keyword(KIMAGINARY, "_Imaginary", true)
keyword(KINLINE, "inline", true)
keyword(KINT, "int", true)
keyword(KLONG, "long", true)
keyword(KNORETURN, "_Noreturn", true)
keyword(KREGISTER, "register", true)
keyword(KRESTRICT, "restrict", true)
keyword(KRETURN, "return", false)
keyword(KHASHHASH, "##", false)
keyword(KSHORT, "short", true)
keyword(KSIGNED, "signed", true)
keyword(KSIZEOF, "sizeof", false)
keyword(KSTATIC, "static", true)
keyword(KSTATIC_ASSERT, "_Static_assert", false)
keyword(KSTRUCT, "struct", true)
keyword(KSWITCH, "switch", false)
keyword(KELLIPSIS, "...", false)
keyword(KTYPEDEF, "typedef", true)
keyword(KTYPEOF, "typeof", true)
keyword(KUNION, "union", true)
keyword(KUNSIGNED, "unsigned", true)
keyword(KVOID, "void", true)
keyword(KVOLATILE, "volatile", true)
keyword(KWHILE, "while", false)
