-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlistingFreeFem.sty
170 lines (166 loc) · 11.1 KB
/
listingFreeFem.sty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
%% LaTeX format
\NeedsTeXFormat{LaTeX2e}
%% Package name
\ProvidesPackage{listingFreeFem}[2019/01/31, Listings extension for FreeFem++ language, v0.1]
%% Packages
\RequirePackage{listings}
\RequirePackage{xcolor}
%% Highlight colors
\definecolor{preprocessorColor}{rgb}{0.3, 0.3, 0.3}
\definecolor{keywordsColor}{rgb}{0.58, 0, 0.83}
\definecolor{reservedColor}{rgb}{0.7, 0.13, 0.13}
\definecolor{builtinsColor}{rgb}{0.12, 0.46, 1.}
\definecolor{builtinParametersColor}{rgb}{0.29, 0, 0.51}
\definecolor{commentsColor}{rgb}{0.5, 0.5, 0.5}
\definecolor{stringsColor}{rgb}{0.13, 0.55, 0.13}
%% FreeFem++ language
\lstdefinelanguage{FreeFem}{%
keywords=[1]{
%% PREPROCESSOR
load, include, ENDIFMACRO, IFMACRO,
},
keywords=[2]{
%% KEYWORDS
bool, border, complex, dmatrix,
fespace, func, gslspline, ifstream,
int, macro, matrix, mesh, mesh3, mpiComm,
mpiGroup, mpiRequest, NewMacro, EndMacro,
ofstream, Pmmap, problem, Psemaphore,
real, solve, string, varf,
},
keywords=[3] {
%% RESERVED
BDM1, BDM1Ortho, Edge03d,
Edge13d, Edge23d, FEQF, HCT,
P0, P03d, P0Edge, P1, P13d, P1b,
P1b3d, P1bl, P1bl3d, P1dc, P1Edge,
P1nc, P2, P23d, P2b, P2BR, P2dc,
P2Edge, P2h, P2Morley, P2pnc,
P3, P3dc, P3Edge, P4, P4dc, P4Edge,
P5Edge, RT0, RT03d, RT0Ortho, RT1,
RT1Ortho, RT2, RT2Ortho,
qf1pE, qf1pElump, qf1pT, qf1pTlump,
qfV1, qfV1lump, qf2pE, qf2pT, qf2pT4P1,
qfV2, qf3pE, qf4pE, qf5pE, qf5pT, qfV5,
qf7pT, qf9pT, qfnbpE,
ARGV, append, area, be, binary, BoundaryEdge, bordermeasure,
CG, Cholesky, cin, cout, Crout, default, diag, edgeOrientation,
endl, FILE, fixed, GMRES, good, hTriangle, im, imax, imin, InternalEdge,
l1, l2, label, lenEdge, length, LINE, linfty, LU, m, max, measure, min,
mpiAnySource, mpiBAND, mpiBXOR, mpiCommWorld, mpiLAND, mpiLOR,
mpiLXOR, mpiMAX, mpiMIN, mpiPROD, mpirank, mpisize, mpiSUM, mpiUndefined,
n, N, nbe, ndof, ndofK, noshowbase, noshowpos, notaregion, nt, nTonEdge,
nuEdge, nuTriangle, nv, P, pi, precision, quantile, re, region,
scientific, searchMethod, setw, showbase, showpos, sparsesolver,
sum, tellp, true, UMFPACK, unused, whoinElement, verbosity, version,
volume, x, y, z,
},
keywords=[4]{
%% BUILTINS
abs, acos, acosh, adaptmesh, adj, AffineCG, AffineGMRES, arg, asin, asinh, assert, atan, atan2, atanh, atof, atoi,
BFGS, broadcast, buildlayers, buildmesh,
ceil, chi, complexEigenValue, copysign, change, checkmovemesh, clock, cmaes, conj, convect, cos, cosh, cube,
d, dd, dfft, diffnp, diffpos, dimKrylov, dist, dumptable, dx, dxx, dxy, dxz, dy, dyx, dyy, dyz, dz, dzx, dzy, dzz,
EigenValue, emptymesh, erf, erfc, exec, exit, exp,
fdim, ffind, find, floor, flush, fmax, fmin, fmod, freeyams,
getARGV, getline, gmshload, gmshload3,
gslcdfugaussianP, gslcdfugaussianQ, gslcdfugaussianPinv, gslcdfugaussianQinv, gslcdfgaussianP, gslcdfgaussianQ,
gslcdfgaussianPinv, gslcdfgaussianQinv, gslcdfgammaP, gslcdfgammaQ, gslcdfgammaPinv, gslcdfgammaQinv, gslcdfcauchyP,
gslcdfcauchyQ, gslcdfcauchyPinv, gslcdfcauchyQinv, gslcdflaplaceP, gslcdflaplaceQ, gslcdflaplacePinv, gslcdflaplaceQinv,
gslcdfrayleighP, gslcdfrayleighQ, gslcdfrayleighPinv, gslcdfrayleighQinv, gslcdfchisqP, gslcdfchisqQ, gslcdfchisqPinv,
gslcdfchisqQinv, gslcdfexponentialP, gslcdfexponentialQ, gslcdfexponentialPinv, gslcdfexponentialQinv, gslcdfexppowP,
gslcdfexppowQ, gslcdftdistP, gslcdftdistQ, gslcdftdistPinv, gslcdftdistQinv, gslcdffdistP, gslcdffdistQ, gslcdffdistPinv,
gslcdffdistQinv, gslcdfbetaP, gslcdfbetaQ, gslcdfbetaPinv, gslcdfbetaQinv, gslcdfflatP, gslcdfflatQ, gslcdfflatPinv, gslcdfflatQinv,
gslcdflognormalP, gslcdflognormalQ, gslcdflognormalPinv, gslcdflognormalQinv, gslcdfgumbel1P, gslcdfgumbel1Q, gslcdfgumbel1Pinv,
gslcdfgumbel1Qinv, gslcdfgumbel2P, gslcdfgumbel2Q, gslcdfgumbel2Pinv, gslcdfgumbel2Qinv, gslcdfweibullP, gslcdfweibullQ,
gslcdfweibullPinv, gslcdfweibullQinv, gslcdfparetoP, gslcdfparetoQ, gslcdfparetoPinv, gslcdfparetoQinv, gslcdflogisticP,
gslcdflogisticQ, gslcdflogisticPinv, gslcdflogisticQinv, gslcdfbinomialP, gslcdfbinomialQ, gslcdfpoissonP, gslcdfpoissonQ,
gslcdfgeometricP, gslcdfgeometricQ, gslcdfnegativebinomialP, gslcdfnegativebinomialQ, gslcdfpascalP, gslcdfpascalQ,
gslinterpakima, gslinterpakimaperiodic, gslinterpcsplineperiodic, gslinterpcspline, gslinterpsteffen, gslinterplinear,
gslinterppolynomial, gslranbernoullipdf, gslranbeta, gslranbetapdf, gslranbinomialpdf, gslranexponential, gslranexponentialpdf,
gslranexppow, gslranexppowpdf, gslrancauchy, gslrancauchypdf, gslranchisq, gslranchisqpdf, gslranerlang, gslranerlangpdf,
gslranfdist, gslranfdistpdf, gslranflat, gslranflatpdf, gslrangamma, gslrangammaint, gslrangammapdf, gslrangammamt,
gslrangammaknuth, gslrangaussian, gslrangaussianratiomethod, gslrangaussianziggurat, gslrangaussianpdf, gslranugaussian,
gslranugaussianratiomethod, gslranugaussianpdf, gslrangaussiantail, gslrangaussiantailpdf, gslranugaussiantail,
gslranugaussiantailpdf, gslranlandau, gslranlandaupdf, gslrangeometricpdf, gslrangumbel1, gslrangumbel1pdf, gslrangumbel2,
gslrangumbel2pdf, gslranlogistic, gslranlogisticpdf, gslranlognormal, gslranlognormalpdf, gslranlogarithmicpdf,
gslrannegativebinomialpdf, gslranpascalpdf, gslranpareto, gslranparetopdf, gslranpoissonpdf, gslranrayleigh,
gslranrayleighpdf, gslranrayleightail, gslranrayleightailpdf, gslrantdist, gslrantdistpdf, gslranlaplace, gslranlaplacepdf,
gslranlevy, gslranweibull, gslranweibullpdf, gslsfairyAi, gslsfairyBi, gslsfairyAiscaled, gslsfairyBiscaled,
gslsfairyAideriv, gslsfairyBideriv, gslsfairyAiderivscaled, gslsfairyBiderivscaled, gslsfairyzeroAi, gslsfairyzeroBi,
gslsfairyzeroAideriv, gslsfairyzeroBideriv, gslsfbesselJ0, gslsfbesselJ1, gslsfbesselJn, gslsfbesselY0, gslsfbesselY1,
gslsfbesselYn, gslsfbesselI0, gslsfbesselI1, gslsfbesselIn, gslsfbesselI0scaled, gslsfbesselI1scaled, gslsfbesselInscaled,
gslsfbesselK0, gslsfbesselK1, gslsfbesselKn, gslsfbesselK0scaled, gslsfbesselK1scaled, gslsfbesselKnscaled, gslsfbesselj0,
gslsfbesselj1, gslsfbesselj2, gslsfbesseljl, gslsfbessely0, gslsfbessely1, gslsfbessely2, gslsfbesselyl, gslsfbesseli0scaled,
gslsfbesseli1scaled, gslsfbesseli2scaled, gslsfbesselilscaled, gslsfbesselk0scaled, gslsfbesselk1scaled, gslsfbesselk2scaled,
gslsfbesselklscaled, gslsfbesselJnu, gslsfbesselYnu, gslsfbesselInuscaled, gslsfbesselInu, gslsfbesselKnuscaled, gslsfbesselKnu,
gslsfbessellnKnu, gslsfbesselzeroJ0, gslsfbesselzeroJ1, gslsfbesselzeroJnu, gslsfclausen, gslsfhydrogenicR1, gslsfdawson,
gslsfdebye1, gslsfdebye2, gslsfdebye3, gslsfdebye4, gslsfdebye5, gslsfdebye6, gslsfdilog, gslsfmultiply, gslsfellintKcomp,
gslsfellintEcomp, gslsfellintPcomp, gslsfellintDcomp, gslsfellintF, gslsfellintE, gslsfellintRC, gslsferfc, gslsflogerfc, gslsferf,
gslsferfZ, gslsferfQ, gslsfhazard, gslsfexp, gslsfexpmult, gslsfexpm1, gslsfexprel, gslsfexprel2, gslsfexpreln, gslsfexpintE1,
gslsfexpintE2, gslsfexpintEn, gslsfexpintE1scaled, gslsfexpintE2scaled, gslsfexpintEnscaled, gslsfexpintEi, gslsfexpintEiscaled,
gslsfShi, gslsfChi, gslsfexpint3, gslsfSi, gslsfCi, gslsfatanint, gslsffermidiracm1, gslsffermidirac0, gslsffermidirac1,
gslsffermidirac2, gslsffermidiracint, gslsffermidiracmhalf, gslsffermidirachalf, gslsffermidirac3half, gslsffermidiracinc0,
gslsflngamma, gslsfgamma, gslsfgammastar, gslsfgammainv, gslsftaylorcoeff, gslsffact, gslsfdoublefact, gslsflnfact, gslsflndoublefact,
gslsflnchoose, gslsfchoose, gslsflnpoch, gslsfpoch, gslsfpochrel, gslsfgammaincQ, gslsfgammaincP, gslsfgammainc, gslsflnbeta,
gslsfbeta, gslsfbetainc, gslsfgegenpoly1, gslsfgegenpoly2, gslsfgegenpoly3, gslsfgegenpolyn, gslsfhyperg0F1, gslsfhyperg1F1int,
gslsfhyperg1F1, gslsfhypergUint, gslsfhypergU, gslsfhyperg2F0, gslsflaguerre1, gslsflaguerre2, gslsflaguerre3, gslsflaguerren,
gslsflambertW0, gslsflambertWm1, gslsflegendrePl, gslsflegendreP1, gslsflegendreP2, gslsflegendreP3, gslsflegendreQ0, gslsflegendreQ1,
gslsflegendreQl, gslsflegendrePlm, gslsflegendresphPlm, gslsflegendrearraysize, gslsfconicalPhalf, gslsfconicalPmhalf, gslsfconicalP0,
gslsfconicalP1, gslsfconicalPsphreg, gslsfconicalPcylreg, gslsflegendreH3d0, gslsflegendreH3d1, gslsflegendreH3d, gslsflog, gslsflogabs,
gslsflog1plusx, gslsflog1plusxmx, gslsfpowint, gslsfpsiint, gslsfpsi, gslsfpsi1piy, gslsfpsi1int, gslsfpsi1, gslsfpsin,
gslsfsynchrotron1, gslsfsynchrotron2, gslsftransport2, gslsftransport3, gslsftransport4, gslsftransport5, gslsfsin, gslsfcos,
gslsfhypot, gslsfsinc, gslsflnsinh, gslsflncosh, gslsfanglerestrictsymm, gslsfanglerestrictpos, gslsfzetaint, gslsfzeta, gslsfzetam1,
gslsfzetam1int, gslsfhzeta, gslsfetaint, gslsfeta,
imag, int1d, int2d, int3d, intalledges, intallfaces, interpolate, invdiff, invdiffnp, invdiffpos, Isend, isInf, isNaN, isoline, Irecv,
j0, j1, jn, jump,
lgamma, LinearCG, LinearGMRES, log, log10, lrint, lround,
max, mean, medit, min, mmg3d, movemesh, movemesh23, mpiAlltoall, mpiAlltoallv, mpiAllgather, mpiAllgatherv, mpiAllReduce, mpiBarrier,
mpiGather, mpiGatherv, mpiRank, mpiReduce, mpiScatter, mpiScatterv, mpiSize, mpiWait, mpiWaitAny, mpiWtick, mpiWtime, mshmet,
NLCG,
on,
plot, polar, Post, pow, processor, processorblock, projection,
randinit, randint31, randint32, random, randreal1, randreal2, randreal3, randres53, Read, readmesh, readmesh3, Recv, rfind, rint, round,
savemesh, savesol, savevtk, seekg, Sent, set, sign, signbit, sin, sinh, sort, splitComm, splitmesh, sqrt, square, srandom, srandomdev, Stringification, swap, system,
tan, tanh, tellg, tetg, tetgconvexhull, tetgreconstruction, tetgtransfo, tgamma, triangulate, trunc,
Wait, Write,
y0, y1, yn,
},
keywords=[5]{
%% BUILTIN PARAMETERS
A, A1, abserror, absolute, aniso, aspectratio,
B, B1, bb, beginend, bin, boundary, bw,
close, cmm, coef, composante, cutoff,
datafilename, dataname, dim, distmax, displacement, doptions, dparams,
eps, err, errg,
facemerge, facetcl, factorize, file, fill, fixedborder, flabel, flags, floatmesh, floatsol, fregion,
gradation, grey,
hmax, hmin, holelist, hsv,
init, inquire, inside, IsMetric, iso, ivalue,
keepbackvertices,
label, labeldown, labelmid, labelup, levelset, loptions, lparams,
maxit, maxsubdiv, meditff, mem, memory, metric, mode,
nbarrow, nbiso, nbiter, nbjacoby, nboffacetcl, nbofholes, nbofregions, nbregul, nbsmooth, nbvx, ncv, nev, nomeshgeneration, normalization,
omega, op, optimize, option, options, order, orientation,
periodic, power, precon, prev, ps, ptmerge,
qfe, qforder, qft, qfV,
ratio, rawvector, reffacelow, reffacemid, reffaceup, refnum, reftet, reftri, region, regionlist, renumv, rescaling, ridgeangle,
save, sigma, sizeofvolume, smoothing, solver, sparams, split, splitin2, splitpbedge, stop, strategy, swap, switch, sym,
t, tgv, thetamax, tol, tolpivot, tolpivotsym, transfo,
U2Vc,
value, varrow, vector, veps, viso,
wait, width, withsurfacemesh, WindowIndex, which,
zbound
},
keywordstyle=[1]\color{preprocessorColor},
keywordstyle=[2]\color{keywordsColor},
keywordstyle=[3]\color{reservedColor},
keywordstyle=[4]\color{builtinsColor},
keywordstyle=[5]\color{builtinParametersColor},
sensitive=true,
comment=[l]{//},
morecomment=[s]{/*}{*/},
commentstyle=\color{commentsColor},
string=[b]",
stringstyle=\color{stringsColor}
}