|
| 1 | +#include <eepp/ui/doc/languages/ispc.hpp> |
| 2 | +#include <eepp/ui/doc/syntaxdefinitionmanager.hpp> |
| 3 | + |
| 4 | +namespace EE { namespace UI { namespace Doc { namespace Language { |
| 5 | + |
| 6 | +void addISPC() { |
| 7 | + |
| 8 | + auto& sd = SyntaxDefinitionManager::instance()->add( |
| 9 | + |
| 10 | + { "ISPC", |
| 11 | + { "%.ispc$", "%.isph$", "%.ih$" }, |
| 12 | + { |
| 13 | + { { "//.-\n" }, "comment" }, |
| 14 | + { { "/%*", "%*/" }, "comment" }, |
| 15 | + { { "(#%s*include)%s+([<%\"][%w%d%.%\\%/%_%-]+[>%\"])" }, |
| 16 | + { "keyword", "keyword", "literal" } }, |
| 17 | + { { "L?\"", "[\"\n]", "\\" }, "string" }, |
| 18 | + { { "'", "'", "\\" }, "string" }, |
| 19 | + { { "c_number_parser" }, "number", "", SyntaxPatternMatchType::Parser }, |
| 20 | + { { "(struct)%s+([%a_][%w_]+)" }, { "keyword", "keyword", "keyword2" } }, |
| 21 | + { { "(enum)%s+([%a_][%w_]+)" }, { "keyword", "keyword", "keyword2" } }, |
| 22 | + { { "(cdo|cfor|cif|cwhiledo|else|for|foreach|foreach_active|foreach_tiled|foreach_" |
| 23 | + "unique|goto|if|switch|while)\\s*(?=\\()" }, |
| 24 | + { "normal", "keyword", "keyword" }, |
| 25 | + "", |
| 26 | + SyntaxPatternMatchType::RegEx }, |
| 27 | + { { "[%a_][%w_]*%s*%f[(]" }, "function" }, |
| 28 | + { { "@llvm%.[a-zA-Z_0-9%.]*" }, "function" }, |
| 29 | + { { "[%+%-=/%*%^%%<>!~|&]" }, "operator" }, |
| 30 | + { { "#[%a_][%w_]*" }, "symbol" }, |
| 31 | + { { "[%a_][%w_]*" }, "symbol" }, |
| 32 | + |
| 33 | + }, |
| 34 | + { |
| 35 | + |
| 36 | + { "assert", "keyword" }, |
| 37 | + { "break", "keyword" }, |
| 38 | + { "case", "keyword" }, |
| 39 | + { "cdo", "keyword" }, |
| 40 | + { "cfor", "keyword" }, |
| 41 | + { "cif", "keyword" }, |
| 42 | + { "cwhile", "keyword" }, |
| 43 | + { "continue", "keyword" }, |
| 44 | + { "default", "keyword" }, |
| 45 | + { "do", "keyword" }, |
| 46 | + { "else", "keyword" }, |
| 47 | + { "for", "keyword" }, |
| 48 | + { "foreach", "keyword" }, |
| 49 | + { "foreach_active", "keyword" }, |
| 50 | + { "foreach_tiled", "keyword" }, |
| 51 | + { "foreach_unique", "keyword" }, |
| 52 | + { "goto", "keyword" }, |
| 53 | + { "if", "keyword" }, |
| 54 | + { "in", "keyword" }, |
| 55 | + { "return", "keyword" }, |
| 56 | + { "switch", "keyword" }, |
| 57 | + { "sync", "keyword" }, |
| 58 | + { "task", "keyword" }, |
| 59 | + { "while", "keyword" }, |
| 60 | + { "launch", "keyword" }, |
| 61 | + { "invoke_sycl", "keyword" }, |
| 62 | + { "delete", "keyword" }, |
| 63 | + { "new", "keyword" }, |
| 64 | + { "sizeof", "keyword" }, |
| 65 | + { "alloca", "keyword" }, |
| 66 | + { "const", "keyword" }, |
| 67 | + { "extern", "keyword" }, |
| 68 | + { "inline", "keyword" }, |
| 69 | + { "noinline", "keyword" }, |
| 70 | + { "static", "keyword" }, |
| 71 | + { "uniform", "keyword" }, |
| 72 | + { "unmasked", "keyword" }, |
| 73 | + { "varying", "keyword" }, |
| 74 | + { "template", "keyword" }, |
| 75 | + { "typedef", "keyword" }, |
| 76 | + { "typename", "keyword" }, |
| 77 | + { "export", "keyword" }, |
| 78 | + { "signed", "keyword2" }, |
| 79 | + { "unsigned", "keyword2" }, |
| 80 | + { "soa", "keyword" }, |
| 81 | + { "__vectorcall", "keyword" }, |
| 82 | + { "__regcall", "keyword" }, |
| 83 | + { "__attribute__", "keyword" }, |
| 84 | + { "volatile", "keyword" }, |
| 85 | + |
| 86 | + { "bool", "keyword2" }, |
| 87 | + { "double", "keyword2" }, |
| 88 | + { "float", "keyword2" }, |
| 89 | + { "float16", "keyword2" }, |
| 90 | + { "int", "keyword2" }, |
| 91 | + { "uint", "keyword2" }, |
| 92 | + { "int8", "keyword2" }, |
| 93 | + { "uint8", "keyword2" }, |
| 94 | + { "int16", "keyword2" }, |
| 95 | + { "uint16", "keyword2" }, |
| 96 | + { "int32", "keyword2" }, |
| 97 | + { "uint32", "keyword2" }, |
| 98 | + { "int64", "keyword2" }, |
| 99 | + { "uint64", "keyword2" }, |
| 100 | + { "void", "keyword" }, |
| 101 | + { "struct", "keyword" }, |
| 102 | + { "enum", "keyword" }, |
| 103 | + { "size_t", "keyword2" }, |
| 104 | + { "ptrdiff_t", "keyword2" }, |
| 105 | + { "intptr_t", "keyword2" }, |
| 106 | + { "uintptr_t", "keyword2" }, |
| 107 | + |
| 108 | + { "true", "literal" }, |
| 109 | + { "false", "literal" }, |
| 110 | + { "NULL", "literal" }, |
| 111 | + { "programIndex", "literal" }, |
| 112 | + { "programCount", "literal" }, |
| 113 | + { "threadIndex", "literal" }, |
| 114 | + { "threadIndex0", "literal" }, |
| 115 | + { "threadIndex1", "literal" }, |
| 116 | + { "threadIndex2", "literal" }, |
| 117 | + { "threadCount", "literal" }, |
| 118 | + { "taskIndex", "literal" }, |
| 119 | + { "taskIndex0", "literal" }, |
| 120 | + { "taskIndex1", "literal" }, |
| 121 | + { "taskIndex2", "literal" }, |
| 122 | + { "taskCount", "literal" }, |
| 123 | + |
| 124 | + { "#if", "keyword" }, |
| 125 | + { "#ifdef", "keyword" }, |
| 126 | + { "#ifndef", "keyword" }, |
| 127 | + { "#elif", "keyword" }, |
| 128 | + { "#else", "keyword" }, |
| 129 | + { "#endif", "keyword" }, |
| 130 | + { "#define", "keyword" }, |
| 131 | + { "#undef", "keyword" }, |
| 132 | + { "#include", "keyword" }, |
| 133 | + { "#line", "keyword" }, |
| 134 | + { "#error", "keyword" }, |
| 135 | + { "#pragma", "keyword" }, |
| 136 | + { "#warning ", "keyword" }, |
| 137 | + { "#elifdef ", "keyword" }, |
| 138 | + { "#elifndef ", "keyword" }, |
| 139 | + }, |
| 140 | + "//", |
| 141 | + {} |
| 142 | + |
| 143 | + } ); |
| 144 | + |
| 145 | + sd.setFoldRangeType( FoldRangeType::Braces ).setFoldBraces( { { '{', '}' } } ); |
| 146 | +} |
| 147 | + |
| 148 | +}}}} // namespace EE::UI::Doc::Language |
0 commit comments