libpulsar
A modular compiler for the pulsar programming language
Loading...
Searching...
No Matches
token_type_symbols_operators.h
Go to the documentation of this file.
1
8#include "enum/enum.h"
9
10#if !defined(_T) && !defined(T)
11 #define _PD_OUT_OF_TOKEN_TYPE_H
12 #define _T(token_type) PS_TOKEN_##token_type
13 #define T(token_type) _T(token_type)
14#endif
15
16// don't know if everything as strings is the most efficient way to do it
17
18ENUM(T(LIT_UNIT), "unit-literal", "()")
19
20// symbols
21ENUM(T(LPAR), "left-par", "(")
22ENUM(T(RPAR), "right-par", ")")
23ENUM(T(LBRACK), "left-bracket", "[")
24ENUM(T(RBRACK), "right-bracket", "]")
25ENUM(T(LBRACE), "left-brace", "{")
26ENUM(T(RBRACE), "right-brace", "}")
27ENUM(T(QMARK), "question-mark", "?")
28ENUM(T(3DOT), "3-dot", "...") // order matters here!
29 // "..." before "." or "..." will be lexed as 3
30ENUM(T(DOT), "dot", ".")
31ENUM(T(COMMA), "comma", ",")
32ENUM(T(SCOPE), "scope", "::")
33ENUM(T(COLON), "colon", ":")
34ENUM(T(ARROW), "arrow", "->")
35ENUM(T(THICK_ARROW), "thick-arrow", "=>")
36ENUM(T(SEMICOLON), "semicolon", ";") // maybe
37
38ENUM(T(AT), "at", "@")
39
40// operators
41ENUM(T(EQ), "equal", "==")
42ENUM(T(ASSIGN), "assign", "=")
43ENUM(T(PLUS_ASSIGN), "plus-assign", "+=")
44ENUM(T(PLUS), "plus", "+")
45ENUM(T(MINUS_ASSIGN), "minus-assign", "-=")
46ENUM(T(MINUS), "minus", "-")
47ENUM(T(POW_ASSIGN), "power-assign", "**=")
48ENUM(T(POW), "power", "**")
49ENUM(T(MUL_ASSIGN), "multiply-assign", "*=")
50ENUM(T(MUL), "multiply", "*")
51ENUM(T(DIV_ASSIGN), "divide-assign", "/=")
52ENUM(T(DIV), "divide", "/")
53ENUM(T(MOD_ASSIGN), "modulo-assign", "%=")
54ENUM(T(MOD), "modulo", "%")
55ENUM(T(NEQ), "not-equal", "!=")
56ENUM(T(LESS_OR_EQ), "less-than-or-equal-to", "<=")
57ENUM(T(GREATER_OR_EQ), "greater-than-or-equal-to", ">=")
58ENUM(T(BIT_SHL_ASSIGN), "bitwise-shift-left-assign", "<<=")
59ENUM(T(BIT_SHL), "bitwise-shift-left", "<<")
60ENUM(T(BIT_SHR_ASSIGN), "bitwise-shift-right-assign", ">>=")
61ENUM(T(BIT_SHR), "bitwise-shift-right", ">>")
62ENUM(T(LESS), "less-than", "<")
63ENUM(T(GREATER), "greater-than", ">")
64ENUM(T(LOG_AND), "logical-and", "&&")
65ENUM(T(LOG_OR), "logical-or", "||")
66ENUM(T(LOG_NOT), "logical-not", "!!")
67ENUM(T(BIT_AND_ASSIGN), "bitwise-and-assign", "&=")
68ENUM(T(BIT_AND), "bitwise-and", "&")
69ENUM(T(BIT_OR_ASSIGN), "bitwise-or-assign", "|=")
70ENUM(T(BIT_OR), "bitwise-or", "|")
71ENUM(T(BIT_NOT), "bitwise-not", "!")
72ENUM(T(BIT_XOR_ASSIGN), "bitwise-xor-assign", "^=")
73ENUM(T(BIT_XOR), "bitwise-xor", "^")
74
75#ifdef _PD_OUT_OF_TOKEN_TYPE_H
76 #undef T
77 #undef _T
78#endif
79
80#ifdef _PD_OUT_OF_TOKEN_TYPE_H
81 #undef _PD_OUT_OF_TOKEN_TYPE_H
82#endif
Custom enum definitions with associated data.
#define ENUM
#define T(token_type)