From c7c43e0afddf2af1bc40c3abbf8551da73136d2d Mon Sep 17 00:00:00 2001 From: Martino Ferrari Date: Mon, 23 Oct 2023 17:21:59 +0200 Subject: Added syntax for FreeFEM++, MARTe2 framework and CUE (#322) * added support to FreeFEM++ syntax * added support to MARTe2 Configuration language * updated with new language support * Update language_marte.lua * Update plugins/language_marte.lua Co-authored-by: Guldoman * added languages * fixed whitespace and new line * Added CUE syntax * reformatted * removed tabs * fixed issue with char * formatted and removed duplicated key * fixed lname and added structure identifier * removed lite-xl version * Update plugins/language_cue.lua Co-authored-by: Guldoman --------- Co-authored-by: Martino Ferrari Co-authored-by: Guldoman --- plugins/language_edp.lua | 645 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 645 insertions(+) create mode 100644 plugins/language_edp.lua (limited to 'plugins/language_edp.lua') diff --git a/plugins/language_edp.lua b/plugins/language_edp.lua new file mode 100644 index 0000000..0454288 --- /dev/null +++ b/plugins/language_edp.lua @@ -0,0 +1,645 @@ +-- mod-version:3 +local syntax = require "core.syntax" + +syntax.add { + name = "FreeFEM++", + files = { + "%.edp$", "%.ffp$" + }, + comment = "//", + block_comment = { "/*", "*/" }, + patterns = { + { pattern = "//.*", type = "comment" }, + { pattern = { "/%*", "%*/" }, type = "comment" }, + { pattern = { '"', '"', '\\' }, type = "string" }, + { pattern = "0x%x+[%x']*", type = "number" }, + { pattern = "%d+[%d%.'eE]*f?", type = "number" }, + { pattern = "%.?%d+[%d']*f?", type = "number" }, + { pattern = "[%+%-=/%*%^%%<>!~|:&]", type = "operator" }, + { pattern = "##", type = "operator" }, + { pattern = "struct%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + { pattern = "class%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + { pattern = "union%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + { pattern = "namespace%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + -- static declarations + { + pattern = "static()%s+()inline", + type = { "keyword", "normal", "keyword" } + }, + { + pattern = "static()%s+()const", + type = { "keyword", "normal", "keyword" } + }, + { + pattern = "static()%s+()[%a_][%w_]*", + type = { "keyword", "normal", "literal" } + }, + -- match method type declarations + { + pattern = "[%a_][%w_]*()%s*()%**()%s*()[%a_][%w_]*()%s*()::", + type = { + "literal", "normal", "operator", "normal", + "literal", "normal", "operator" + } + }, + -- match function type declarations + { + pattern = "[%a_][%w_]*()%*+()%s+()[%a_][%w_]*%f[%(]", + type = { "literal", "operator", "normal", "function" } + }, + { + pattern = "[%a_][%w_]*()%s+()%*+()[%a_][%w_]*%f[%(]", + type = { "literal", "normal", "operator", "function" } + }, + { + pattern = "[%a_][%w_]*()%s+()[%a_][%w_]*%f[%(]", + type = { "literal", "normal", "function" } + }, + -- match variable type declarations + { + pattern = "[%a_][%w_]*()%*+()%s+()[%a_][%w_]*", + type = { "literal", "operator", "normal", "normal" } + }, + { + pattern = "[%a_][%w_]*()%s+()%*+()[%a_][%w_]*", + type = { "literal", "normal", "operator", "normal" } + }, + { + pattern = "[%a_][%w_]*()%s+()[%a_][%w_]*()%s*()[;,%[%)]", + type = { "literal", "normal", "normal", "normal", "normal" } + }, + { + pattern = "[%a_][%w_]*()%s+()[%a_][%w_]*()%s*()=", + type = { "literal", "normal", "normal", "normal", "operator" } + }, + { + pattern = "[%a_][%w_]*()&()%s+()[%a_][%w_]*", + type = { "literal", "operator", "normal", "normal" } + }, + { + pattern = "[%a_][%w_]*()%s+()&()[%a_][%w_]*", + type = { "literal", "normal", "operator", "normal" } + }, + -- Match scope operator element access + { + pattern = "[%a_][%w_]*()%s*()::", + type = { "literal", "normal", "operator" } + }, + -- Uppercase constants of at least 2 chars in len + { + pattern = "_?%u[%u_][%u%d_]*%f[%s%+%*%-%.%)%]}%?%^%%=/<>~|&;:,!]", + type = "number" + }, + -- Magic constants + { pattern = "__[%u%l]+__", type = "number" }, + -- all other functions + { pattern = "[%a_][%w_]*%f[(]", type = "function" }, + -- Macros + { + pattern = "^%s*#%s*define%s+()[%a_][%a%d_]*", + type = { "keyword", "symbol" } + }, + { + pattern = "#%s*include%s+()<.->", + type = { "keyword", "string" } + }, + { pattern = "%f[#]#%s*[%a_][%w_]*", type = "keyword" }, + -- Everything else to make the tokenizer work properly + { pattern = "[%a_][%w_]*", type = "symbol" }, + }, + symbols = { + ["alignof"] = "keyword", + ["alignas"] = "keyword", + ["and"] = "keyword", + ["and_eq"] = "keyword", + ["not"] = "keyword", + ["not_eq"] = "keyword", + ["or"] = "keyword", + ["or_eq"] = "keyword", + ["xor"] = "keyword", + ["xor_eq"] = "keyword", + ["private"] = "keyword", + ["protected"] = "keyword", + ["public"] = "keyword", + ["register"] = "keyword", + ["nullptr"] = "keyword", + ["operator"] = "keyword", + ["asm"] = "keyword", + ["bitand"] = "keyword", + ["bitor"] = "keyword", + ["catch"] = "keyword", + ["throw"] = "keyword", + ["try"] = "keyword", + ["class"] = "keyword", + ["compl"] = "keyword", + ["explicit"] = "keyword", + ["export"] = "keyword", + ["concept"] = "keyword", + ["consteval"] = "keyword", + ["constexpr"] = "keyword", + ["constinit"] = "keyword", + ["const_cast"] = "keyword", + ["dynamic_cast"] = "keyword", + ["reinterpret_cast"] = "keyword", + ["static_cast"] = "keyword", + ["static_assert"] = "keyword", + ["template"] = "keyword", + ["this"] = "keyword", + ["thread_local"] = "keyword", + ["requires"] = "keyword", + ["co_wait"] = "keyword", + ["co_return"] = "keyword", + ["co_yield"] = "keyword", + ["decltype"] = "keyword", + ["delete"] = "keyword", + ["friend"] = "keyword", + ["typeid"] = "keyword", + ["typename"] = "keyword", + ["mutable"] = "keyword", + ["override"] = "keyword", + ["virtual"] = "keyword", + ["using"] = "keyword", + ["namespace"] = "keyword", + ["new"] = "keyword", + ["noexcept"] = "keyword", + ["if"] = "keyword", + ["then"] = "keyword", + ["else"] = "keyword", + ["elseif"] = "keyword", + ["do"] = "keyword", + ["while"] = "keyword", + ["for"] = "keyword", + ["break"] = "keyword", + ["continue"] = "keyword", + ["return"] = "keyword", + ["goto"] = "keyword", + ["struct"] = "keyword", + ["union"] = "keyword", + ["typedef"] = "keyword", + ["enum"] = "keyword", + ["extern"] = "keyword", + ["static"] = "keyword", + ["volatile"] = "keyword", + ["const"] = "keyword", + ["inline"] = "keyword", + ["case"] = "keyword", + ["default"] = "keyword", + ["auto"] = "keyword", + ["void"] = "keyword2", + ["int"] = "keyword2", + ["short"] = "keyword2", + ["long"] = "keyword2", + ["float"] = "keyword2", + ["double"] = "keyword2", + ["char"] = "keyword2", + ["unsigned"] = "keyword2", + ["bool"] = "keyword2", + ["true"] = "literal", + ["false"] = "literal", + ["NULL"] = "literal", + ["wchar_t"] = "keyword2", + ["char8_t"] = "keyword2", + ["char16_t"] = "keyword2", + ["char32_t"] = "keyword2", + ["#include"] = "keyword", + ["#if"] = "keyword", + ["#ifdef"] = "keyword", + ["#ifndef"] = "keyword", + ["#elif"] = "keyword", + ["#else"] = "keyword", + ["#elseif"] = "keyword", + ["#endif"] = "keyword", + ["#define"] = "keyword", + ["#warning"] = "keyword", + ["#error"] = "keyword", + ["#pragma"] = "keyword", + ["end"] = "keyword", + ["element"] = "keyword", + ["label"] = "keyword", + ["measure"] = "keyword", + ["mesure"] = "keyword", + ["Element"] = "keyword", + ["whoinElement"] = "keyword", + ["region"] = "keyword", + ["R3"] = "keyword", + ["vertex"] = "keyword", + ["im"] = "keyword", + ["l1"] = "keyword", + ["l2"] = "keyword", + ["linfty"] = "keyword", + ["max"] = "keyword", + ["min"] = "keyword", + ["re"] = "keyword", + ["sum"] = "keyword", + ["quantile"] = "keyword", + ["sort"] = "keyword", + ["x"] = "keyword", + ["y"] = "keyword", + ["z"] = "keyword", + ["length"] = "keyword", + ["area"] = "keyword", + ["coef"] = "keyword", + ["diag"] = "keyword", + ["m"] = "keyword", + ["n"] = "keyword", + ["nbcoef"] = "keyword", + ["nnz"] = "keyword", + ["resize"] = "keyword", + ["size"] = "keyword", + ["imax"] = "keyword", + ["imin"] = "keyword", + ["N"] = "keyword", + ["P"] = "keyword", + ["nuTriangle"] = "keyword", + ["ndof"] = "keyword", + ["ndofK"] = "keyword", + ["nt"] = "keyword", + ["be"] = "keyword", + ["hmax"] = "keyword", + ["hmin"] = "keyword", + ["nbe"] = "keyword", + ["nv"] = "keyword", + ["bordermesure"] = "keyword", + ["eof"] = "keyword", + ["good"] = "keyword", + ["fixed"] = "keyword", + ["flush"] = "keyword", + ["noshowbase"] = "keyword", + ["noshowpos"] = "keyword", + ["precision"] = "keyword", + ["scientific"] = "keyword", + ["seekp"] = "keyword", + ["showbase"] = "keyword", + ["showpos"] = "keyword", + ["tellp"] = "keyword", + ["ARGV"] = "keyword", + ["CG"] = "keyword", + ["CPUTime"] = "keyword", + ["Cholesky"] = "keyword", + ["Cofactor"] = "keyword", + ["Crout"] = "keyword", + ["Edge03d"] = "keyword", + ["GMRES"] = "keyword", + ["HaveUMFPACK"] = "keyword", + ["LU"] = "keyword", + ["NaN"] = "keyword", + ["P0"] = "keyword", + ["P03d"] = "keyword", + ["P0VF"] = "keyword", + ["P0edge"] = "keyword", + ["P1"] = "keyword", + ["P13d"] = "keyword", + ["P1b"] = "keyword", + ["P1b3d"] = "keyword", + ["P1dc"] = "keyword", + ["P1nc"] = "keyword", + ["P2"] = "keyword", + ["P23d"] = "keyword", + ["P2b"] = "keyword", + ["P2dc"] = "keyword", + ["P2h"] = "keyword", + ["RT0"] = "keyword", + ["RT03d"] = "keyword", + ["RT0Ortho"] = "keyword", + ["RTmodif"] = "keyword", + ["UMFPACK"] = "keyword", + ["append"] = "keyword", + ["binary"] = "keyword", + ["hTriangle"] = "keyword", + ["havesparsesolver"] = "keyword", + ["inside"] = "keyword", + ["lenEdge"] = "keyword", + ["nTonEdge"] = "keyword", + ["nuEdge"] = "keyword", + ["pi"] = "keyword", + ["qf1pE"] = "keyword", + ["qf1pElump"] = "keyword", + ["qf1pT"] = "keyword", + ["qf1pTlump"] = "keyword", + ["qf2pE"] = "keyword", + ["qf2pT"] = "keyword", + ["qf2pT4P1"] = "keyword", + ["qf3pE"] = "keyword", + ["qf4pE"] = "keyword", + ["qf5pE"] = "keyword", + ["qf5pT"] = "keyword", + ["qf7pT"] = "keyword", + ["qf9pT"] = "keyword", + ["qfV1"] = "keyword", + ["qfV1lump"] = "keyword", + ["qfV2"] = "keyword", + ["qfV5"] = "keyword", + ["searchMethod"] = "keyword", + ["sparsesolver"] = "keyword", + ["sparsesolverSym"] = "keyword", + ["storagetotal"] = "keyword", + ["storageused"] = "keyword", + ["verbosity"] = "keyword", + ["version"] = "keyword", + ["volume"] = "keyword", + ["volumelevelset"] = "keyword", + ["wait"] = "keyword", + ["ShowAlloc"] = "keyword", + ["Newton"] = "keyword", + ["NoGraphicWindow"] = "keyword", + ["NoUseOfWait"] = "keyword", + ["SameMesh"] = "keyword", + ["Unique"] = "keyword", + ["arealevelset"] = "keyword", + ["average"] = "keyword", + ["chtmpdir"] = "keyword", + ["time"] = "keyword", + ["fill"] = "keyword", + ["value"] = "keyword", + ["nbiso"] = "keyword", + ["coeff"] = "keyword", + ["dataname"] = "keyword", + ["order"] = "keyword", + ["mpirank"] = "keyword", + ["mpiCommWorld"] = "keyword", + ["mpiGroup"] = "keyword", + ["mpiRequest"] = "keyword", + ["sparams"] = "keyword", + ["mpisize"] = "keyword", + ["mpiUndefined"] = "keyword", + ["mpiAnySource"] = "keyword", + ["communicator"] = "keyword", + ["worker"] = "keyword", + ["dim"] = "keyword", + ["cmm"] = "keyword", + ["solver"] = "keyword", + ["aniso"] = "keyword", + ["nbvx"] = "keyword", + ["abserror"] = "keyword", + ["anisomax"] = "keyword", + ["cutoff"] = "keyword", + ["err"] = "keyword", + ["errg"] = "keyword", + ["inquire"] = "keyword", + ["IsMetric"] = "keyword", + ["iso"] = "keyword", + ["keepbackvertices"] = "keyword", + ["maxsubdiv"] = "keyword", + ["metric"] = "keyword", + ["nbjacoby"] = "keyword", + ["nbsmooth"] = "keyword", + ["nomeshgeneration"] = "keyword", + ["omega"] = "keyword", + ["periodic"] = "keyword", + ["powerin"] = "keyword", + ["ratio"] = "keyword", + ["rescaling"] = "keyword", + ["splitin2"] = "keyword", + ["splitpbedge"] = "keyword", + ["thetamax"] = "keyword", + ["uniform"] = "keyword", + ["fixedborder"] = "keyword", + ["flags"] = "keyword", + ["ivalue"] = "keyword", + ["maxit"] = "keyword", + ["mode"] = "keyword", + ["ncv"] = "keyword", + ["nev"] = "keyword", + ["rawvector"] = "keyword", + ["sigma"] = "keyword", + ["sym"] = "keyword", + ["tol"] = "keyword", + ["vector"] = "keyword", + ["which"] = "keyword", + ["op"] = "keyword", + ["t"] = "keyword", + ["eps"] = "keyword", + ["nbiter"] = "keyword", + ["precon"] = "keyword", + ["veps"] = "keyword", + ["tgv"] = "keyword", + ["tolpivot"] = "keyword", + ["meditff"] = "keyword", + ["save"] = "keyword", + ["orientation"] = "keyword", + ["ptmerge"] = "keyword", + ["transfo"] = "keyword", + ["optimize"] = "keyword", + ["aspectratio"] = "keyword", + ["bb"] = "keyword", + ["boundary"] = "keyword", + ["bw"] = "keyword", + ["cut"] = "keyword", + ["grey"] = "keyword", + ["hsv"] = "keyword", + ["nbarrow"] = "keyword", + ["ps"] = "keyword", + ["varrow"] = "keyword", + ["viso"] = "keyword", + ["init"] = "keyword", + ["strategy"] = "keyword", + ["tolpivotsym"] = "keyword", + ["facetcl"] = "keyword", + ["holelist"] = "keyword", + ["nboffacetcl"] = "keyword", + ["nbofregions"] = "keyword", + ["regionlist"] = "keyword", + ["switch"] = "keyword", + ["refface"] = "keyword", + ["split"] = "keyword", + ["zbound"] = "keyword", + ["labeldown"] = "keyword", + ["labelmid"] = "keyword", + ["labelup"] = "keyword", + ["opt"] = "keyword", + ["mpiMAX"] = "keyword", + ["mpiMIN"] = "keyword", + ["mpiSUM"] = "keyword", + ["mpiPROD"] = "keyword", + ["mpiLAND"] = "keyword", + ["mpiLOR"] = "keyword", + ["mpiLXOR"] = "keyword", + ["mpiBAND"] = "keyword", + ["mpiBXOR"] = "keyword", + ["border"] = "keyword2", + ["Cmapmatrix"] = "keyword2", + ["Cmatrix"] = "keyword2", + ["complex"] = "keyword2", + ["fespace"] = "keyword2", + ["func"] = "keyword2", + ["ifstream"] = "keyword2", + ["mapmatrix"] = "keyword2", + ["matrix"] = "keyword2", + ["mesh"] = "keyword2", + ["mesh3"] = "keyword2", + ["ofstream"] = "keyword2", + ["problem"] = "keyword2", + ["real"] = "keyword2", + ["solve"] = "keyword2", + ["string"] = "keyword2", + ["varf"] = "keyword2", + ["macro"] = "keyword2", + ["dmatrix"] = "keyword2", + ["adj"] = "function", + ["find"] = "function", + ["rfind"] = "function", + ["seekg"] = "function", + ["tellg"] = "function", + ["AddLayers"] = "function", + ["AffineCG"] = "function", + ["AffineGMRES"] = "function", + ["BFGS"] = "function", + ["EigenValue"] = "function", + ["LinearCG"] = "function", + ["LinearGMRES"] = "function", + ["NLCG"] = "function", + ["abs"] = "function", + ["acos"] = "function", + ["acosh"] = "function", + ["adaptmesh"] = "function", + ["arg"] = "function", + ["asin"] = "function", + ["asinh"] = "function", + ["assert"] = "function", + ["atan"] = "function", + ["atan2"] = "function", + ["atanh"] = "function", + ["atof"] = "function", + ["atoi"] = "function", + ["boundingbox"] = "function", + ["buildmesh"] = "function", + ["buildmeshborder"] = "function", + ["ceil"] = "function", + ["change"] = "function", + ["checkmovemesh"] = "function", + ["clock"] = "function", + ["complexEigenValue"] = "function", + ["conj"] = "function", + ["convect"] = "function", + ["cos"] = "function", + ["cosh"] = "function", + ["defaultoUMFPACK"] = "function", + ["defaultsolver"] = "function", + ["defaulttoCG"] = "function", + ["defaulttoGMRES"] = "function", + ["defaulttoUMFPACK"] = "function", + ["det"] = "function", + ["dumptable"] = "function", + ["dx"] = "function", + ["dxx"] = "function", + ["dxy"] = "function", + ["dxz"] = "function", + ["dy"] = "function", + ["dyx"] = "function", + ["dyy"] = "function", + ["dyz"] = "function", + ["dz"] = "function", + ["dzx"] = "function", + ["dzy"] = "function", + ["dzz"] = "function", + ["emptymesh"] = "function", + ["erf"] = "function", + ["erfc"] = "function", + ["exec"] = "function", + ["exit"] = "function", + ["exp"] = "function", + ["floor"] = "function", + ["getline"] = "function", + ["hypot"] = "function", + ["imag"] = "function", + ["int1d"] = "function", + ["int2d"] = "function", + ["int3d"] = "function", + ["intallVFedges"] = "function", + ["intalledges"] = "function", + ["intallfaces"] = "function", + ["interplotematrix"] = "function", + ["interpolate"] = "function", + ["isInf"] = "function", + ["isNaN"] = "function", + ["isNormal"] = "function", + ["j0"] = "function", + ["j1"] = "function", + ["jn"] = "function", + ["jump"] = "function", + ["lgamma"] = "function", + ["log"] = "function", + ["log10"] = "function", + ["lrint"] = "function", + ["lround"] = "function", + ["ltime"] = "function", + ["mean"] = "function", + ["movemesh"] = "function", + ["newconvect"] = "function", + ["norm"] = "function", + ["on"] = "function", + ["otherside"] = "function", + ["plot"] = "function", + ["polar"] = "function", + ["pow"] = "function", + ["randinit"] = "function", + ["randint31"] = "function", + ["randint32"] = "function", + ["randreal1"] = "function", + ["randreal2"] = "function", + ["randreal3"] = "function", + ["randres53"] = "function", + ["readmesh"] = "function", + ["readmesh3"] = "function", + ["renumbering"] = "function", + ["restrict"] = "function", + ["rint"] = "function", + ["round"] = "function", + ["savemesh"] = "function", + ["savesurfacemesh"] = "function", + ["set"] = "function", + ["setw"] = "function", + ["showCPU"] = "function", + ["sin"] = "function", + ["sinh"] = "function", + ["splitmesh"] = "function", + ["sqr"] = "function", + ["sqrt"] = "function", + ["square"] = "function", + ["system"] = "function", + ["tan"] = "function", + ["tanh"] = "function", + ["tgamma"] = "function", + ["toCarray"] = "function", + ["toRarray"] = "function", + ["toZarray"] = "function", + ["trace"] = "function", + ["triangulate"] = "function", + ["trunc"] = "function", + ["y0"] = "function", + ["y1"] = "function", + ["yn"] = "function", + ["savevtk"] = "function", + ["mshmet"] = "function", + ["savesol"] = "function", + ["gmshload"] = "function", + ["gmshload3"] = "function", + ["mpiBarrier"] = "function", + ["mpiSize"] = "function", + ["Irecv"] = "function", + ["Isend"] = "function", + ["processor"] = "function", + ["mpiWaitAny"] = "function", + ["mpiWait"] = "function", + ["mpiRank"] = "function", + ["metis"] = "function", + ["metisdual"] = "function", + ["broadcast"] = "function", + ["scotch"] = "function", + ["parmetis"] = "function", + ["mpiWtime"] = "function", + ["buildlayers"] = "function", + ["mmg3d"] = "function", + ["processorblock"] = "function", + ["mpiWaitAll"] = "function", + ["mpiWtick"] = "function", + ["Send"] = "function", + ["Recv"] = "function", + ["mpiAlltoall"] = "function", + ["mpiGather"] = "function", + ["mpiScatter"] = "function", + ["mpiReduce"] = "function", + ["mpiAllReduce"] = "function", + ["mpiReduceScatter"] = "function", + }, +} -- cgit v1.2.3