modula2 & modula3 (#100)

* modula2

* modula2

* modula3

* Update languagessyntaxhighlighting.cpp

* Update ecode.cpp

* Update modula2.cpp

* Update modula3.cpp
This commit is contained in:
Curculigo
2025-03-31 09:58:55 +07:00
committed by GitHub
parent e07546a802
commit 10a2a9c688
6 changed files with 265 additions and 1 deletions

View File

@@ -0,0 +1,103 @@
#include <eepp/ui/doc/languages/modula2.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
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

View File

@@ -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

View File

@@ -0,0 +1,137 @@
#include <eepp/ui/doc/languages/modula3.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
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

View File

@@ -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

View File

@@ -48,6 +48,8 @@
#include <eepp/ui/doc/languages/lobster.hpp>
#include <eepp/ui/doc/languages/makefile.hpp>
#include <eepp/ui/doc/languages/meson.hpp>
#include <eepp/ui/doc/languages/modula2.hpp>
#include <eepp/ui/doc/languages/modula3.hpp>
#include <eepp/ui/doc/languages/moonscript.hpp>
#include <eepp/ui/doc/languages/nelua.hpp>
#include <eepp/ui/doc/languages/nim.hpp>
@@ -152,6 +154,8 @@ void LanguagesSyntaxHighlighting::load() {
addLobster();
addMakefile();
addMeson();
addModula2();
addModula3();
addMoonscript();
addNelua();
addNim();