ecode: Added Objeck and Pascal syntax highlighting support.

This commit is contained in:
Martín Lucas Golini
2023-03-14 22:21:04 -03:00
parent a8a05a3a6d
commit fae07f495d
5 changed files with 321 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
#include <eepp/ui/doc/languages/x86assembly.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
namespace EE { namespace UI { namespace Doc { namespace Language {
void addObjeck() {
SyntaxDefinitionManager::instance()->add(
{ "Objeck",
{ "%.obs$" },
{
{ { "#~", "~#" }, "comment" },
{ { "#.*" }, "comment" },
{ { "\"", "\"", "\\" }, "string" },
{ { "'\\u%x%x%x%x'" }, "string" },
{ { "'\\?.'" }, "string" },
{ { "-?0x%x+" }, "number" },
{ { "-?0b[0-1]+" }, "number" },
{ { "-?%d+[%d%.eE]*f?" }, "number" },
{ { "-?%.?%d+f?" }, "number" },
{ { "[%+%-=/%*%^%%<>!~|&]" }, "operator" },
{ { ":=" }, "operator" },
{ { "[%a_][%w_]*%f[(]" }, "function" },
{ { "@[%a_][%w_]*" }, "function" },
{ { "[%a_][%w_]*" }, "symbol" },
{ { "%s+" }, "normal" },
{ { "%w+%f[%s]" }, "normal" },
},
{
{ "xor", "keyword" },
{ "while", "keyword" },
{ "use", "keyword" },
{ "alias", "keyword" },
{ "String", "keyword2" },
{ "New", "keyword" },
{ "Parent", "keyword" },
{ "IntArrayRef", "keyword2" },
{ "class", "keyword" },
{ "Nil", "keyword2" },
{ "Byte", "keyword2" },
{ "consts", "keyword" },
{ "return", "keyword" },
{ "IntRef", "keyword2" },
{ "virtual", "keyword" },
{ "select", "keyword" },
{ "Int", "keyword2" },
{ "FuncRef", "keyword2" },
{ "enum", "keyword" },
{ "reverse", "keyword" },
{ "and", "keyword" },
{ "StringArrayRef", "keyword2" },
{ "FloatRef", "keyword2" },
{ "do", "keyword" },
{ "native", "keyword" },
{ "As", "keyword" },
{ "Bool", "keyword2" },
{ "Func2Ref", "keyword2" },
{ "ByteRef", "keyword2" },
{ "other", "keyword" },
{ "CharRef", "keyword2" },
{ "abstract", "keyword" },
{ "each", "keyword" },
{ "BoolArrayRef", "keyword2" },
{ "Func3Ref", "keyword2" },
{ "BoolRef", "keyword2" },
{ "BaseArrayRef", "keyword2" },
{ "for", "keyword" },
{ "false", "literal" },
{ "Func4Ref", "keyword2" },
{ "or", "keyword" },
{ "FloatArrayRef", "keyword2" },
{ "ByteArrayRef", "keyword2" },
{ "CharArrayRef", "keyword2" },
{ "Char", "keyword2" },
{ "bundle", "keyword" },
{ "leaving", "keyword" },
{ "continue", "keyword" },
{ "if", "keyword" },
{ "critical", "keyword" },
{ "break", "keyword" },
{ "else", "keyword" },
{ "from", "keyword" },
{ "function", "keyword" },
{ "interface", "keyword" },
{ "implements", "keyword" },
{ "label", "keyword" },
{ "method", "keyword" },
{ "private", "keyword" },
{ "Float", "keyword2" },
{ "public", "keyword" },
{ "static", "keyword" },
{ "true", "literal" },
},
"#",
{}
} );
}
}}}} // namespace EE::UI::Doc::Language

View File

@@ -0,0 +1,10 @@
#ifndef EE_UI_DOC_Objeck
#define EE_UI_DOC_Objeck
namespace EE { namespace UI { namespace Doc { namespace Language {
extern void addObjeck();
}}}}
#endif

View File

@@ -0,0 +1,194 @@
#include <eepp/ui/doc/languages/x86assembly.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
namespace EE { namespace UI { namespace Doc { namespace Language {
void addPascal() {
SyntaxDefinitionManager::instance()->add(
{ "Pascal",
{ "%.pas$" },
{
{ { "//.*" }, "comment" },
{ { "%(%*", "%*%)" }, "comment" },
{ { "{", "}" }, "comment" },
{ { "'", "'", "\\" }, "string" },
{ { "'\\?.'" }, "string" },
{ { "-?%$%x+" }, "number" },
{ { "-?%%[0-1]+" }, "number" },
{ { "-?%d+[%d%.eE]*" }, "number" },
{ { "-?%.?%d+" }, "number" },
{ { "[%+%-=/%*%^@<>]" }, "operator" },
{ { ":=" }, "operator" },
{ { "[%a_][%w_]*%f[(]" }, "function" },
{ { "[%a_][%w_]*" }, "symbol" },
{ { "%s+" }, "normal" },
{ { "%w+%f[%s]" }, "normal" },
},
{
{ "xor", "keyword" },
{ "writeonly", "keyword" },
{ "wordbool", "keyword2" },
{ "word", "keyword2" },
{ "virtual", "keyword" },
{ "var", "keyword" },
{ "uses", "keyword" },
{ "until", "keyword" },
{ "unsafe", "keyword" },
{ "type", "keyword" },
{ "try", "keyword" },
{ "with", "keyword" },
{ "trunc", "function" },
{ "true", "literal" },
{ "to", "keyword" },
{ "threadvar", "keyword" },
{ "while", "keyword" },
{ "then", "keyword" },
{ "succ", "function" },
{ "stdcall", "keyword" },
{ "static", "keyword" },
{ "sqrt", "function" },
{ "sqr", "function" },
{ "as", "keyword" },
{ "forward", "keyword" },
{ "goto", "keyword" },
{ "for", "keyword" },
{ "begin", "keyword" },
{ "initialization", "keyword" },
{ "if", "keyword" },
{ "implementation", "keyword" },
{ "array", "keyword" },
{ "far", "keyword" },
{ "asm", "keyword" },
{ "file", "keyword" },
{ "or", "keyword" },
{ "except", "keyword" },
{ "dynamic", "keyword" },
{ "reintroduce", "keyword" },
{ "boolean", "keyword2" },
{ "double", "keyword2" },
{ "unit", "keyword" },
{ "dispinterface", "keyword" },
{ "assembler", "keyword" },
{ "inherited", "keyword" },
{ "eof", "function" },
{ "dispid", "keyword" },
{ "implements", "keyword" },
{ "label", "keyword" },
{ "shortint", "keyword2" },
{ "automated", "keyword" },
{ "class", "keyword" },
{ "message", "keyword" },
{ "at", "keyword" },
{ "exp", "function" },
{ "return", "keyword" },
{ "write", "keyword" },
{ "contains", "keyword" },
{ "deprecated", "keyword" },
{ "constructor", "keyword" },
{ "abstract", "keyword" },
{ "shl", "keyword" },
{ "string", "keyword" },
{ "finally", "keyword" },
{ "downto", "keyword" },
{ "integer", "keyword2" },
{ "absolute", "keyword" },
{ "override", "keyword" },
{ "near", "keyword" },
{ "arctan", "function" },
{ "export", "keyword" },
{ "abs", "function" },
{ "bytebool", "keyword2" },
{ "out", "keyword" },
{ "pascal", "keyword" },
{ "read", "keyword" },
{ "case", "keyword" },
{ "object", "keyword" },
{ "finalization", "keyword" },
{ "else", "keyword" },
{ "in", "keyword" },
{ "exports", "keyword" },
{ "char", "keyword2" },
{ "cdecl", "keyword" },
{ "function", "keyword" },
{ "default", "keyword" },
{ "register", "keyword" },
{ "eoln", "function" },
{ "comp", "keyword2" },
{ "extended", "keyword2" },
{ "not", "keyword" },
{ "const", "keyword" },
{ "local", "keyword" },
{ "cos", "function" },
{ "external", "keyword" },
{ "real", "keyword2" },
{ "inline", "keyword" },
{ "interface", "keyword" },
{ "is", "keyword" },
{ "end", "keyword" },
{ "private", "keyword" },
{ "resourcestring", "keyword" },
{ "property", "keyword" },
{ "index", "keyword" },
{ "library", "keyword" },
{ "procedure", "keyword" },
{ "program", "keyword" },
{ "ln", "function" },
{ "byte", "keyword2" },
{ "do", "keyword" },
{ "sin", "function" },
{ "resident", "keyword" },
{ "safecall", "keyword" },
{ "longint", "keyword2" },
{ "mod", "keyword" },
{ "final", "keyword" },
{ "public", "keyword" },
{ "destructor", "keyword" },
{ "chr", "function" },
{ "and", "keyword" },
{ "name", "keyword" },
{ "nil", "literal" },
{ "nodefault", "keyword" },
{ "odd", "function" },
{ "div", "keyword" },
{ "of", "keyword" },
{ "false", "literal" },
{ "smallint", "keyword2" },
{ "ord", "function" },
{ "overload", "keyword" },
{ "longbool", "keyword2" },
{ "sealed", "keyword" },
{ "currency", "keyword2" },
{ "package", "keyword" },
{ "packed", "keyword" },
{ "repeat", "keyword" },
{ "stored", "keyword" },
{ "platform", "keyword" },
{ "pointer", "keyword2" },
{ "pred", "function" },
{ "namespaces", "keyword" },
{ "published", "keyword" },
{ "raise", "keyword" },
{ "readonly", "keyword" },
{ "record", "keyword" },
{ "varargs", "keyword" },
{ "requires", "keyword" },
{ "cardinal", "keyword2" },
{ "on", "keyword" },
{ "round", "function" },
{ "self", "literal" },
{ "shr", "keyword" },
{ "protected", "keyword" },
{ "set", "keyword" },
{ "single", "keyword2" },
},
"//",
{}
} );
}
}}}} // namespace EE::UI::Doc::Language

View File

@@ -0,0 +1,10 @@
#ifndef EE_UI_DOC_Pascal
#define EE_UI_DOC_Pascal
namespace EE { namespace UI { namespace Doc { namespace Language {
extern void addPascal();
}}}}
#endif

View File

@@ -5,6 +5,8 @@
#include <eepp/system/packmanager.hpp>
#include <eepp/ui/doc/languages/hlsl.hpp>
#include <eepp/ui/doc/languages/htaccess.hpp>
#include <eepp/ui/doc/languages/objeck.hpp>
#include <eepp/ui/doc/languages/pascal.hpp>
#include <eepp/ui/doc/languages/pico-8.hpp>
#include <eepp/ui/doc/languages/postgresql.hpp>
#include <eepp/ui/doc/languages/x86assembly.hpp>
@@ -4145,8 +4147,10 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() {
addMeson();
addNelua();
addNim();
addObjeck();
addObjetiveC();
addOdin();
addPascal();
addPerl();
addPICO8();
addPHP();