From 10a2a9c68893ad516f61045d331593d3fa6ffd74 Mon Sep 17 00:00:00 2001 From: Curculigo Date: Mon, 31 Mar 2025 09:58:55 +0700 Subject: [PATCH] modula2 & modula3 (#100) * modula2 * modula2 * modula3 * Update languagessyntaxhighlighting.cpp * Update ecode.cpp * Update modula2.cpp * Update modula3.cpp --- .../src/eepp/ui/doc/languages/modula2.cpp | 103 +++++++++++++ .../src/eepp/ui/doc/languages/modula2.hpp | 10 ++ .../src/eepp/ui/doc/languages/modula3.cpp | 137 ++++++++++++++++++ .../src/eepp/ui/doc/languages/modula3.hpp | 10 ++ .../ui/doc/languagessyntaxhighlighting.cpp | 4 + src/tools/ecode/ecode.cpp | 2 +- 6 files changed, 265 insertions(+), 1 deletion(-) create mode 100644 src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.cpp create mode 100644 src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.hpp create mode 100644 src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.cpp create mode 100644 src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.hpp diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.cpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.cpp new file mode 100644 index 000000000..438c2f485 --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.cpp @@ -0,0 +1,103 @@ +#include +#include + +namespace EE { namespace UI { namespace Doc { namespace Language { + +void addModula2() { + + auto& sd = SyntaxDefinitionManager::instance()->add( + + { "Modula2", + { "%.def$", "%.mod$" }, + { + { { "\"", "\"", "\\" }, "string" }, + { { "%(%*", "%*%)" }, "comment" }, + { { "[%:%;%=%<%>%&%+%-%*%/%.%(%)]" }, "operator" }, + { { "-?%d+[%d%.eE_]*" }, "number" }, + { { "[%a_][%w_]*%f[(]" }, "function" }, + { { "[%a_][%w_]*" }, "normal" }, + + }, + { + { "ARRAY", "keyword" }, + { "BEGIN", "keyword" }, + { "BY", "keyword" }, + { "CASE", "keyword" }, + { "CONST", "keyword" }, + { "DEFINITION", "keyword" }, + { "DO", "keyword" }, + { "ELSE", "keyword" }, + { "ELSIF", "keyword" }, + { "END", "keyword" }, + { "EXCEPT", "keyword" }, + { "EXIT", "keyword" }, + { "EXPORT", "keyword" }, + { "FINALLY", "keyword" }, + { "FOR", "keyword" }, + { "FORWARD", "keyword" }, + { "FROM", "keyword" }, + { "IF", "keyword" }, + { "IMPLEMENTATION", "keyword" }, + { "IMPORT", "keyword" }, + { "IN", "keyword" }, + { "LOOP", "keyword" }, + { "MODULE", "keyword" }, + { "OF", "keyword" }, + { "PACKEDSET", "keyword" }, + { "POINTER", "keyword" }, + { "PROCEDURE", "keyword" }, + { "QUALIFIED", "keyword" }, + { "RECORD", "keyword" }, + { "REPEAT", "keyword" }, + { "RETRY", "keyword" }, + { "RETURN", "keyword" }, + { "SET", "keyword" }, + { "THEN", "keyword" }, + { "TO", "keyword" }, + { "TYPE", "keyword" }, + { "UNTIL", "keyword" }, + { "VAR", "keyword" }, + { "WHILE", "keyword" }, + { "WITH", "keyword" }, + { "ABS", "function" }, + { "ADR", "function" }, + { "ASH", "function" }, + { "AND", "function" }, + { "CAP", "function" }, + { "DEC", "function" }, + { "DISPOSE", "function" }, + { "DIV", "function" }, + { "EXCL", "function" }, + { "FLOAT", "function" }, + { "INC", "function" }, + { "INCL", "function" }, + { "HALT", "function" }, + { "HIGH", "function" }, + { "NEW", "function" }, + { "MOD", "function" }, + { "NOT", "function" }, + { "ODD", "function" }, + { "OR", "function" }, + { "PROC", "function" }, + { "ROUND", "function" }, + { "SIZE", "function" }, + { "TSIZE", "function" }, + { "BITSET", "keyword2" }, + { "BOOLEAN", "keyword2" }, + { "CARDINAL", "keyword2" }, + { "CHAR", "keyword2" }, + { "INTEGER", "keyword2" }, + { "REAL", "keyword2" }, + { "TRUE", "literal" }, + { "FALSE", "literal" }, + { "NIL", "literal" } + }, + "--", + {} + + } ); + + sd.setCaseInsensitive( true ); +} + +}}}} // namespace EE::UI::Doc::Language diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.hpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.hpp new file mode 100644 index 000000000..1128fb606 --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula2.hpp @@ -0,0 +1,10 @@ +#ifndef EE_UI_DOC_MODULA2 +#define EE_UI_DOC_MODULA2 + +namespace EE { namespace UI { namespace Doc { namespace Language { + +extern void addModula2(); + +}}}} + +#endif diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.cpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.cpp new file mode 100644 index 000000000..579286963 --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.cpp @@ -0,0 +1,137 @@ +#include +#include + +namespace EE { namespace UI { namespace Doc { namespace Language { + +void addModula3() { + + auto& sd = SyntaxDefinitionManager::instance()->add( + + { "Modula3", + { "%.m3$", "%.i3$", "%.mg$", "%.ig$" }, + { + { { "\"", "\"", "\\" }, "string" }, + { { "%(%*", "%*%)" }, "comment" }, + { { "<%*", "%*>" }, "comment" }, + { { "[%:%;%=%<%>%&%+%-%*%/%.%(%)]" }, "operator" }, + { { "-?%d+[%d%.eE_]*" }, "number" }, + { { "[%a_][%w_]*%f[(]" }, "function" }, + { { "[%a_][%w_]*" }, "normal" }, + + }, + { + { "AND", "keyword" }, + { "DO", "keyword" }, + { "FROM", "keyword" }, + { "NOT", "keyword" }, + { "REPEAT", "keyword" }, + { "UNTIL", "keyword" }, + { "ANY", "keyword" }, + { "ELSE", "keyword" }, + { "GENERIC", "keyword" }, + { "OBJECT", "keyword" }, + { "RETURN", "keyword" }, + { "UNTRACED", "keyword" }, + { "ARRAY", "keyword" }, + { "ELSIF", "keyword" }, + { "IF", "keyword" }, + { "OF", "keyword" }, + { "REVEAL", "keyword" }, + { "VALUE", "keyword" }, + { "AS", "keyword" }, + { "END", "keyword" }, + { "IMPORT", "keyword" }, + { "OR", "keyword" }, + { "ROOT", "keyword" }, + { "VAR", "keyword" }, + { "BEGIN", "keyword" }, + { "EVAL", "keyword" }, + { "IN", "keyword" }, + { "OVERRIDES", "keyword" }, + { "SET", "keyword" }, + { "WHILE", "keyword" }, + { "BITS", "keyword" }, + { "EXCEPT", "keyword" }, + { "INTERFACE", "keyword" }, + { "PROCEDURE", "keyword" }, + { "THEN", "keyword" }, + { "WITH", "keyword" }, + { "BRANDED", "keyword" }, + { "EXCEPTION", "keyword" }, + { "LOCK", "keyword" }, + { "RAISE", "keyword" }, + { "TO", "keyword" }, + { "BY", "keyword" }, + { "EXIT", "keyword" }, + { "LOOP", "keyword" }, + { "RAISES", "keyword" }, + { "TRY", "keyword" }, + { "CASE", "keyword" }, + { "EXPORTS", "keyword" }, + { "METHODS", "keyword" }, + { "READONLY", "keyword" }, + { "TYPE", "keyword" }, + { "CONST", "keyword" }, + { "FINALLY", "keyword" }, + { "MOD", "keyword" }, + { "RECORD", "keyword" }, + { "TYPECASE", "keyword" }, + { "DIV", "keyword" }, + { "FOR", "keyword" }, + { "MODULE", "keyword" }, + { "REF", "keyword" }, + { "UNSAFE", "keyword" }, + { "ABS", "function" }, + { "BYTESIZE", "function" }, + { "EXTENDED", "function" }, + { "MAX", "function" }, + { "SUBARRAY", "function" }, + { "ADDRESS", "function" }, + { "ISTYPE", "function" }, + { "MIN", "function" }, + { "NUMBER", "function" }, + { "TEXT", "function" }, + { "ADR", "function" }, + { "CEILING", "function" }, + { "FIRST", "function" }, + { "LAST", "function" }, + { "MUTEX", "function" }, + { "ORD", "function" }, + { "ADRSIZE", "function" }, + { "NARROW", "function" }, + { "TRUNC", "function" }, + { "BITSIZE", "function" }, + { "DEC", "function" }, + { "FLOOR", "function" }, + { "NEW", "function" }, + { "REFANY", "function" }, + { "TYPECODE", "function" }, + { "DISPOSE", "function" }, + { "INC", "function" }, + { "LOOPHOLE", "function" }, + { "VAL", "function" }, + { "BITSET", "keyword2" }, + { "BOOLEAN", "keyword2" }, + { "CARDINAL", "keyword2" }, + { "CHAR", "keyword2" }, + { "INTEGER", "keyword2" }, + { "REAL", "keyword2" }, + { "FLOAT", "keyword2" }, + { "LONGINT", "keyword2" }, + { "LONGREAL", "keyword2" }, + { "BOOLEAN", "keyword2" }, + { "WIDECHAR", "keyword2" }, + { "TRUE", "literal" }, + { "FALSE", "literal" }, + { "NIL", "literal" }, + { "NULL", "literal" } + }, + "--", + {} + + } ); + + sd.setCaseInsensitive( true ); +} + +}}}} // namespace EE::UI::Doc::Language diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.hpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.hpp new file mode 100644 index 000000000..e88fbdc97 --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/modula3.hpp @@ -0,0 +1,10 @@ +#ifndef EE_UI_DOC_MODULA3 +#define EE_UI_DOC_MODULA3 + +namespace EE { namespace UI { namespace Doc { namespace Language { + +extern void addModula3(); + +}}}} + +#endif diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp index ae8fa4f19..7db47d2fe 100644 --- a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp @@ -48,6 +48,8 @@ #include #include #include +#include +#include #include #include #include @@ -152,6 +154,8 @@ void LanguagesSyntaxHighlighting::load() { addLobster(); addMakefile(); addMeson(); + addModula2(); + addModula3(); addMoonscript(); addNelua(); addNim(); diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 3a00f28b6..8fd7aefba 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -3549,7 +3549,7 @@ void App::init( const LogLevel& logLevel, std::string file, const Float& pidelDe mThreadPool->run( [this] { // Load language definitions Clock defClock; - SyntaxDefinitionManager::createSingleton( 115 ); + SyntaxDefinitionManager::createSingleton( 117 ); Language::LanguagesSyntaxHighlighting::load(); SyntaxDefinitionManager::instance()->setLanguageExtensionsPriority( mConfig.languagesExtensions.priorities );