raze/source/common/scripting/frontend/zcc_exprlist.h
2020-05-23 22:43:04 +02:00

76 lines
1.4 KiB
C

// Name Token used in the code generator
xx(Nil, TK_None)
xx(ID, TK_Identifier)
xx(Super, TK_Super)
xx(Null, TK_Null)
xx(ConstValue, TK_Const)
xx(FuncCall, '(')
xx(ArrayAccess, TK_Array)
xx(MemberAccess, '.')
xx(ClassCast, TK_Class)
xx(TypeRef, TK_Class)
xx(Vector, TK_Vector2)
xx(PostInc, TK_Incr)
xx(PostDec, TK_Decr)
xx(PreInc, TK_Incr)
xx(PreDec, TK_Decr)
xx(Negate, '-')
xx(AntiNegate, '+')
xx(BitNot, '~')
xx(BoolNot, '!')
xx(SizeOf, TK_SizeOf)
xx(AlignOf, TK_AlignOf)
xx(Add, '+')
xx(Sub, '-')
xx(Mul, '*')
xx(Div, '/')
xx(Mod, '%')
xx(Pow, TK_MulMul)
xx(CrossProduct, TK_Cross)
xx(DotProduct, TK_Dot)
xx(LeftShift, TK_LShift)
xx(RightShift, TK_RShift)
xx(URightShift, TK_URShift)
xx(Concat, TK_DotDot)
xx(LT, '<')
xx(LTEQ, TK_Leq)
xx(GT, '>')
xx(GTEQ, TK_Geq)
xx(LTGTEQ, TK_LtGtEq)
xx(Is, TK_Is)
xx(EQEQ, TK_Eq)
xx(NEQ, TK_Neq)
xx(APREQ, TK_ApproxEq)
xx(BitAnd, '&')
xx(BitOr, '|')
xx(BitXor, '^')
xx(BoolAnd, TK_AndAnd)
xx(BoolOr, TK_OrOr)
xx(Assign, '=')
xx(AddAssign, '+') // these are what the code generator needs, not what they represent.
xx(SubAssign, '-')
xx(MulAssign, '*')
xx(DivAssign, '/')
xx(ModAssign, '%')
xx(LshAssign, TK_LShift)
xx(RshAssign, TK_RShift)
xx(URshAssign, TK_URShift)
xx(AndAssign, '&')
xx(OrAssign, '|')
xx(XorAssign, '^')
xx(Scope, TK_ColonColon)
xx(Trinary, '?')
xx(Cast, TK_Coerce)
#undef xx