freefem.py 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894
  1. """
  2. pygments.lexers.freefem
  3. ~~~~~~~~~~~~~~~~~~~~~~~
  4. Lexer for FreeFem++ language.
  5. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
  6. :license: BSD, see LICENSE for details.
  7. """
  8. from pygments.token import Comment, Operator, Keyword, Name
  9. from pygments.lexers.c_cpp import CppLexer
  10. __all__ = ['FreeFemLexer']
  11. class FreeFemLexer(CppLexer):
  12. """
  13. For FreeFem++ source.
  14. This is an extension of the CppLexer, as the FreeFem Language is a superset
  15. of C++.
  16. .. versionadded:: 2.4
  17. """
  18. name = 'Freefem'
  19. url = 'https://freefem.org/'
  20. aliases = ['freefem']
  21. filenames = ['*.edp']
  22. mimetypes = ['text/x-freefem']
  23. # Language operators
  24. operators = {'+', '-', '*', '.*', '/', './', '%', '^', '^-1', ':', '\''}
  25. # types
  26. types = {'bool', 'border', 'complex', 'dmatrix', 'fespace', 'func', 'gslspline',
  27. 'ifstream', 'int', 'macro', 'matrix', 'mesh', 'mesh3', 'mpiComm',
  28. 'mpiGroup', 'mpiRequest', 'NewMacro', 'EndMacro', 'ofstream', 'Pmmap',
  29. 'problem', 'Psemaphore', 'real', 'solve', 'string', 'varf'}
  30. # finite element spaces
  31. fespaces = {'BDM1', 'BDM1Ortho', 'Edge03d', 'Edge13d', 'Edge23d', 'FEQF', 'HCT',
  32. 'P0', 'P03d', 'P0Edge', 'P1', 'P13d', 'P1b', 'P1b3d', 'P1bl', 'P1bl3d',
  33. 'P1dc', 'P1Edge', 'P1nc', 'P2', 'P23d', 'P2b', 'P2BR', 'P2dc', 'P2Edge',
  34. 'P2h', 'P2Morley', 'P2pnc', 'P3', 'P3dc', 'P3Edge', 'P4', 'P4dc',
  35. 'P4Edge', 'P5Edge', 'RT0', 'RT03d', 'RT0Ortho', 'RT1', 'RT1Ortho',
  36. 'RT2', 'RT2Ortho'}
  37. # preprocessor
  38. preprocessor = {'ENDIFMACRO', 'include', 'IFMACRO', 'load'}
  39. # Language keywords
  40. keywords = {
  41. 'adj',
  42. 'append',
  43. 'area',
  44. 'ARGV',
  45. 'be',
  46. 'binary',
  47. 'BoundaryEdge',
  48. 'bordermeasure',
  49. 'CG',
  50. 'Cholesky',
  51. 'cin',
  52. 'cout',
  53. 'Crout',
  54. 'default',
  55. 'diag',
  56. 'edgeOrientation',
  57. 'endl',
  58. 'false',
  59. 'ffind',
  60. 'FILE',
  61. 'find',
  62. 'fixed',
  63. 'flush',
  64. 'GMRES',
  65. 'good',
  66. 'hTriangle',
  67. 'im',
  68. 'imax',
  69. 'imin',
  70. 'InternalEdge',
  71. 'l1',
  72. 'l2',
  73. 'label',
  74. 'lenEdge',
  75. 'length',
  76. 'LINE',
  77. 'linfty',
  78. 'LU',
  79. 'm',
  80. 'max',
  81. 'measure',
  82. 'min',
  83. 'mpiAnySource',
  84. 'mpiBAND',
  85. 'mpiBXOR',
  86. 'mpiCommWorld',
  87. 'mpiLAND',
  88. 'mpiLOR',
  89. 'mpiLXOR',
  90. 'mpiMAX',
  91. 'mpiMIN',
  92. 'mpiPROD',
  93. 'mpirank',
  94. 'mpisize',
  95. 'mpiSUM',
  96. 'mpiUndefined',
  97. 'n',
  98. 'N',
  99. 'nbe',
  100. 'ndof',
  101. 'ndofK',
  102. 'noshowbase',
  103. 'noshowpos',
  104. 'notaregion',
  105. 'nt',
  106. 'nTonEdge',
  107. 'nuEdge',
  108. 'nuTriangle',
  109. 'nv',
  110. 'P',
  111. 'pi',
  112. 'precision',
  113. 'qf1pE',
  114. 'qf1pElump',
  115. 'qf1pT',
  116. 'qf1pTlump',
  117. 'qfV1',
  118. 'qfV1lump',
  119. 'qf2pE',
  120. 'qf2pT',
  121. 'qf2pT4P1',
  122. 'qfV2',
  123. 'qf3pE',
  124. 'qf4pE',
  125. 'qf5pE',
  126. 'qf5pT',
  127. 'qfV5',
  128. 'qf7pT',
  129. 'qf9pT',
  130. 'qfnbpE',
  131. 'quantile',
  132. 're',
  133. 'region',
  134. 'rfind',
  135. 'scientific',
  136. 'searchMethod',
  137. 'setw',
  138. 'showbase',
  139. 'showpos',
  140. 'sparsesolver',
  141. 'sum',
  142. 'tellp',
  143. 'true',
  144. 'UMFPACK',
  145. 'unused',
  146. 'whoinElement',
  147. 'verbosity',
  148. 'version',
  149. 'volume',
  150. 'x',
  151. 'y',
  152. 'z'
  153. }
  154. # Language shipped functions and class ( )
  155. functions = {
  156. 'abs',
  157. 'acos',
  158. 'acosh',
  159. 'adaptmesh',
  160. 'adj',
  161. 'AffineCG',
  162. 'AffineGMRES',
  163. 'arg',
  164. 'asin',
  165. 'asinh',
  166. 'assert',
  167. 'atan',
  168. 'atan2',
  169. 'atanh',
  170. 'atof',
  171. 'atoi',
  172. 'BFGS',
  173. 'broadcast',
  174. 'buildlayers',
  175. 'buildmesh',
  176. 'ceil',
  177. 'chi',
  178. 'complexEigenValue',
  179. 'copysign',
  180. 'change',
  181. 'checkmovemesh',
  182. 'clock',
  183. 'cmaes',
  184. 'conj',
  185. 'convect',
  186. 'cos',
  187. 'cosh',
  188. 'cube',
  189. 'd',
  190. 'dd',
  191. 'dfft',
  192. 'diffnp',
  193. 'diffpos',
  194. 'dimKrylov',
  195. 'dist',
  196. 'dumptable',
  197. 'dx',
  198. 'dxx',
  199. 'dxy',
  200. 'dxz',
  201. 'dy',
  202. 'dyx',
  203. 'dyy',
  204. 'dyz',
  205. 'dz',
  206. 'dzx',
  207. 'dzy',
  208. 'dzz',
  209. 'EigenValue',
  210. 'emptymesh',
  211. 'erf',
  212. 'erfc',
  213. 'exec',
  214. 'exit',
  215. 'exp',
  216. 'fdim',
  217. 'floor',
  218. 'fmax',
  219. 'fmin',
  220. 'fmod',
  221. 'freeyams',
  222. 'getARGV',
  223. 'getline',
  224. 'gmshload',
  225. 'gmshload3',
  226. 'gslcdfugaussianP',
  227. 'gslcdfugaussianQ',
  228. 'gslcdfugaussianPinv',
  229. 'gslcdfugaussianQinv',
  230. 'gslcdfgaussianP',
  231. 'gslcdfgaussianQ',
  232. 'gslcdfgaussianPinv',
  233. 'gslcdfgaussianQinv',
  234. 'gslcdfgammaP',
  235. 'gslcdfgammaQ',
  236. 'gslcdfgammaPinv',
  237. 'gslcdfgammaQinv',
  238. 'gslcdfcauchyP',
  239. 'gslcdfcauchyQ',
  240. 'gslcdfcauchyPinv',
  241. 'gslcdfcauchyQinv',
  242. 'gslcdflaplaceP',
  243. 'gslcdflaplaceQ',
  244. 'gslcdflaplacePinv',
  245. 'gslcdflaplaceQinv',
  246. 'gslcdfrayleighP',
  247. 'gslcdfrayleighQ',
  248. 'gslcdfrayleighPinv',
  249. 'gslcdfrayleighQinv',
  250. 'gslcdfchisqP',
  251. 'gslcdfchisqQ',
  252. 'gslcdfchisqPinv',
  253. 'gslcdfchisqQinv',
  254. 'gslcdfexponentialP',
  255. 'gslcdfexponentialQ',
  256. 'gslcdfexponentialPinv',
  257. 'gslcdfexponentialQinv',
  258. 'gslcdfexppowP',
  259. 'gslcdfexppowQ',
  260. 'gslcdftdistP',
  261. 'gslcdftdistQ',
  262. 'gslcdftdistPinv',
  263. 'gslcdftdistQinv',
  264. 'gslcdffdistP',
  265. 'gslcdffdistQ',
  266. 'gslcdffdistPinv',
  267. 'gslcdffdistQinv',
  268. 'gslcdfbetaP',
  269. 'gslcdfbetaQ',
  270. 'gslcdfbetaPinv',
  271. 'gslcdfbetaQinv',
  272. 'gslcdfflatP',
  273. 'gslcdfflatQ',
  274. 'gslcdfflatPinv',
  275. 'gslcdfflatQinv',
  276. 'gslcdflognormalP',
  277. 'gslcdflognormalQ',
  278. 'gslcdflognormalPinv',
  279. 'gslcdflognormalQinv',
  280. 'gslcdfgumbel1P',
  281. 'gslcdfgumbel1Q',
  282. 'gslcdfgumbel1Pinv',
  283. 'gslcdfgumbel1Qinv',
  284. 'gslcdfgumbel2P',
  285. 'gslcdfgumbel2Q',
  286. 'gslcdfgumbel2Pinv',
  287. 'gslcdfgumbel2Qinv',
  288. 'gslcdfweibullP',
  289. 'gslcdfweibullQ',
  290. 'gslcdfweibullPinv',
  291. 'gslcdfweibullQinv',
  292. 'gslcdfparetoP',
  293. 'gslcdfparetoQ',
  294. 'gslcdfparetoPinv',
  295. 'gslcdfparetoQinv',
  296. 'gslcdflogisticP',
  297. 'gslcdflogisticQ',
  298. 'gslcdflogisticPinv',
  299. 'gslcdflogisticQinv',
  300. 'gslcdfbinomialP',
  301. 'gslcdfbinomialQ',
  302. 'gslcdfpoissonP',
  303. 'gslcdfpoissonQ',
  304. 'gslcdfgeometricP',
  305. 'gslcdfgeometricQ',
  306. 'gslcdfnegativebinomialP',
  307. 'gslcdfnegativebinomialQ',
  308. 'gslcdfpascalP',
  309. 'gslcdfpascalQ',
  310. 'gslinterpakima',
  311. 'gslinterpakimaperiodic',
  312. 'gslinterpcsplineperiodic',
  313. 'gslinterpcspline',
  314. 'gslinterpsteffen',
  315. 'gslinterplinear',
  316. 'gslinterppolynomial',
  317. 'gslranbernoullipdf',
  318. 'gslranbeta',
  319. 'gslranbetapdf',
  320. 'gslranbinomialpdf',
  321. 'gslranexponential',
  322. 'gslranexponentialpdf',
  323. 'gslranexppow',
  324. 'gslranexppowpdf',
  325. 'gslrancauchy',
  326. 'gslrancauchypdf',
  327. 'gslranchisq',
  328. 'gslranchisqpdf',
  329. 'gslranerlang',
  330. 'gslranerlangpdf',
  331. 'gslranfdist',
  332. 'gslranfdistpdf',
  333. 'gslranflat',
  334. 'gslranflatpdf',
  335. 'gslrangamma',
  336. 'gslrangammaint',
  337. 'gslrangammapdf',
  338. 'gslrangammamt',
  339. 'gslrangammaknuth',
  340. 'gslrangaussian',
  341. 'gslrangaussianratiomethod',
  342. 'gslrangaussianziggurat',
  343. 'gslrangaussianpdf',
  344. 'gslranugaussian',
  345. 'gslranugaussianratiomethod',
  346. 'gslranugaussianpdf',
  347. 'gslrangaussiantail',
  348. 'gslrangaussiantailpdf',
  349. 'gslranugaussiantail',
  350. 'gslranugaussiantailpdf',
  351. 'gslranlandau',
  352. 'gslranlandaupdf',
  353. 'gslrangeometricpdf',
  354. 'gslrangumbel1',
  355. 'gslrangumbel1pdf',
  356. 'gslrangumbel2',
  357. 'gslrangumbel2pdf',
  358. 'gslranlogistic',
  359. 'gslranlogisticpdf',
  360. 'gslranlognormal',
  361. 'gslranlognormalpdf',
  362. 'gslranlogarithmicpdf',
  363. 'gslrannegativebinomialpdf',
  364. 'gslranpascalpdf',
  365. 'gslranpareto',
  366. 'gslranparetopdf',
  367. 'gslranpoissonpdf',
  368. 'gslranrayleigh',
  369. 'gslranrayleighpdf',
  370. 'gslranrayleightail',
  371. 'gslranrayleightailpdf',
  372. 'gslrantdist',
  373. 'gslrantdistpdf',
  374. 'gslranlaplace',
  375. 'gslranlaplacepdf',
  376. 'gslranlevy',
  377. 'gslranweibull',
  378. 'gslranweibullpdf',
  379. 'gslsfairyAi',
  380. 'gslsfairyBi',
  381. 'gslsfairyAiscaled',
  382. 'gslsfairyBiscaled',
  383. 'gslsfairyAideriv',
  384. 'gslsfairyBideriv',
  385. 'gslsfairyAiderivscaled',
  386. 'gslsfairyBiderivscaled',
  387. 'gslsfairyzeroAi',
  388. 'gslsfairyzeroBi',
  389. 'gslsfairyzeroAideriv',
  390. 'gslsfairyzeroBideriv',
  391. 'gslsfbesselJ0',
  392. 'gslsfbesselJ1',
  393. 'gslsfbesselJn',
  394. 'gslsfbesselY0',
  395. 'gslsfbesselY1',
  396. 'gslsfbesselYn',
  397. 'gslsfbesselI0',
  398. 'gslsfbesselI1',
  399. 'gslsfbesselIn',
  400. 'gslsfbesselI0scaled',
  401. 'gslsfbesselI1scaled',
  402. 'gslsfbesselInscaled',
  403. 'gslsfbesselK0',
  404. 'gslsfbesselK1',
  405. 'gslsfbesselKn',
  406. 'gslsfbesselK0scaled',
  407. 'gslsfbesselK1scaled',
  408. 'gslsfbesselKnscaled',
  409. 'gslsfbesselj0',
  410. 'gslsfbesselj1',
  411. 'gslsfbesselj2',
  412. 'gslsfbesseljl',
  413. 'gslsfbessely0',
  414. 'gslsfbessely1',
  415. 'gslsfbessely2',
  416. 'gslsfbesselyl',
  417. 'gslsfbesseli0scaled',
  418. 'gslsfbesseli1scaled',
  419. 'gslsfbesseli2scaled',
  420. 'gslsfbesselilscaled',
  421. 'gslsfbesselk0scaled',
  422. 'gslsfbesselk1scaled',
  423. 'gslsfbesselk2scaled',
  424. 'gslsfbesselklscaled',
  425. 'gslsfbesselJnu',
  426. 'gslsfbesselYnu',
  427. 'gslsfbesselInuscaled',
  428. 'gslsfbesselInu',
  429. 'gslsfbesselKnuscaled',
  430. 'gslsfbesselKnu',
  431. 'gslsfbessellnKnu',
  432. 'gslsfbesselzeroJ0',
  433. 'gslsfbesselzeroJ1',
  434. 'gslsfbesselzeroJnu',
  435. 'gslsfclausen',
  436. 'gslsfhydrogenicR1',
  437. 'gslsfdawson',
  438. 'gslsfdebye1',
  439. 'gslsfdebye2',
  440. 'gslsfdebye3',
  441. 'gslsfdebye4',
  442. 'gslsfdebye5',
  443. 'gslsfdebye6',
  444. 'gslsfdilog',
  445. 'gslsfmultiply',
  446. 'gslsfellintKcomp',
  447. 'gslsfellintEcomp',
  448. 'gslsfellintPcomp',
  449. 'gslsfellintDcomp',
  450. 'gslsfellintF',
  451. 'gslsfellintE',
  452. 'gslsfellintRC',
  453. 'gslsferfc',
  454. 'gslsflogerfc',
  455. 'gslsferf',
  456. 'gslsferfZ',
  457. 'gslsferfQ',
  458. 'gslsfhazard',
  459. 'gslsfexp',
  460. 'gslsfexpmult',
  461. 'gslsfexpm1',
  462. 'gslsfexprel',
  463. 'gslsfexprel2',
  464. 'gslsfexpreln',
  465. 'gslsfexpintE1',
  466. 'gslsfexpintE2',
  467. 'gslsfexpintEn',
  468. 'gslsfexpintE1scaled',
  469. 'gslsfexpintE2scaled',
  470. 'gslsfexpintEnscaled',
  471. 'gslsfexpintEi',
  472. 'gslsfexpintEiscaled',
  473. 'gslsfShi',
  474. 'gslsfChi',
  475. 'gslsfexpint3',
  476. 'gslsfSi',
  477. 'gslsfCi',
  478. 'gslsfatanint',
  479. 'gslsffermidiracm1',
  480. 'gslsffermidirac0',
  481. 'gslsffermidirac1',
  482. 'gslsffermidirac2',
  483. 'gslsffermidiracint',
  484. 'gslsffermidiracmhalf',
  485. 'gslsffermidirachalf',
  486. 'gslsffermidirac3half',
  487. 'gslsffermidiracinc0',
  488. 'gslsflngamma',
  489. 'gslsfgamma',
  490. 'gslsfgammastar',
  491. 'gslsfgammainv',
  492. 'gslsftaylorcoeff',
  493. 'gslsffact',
  494. 'gslsfdoublefact',
  495. 'gslsflnfact',
  496. 'gslsflndoublefact',
  497. 'gslsflnchoose',
  498. 'gslsfchoose',
  499. 'gslsflnpoch',
  500. 'gslsfpoch',
  501. 'gslsfpochrel',
  502. 'gslsfgammaincQ',
  503. 'gslsfgammaincP',
  504. 'gslsfgammainc',
  505. 'gslsflnbeta',
  506. 'gslsfbeta',
  507. 'gslsfbetainc',
  508. 'gslsfgegenpoly1',
  509. 'gslsfgegenpoly2',
  510. 'gslsfgegenpoly3',
  511. 'gslsfgegenpolyn',
  512. 'gslsfhyperg0F1',
  513. 'gslsfhyperg1F1int',
  514. 'gslsfhyperg1F1',
  515. 'gslsfhypergUint',
  516. 'gslsfhypergU',
  517. 'gslsfhyperg2F0',
  518. 'gslsflaguerre1',
  519. 'gslsflaguerre2',
  520. 'gslsflaguerre3',
  521. 'gslsflaguerren',
  522. 'gslsflambertW0',
  523. 'gslsflambertWm1',
  524. 'gslsflegendrePl',
  525. 'gslsflegendreP1',
  526. 'gslsflegendreP2',
  527. 'gslsflegendreP3',
  528. 'gslsflegendreQ0',
  529. 'gslsflegendreQ1',
  530. 'gslsflegendreQl',
  531. 'gslsflegendrePlm',
  532. 'gslsflegendresphPlm',
  533. 'gslsflegendrearraysize',
  534. 'gslsfconicalPhalf',
  535. 'gslsfconicalPmhalf',
  536. 'gslsfconicalP0',
  537. 'gslsfconicalP1',
  538. 'gslsfconicalPsphreg',
  539. 'gslsfconicalPcylreg',
  540. 'gslsflegendreH3d0',
  541. 'gslsflegendreH3d1',
  542. 'gslsflegendreH3d',
  543. 'gslsflog',
  544. 'gslsflogabs',
  545. 'gslsflog1plusx',
  546. 'gslsflog1plusxmx',
  547. 'gslsfpowint',
  548. 'gslsfpsiint',
  549. 'gslsfpsi',
  550. 'gslsfpsi1piy',
  551. 'gslsfpsi1int',
  552. 'gslsfpsi1',
  553. 'gslsfpsin',
  554. 'gslsfsynchrotron1',
  555. 'gslsfsynchrotron2',
  556. 'gslsftransport2',
  557. 'gslsftransport3',
  558. 'gslsftransport4',
  559. 'gslsftransport5',
  560. 'gslsfsin',
  561. 'gslsfcos',
  562. 'gslsfhypot',
  563. 'gslsfsinc',
  564. 'gslsflnsinh',
  565. 'gslsflncosh',
  566. 'gslsfanglerestrictsymm',
  567. 'gslsfanglerestrictpos',
  568. 'gslsfzetaint',
  569. 'gslsfzeta',
  570. 'gslsfzetam1',
  571. 'gslsfzetam1int',
  572. 'gslsfhzeta',
  573. 'gslsfetaint',
  574. 'gslsfeta',
  575. 'imag',
  576. 'int1d',
  577. 'int2d',
  578. 'int3d',
  579. 'intalledges',
  580. 'intallfaces',
  581. 'interpolate',
  582. 'invdiff',
  583. 'invdiffnp',
  584. 'invdiffpos',
  585. 'Isend',
  586. 'isInf',
  587. 'isNaN',
  588. 'isoline',
  589. 'Irecv',
  590. 'j0',
  591. 'j1',
  592. 'jn',
  593. 'jump',
  594. 'lgamma',
  595. 'LinearCG',
  596. 'LinearGMRES',
  597. 'log',
  598. 'log10',
  599. 'lrint',
  600. 'lround',
  601. 'max',
  602. 'mean',
  603. 'medit',
  604. 'min',
  605. 'mmg3d',
  606. 'movemesh',
  607. 'movemesh23',
  608. 'mpiAlltoall',
  609. 'mpiAlltoallv',
  610. 'mpiAllgather',
  611. 'mpiAllgatherv',
  612. 'mpiAllReduce',
  613. 'mpiBarrier',
  614. 'mpiGather',
  615. 'mpiGatherv',
  616. 'mpiRank',
  617. 'mpiReduce',
  618. 'mpiScatter',
  619. 'mpiScatterv',
  620. 'mpiSize',
  621. 'mpiWait',
  622. 'mpiWaitAny',
  623. 'mpiWtick',
  624. 'mpiWtime',
  625. 'mshmet',
  626. 'NaN',
  627. 'NLCG',
  628. 'on',
  629. 'plot',
  630. 'polar',
  631. 'Post',
  632. 'pow',
  633. 'processor',
  634. 'processorblock',
  635. 'projection',
  636. 'randinit',
  637. 'randint31',
  638. 'randint32',
  639. 'random',
  640. 'randreal1',
  641. 'randreal2',
  642. 'randreal3',
  643. 'randres53',
  644. 'Read',
  645. 'readmesh',
  646. 'readmesh3',
  647. 'Recv',
  648. 'rint',
  649. 'round',
  650. 'savemesh',
  651. 'savesol',
  652. 'savevtk',
  653. 'seekg',
  654. 'Sent',
  655. 'set',
  656. 'sign',
  657. 'signbit',
  658. 'sin',
  659. 'sinh',
  660. 'sort',
  661. 'splitComm',
  662. 'splitmesh',
  663. 'sqrt',
  664. 'square',
  665. 'srandom',
  666. 'srandomdev',
  667. 'Stringification',
  668. 'swap',
  669. 'system',
  670. 'tan',
  671. 'tanh',
  672. 'tellg',
  673. 'tetg',
  674. 'tetgconvexhull',
  675. 'tetgreconstruction',
  676. 'tetgtransfo',
  677. 'tgamma',
  678. 'triangulate',
  679. 'trunc',
  680. 'Wait',
  681. 'Write',
  682. 'y0',
  683. 'y1',
  684. 'yn'
  685. }
  686. # function parameters
  687. parameters = {
  688. 'A',
  689. 'A1',
  690. 'abserror',
  691. 'absolute',
  692. 'aniso',
  693. 'aspectratio',
  694. 'B',
  695. 'B1',
  696. 'bb',
  697. 'beginend',
  698. 'bin',
  699. 'boundary',
  700. 'bw',
  701. 'close',
  702. 'cmm',
  703. 'coef',
  704. 'composante',
  705. 'cutoff',
  706. 'datafilename',
  707. 'dataname',
  708. 'dim',
  709. 'distmax',
  710. 'displacement',
  711. 'doptions',
  712. 'dparams',
  713. 'eps',
  714. 'err',
  715. 'errg',
  716. 'facemerge',
  717. 'facetcl',
  718. 'factorize',
  719. 'file',
  720. 'fill',
  721. 'fixedborder',
  722. 'flabel',
  723. 'flags',
  724. 'floatmesh',
  725. 'floatsol',
  726. 'fregion',
  727. 'gradation',
  728. 'grey',
  729. 'hmax',
  730. 'hmin',
  731. 'holelist',
  732. 'hsv',
  733. 'init',
  734. 'inquire',
  735. 'inside',
  736. 'IsMetric',
  737. 'iso',
  738. 'ivalue',
  739. 'keepbackvertices',
  740. 'label',
  741. 'labeldown',
  742. 'labelmid',
  743. 'labelup',
  744. 'levelset',
  745. 'loptions',
  746. 'lparams',
  747. 'maxit',
  748. 'maxsubdiv',
  749. 'meditff',
  750. 'mem',
  751. 'memory',
  752. 'metric',
  753. 'mode',
  754. 'nbarrow',
  755. 'nbiso',
  756. 'nbiter',
  757. 'nbjacoby',
  758. 'nboffacetcl',
  759. 'nbofholes',
  760. 'nbofregions',
  761. 'nbregul',
  762. 'nbsmooth',
  763. 'nbvx',
  764. 'ncv',
  765. 'nev',
  766. 'nomeshgeneration',
  767. 'normalization',
  768. 'omega',
  769. 'op',
  770. 'optimize',
  771. 'option',
  772. 'options',
  773. 'order',
  774. 'orientation',
  775. 'periodic',
  776. 'power',
  777. 'precon',
  778. 'prev',
  779. 'ps',
  780. 'ptmerge',
  781. 'qfe',
  782. 'qforder',
  783. 'qft',
  784. 'qfV',
  785. 'ratio',
  786. 'rawvector',
  787. 'reffacelow',
  788. 'reffacemid',
  789. 'reffaceup',
  790. 'refnum',
  791. 'reftet',
  792. 'reftri',
  793. 'region',
  794. 'regionlist',
  795. 'renumv',
  796. 'rescaling',
  797. 'ridgeangle',
  798. 'save',
  799. 'sigma',
  800. 'sizeofvolume',
  801. 'smoothing',
  802. 'solver',
  803. 'sparams',
  804. 'split',
  805. 'splitin2',
  806. 'splitpbedge',
  807. 'stop',
  808. 'strategy',
  809. 'swap',
  810. 'switch',
  811. 'sym',
  812. 't',
  813. 'tgv',
  814. 'thetamax',
  815. 'tol',
  816. 'tolpivot',
  817. 'tolpivotsym',
  818. 'transfo',
  819. 'U2Vc',
  820. 'value',
  821. 'varrow',
  822. 'vector',
  823. 'veps',
  824. 'viso',
  825. 'wait',
  826. 'width',
  827. 'withsurfacemesh',
  828. 'WindowIndex',
  829. 'which',
  830. 'zbound'
  831. }
  832. # deprecated
  833. deprecated = {'fixeborder'}
  834. # do not highlight
  835. suppress_highlight = {
  836. 'alignof',
  837. 'asm',
  838. 'constexpr',
  839. 'decltype',
  840. 'div',
  841. 'double',
  842. 'grad',
  843. 'mutable',
  844. 'namespace',
  845. 'noexcept',
  846. 'restrict',
  847. 'static_assert',
  848. 'template',
  849. 'this',
  850. 'thread_local',
  851. 'typeid',
  852. 'typename',
  853. 'using'
  854. }
  855. def get_tokens_unprocessed(self, text, stack=('root',)):
  856. for index, token, value in CppLexer.get_tokens_unprocessed(self, text, stack):
  857. if value in self.operators:
  858. yield index, Operator, value
  859. elif value in self.types:
  860. yield index, Keyword.Type, value
  861. elif value in self.fespaces:
  862. yield index, Name.Class, value
  863. elif value in self.preprocessor:
  864. yield index, Comment.Preproc, value
  865. elif value in self.keywords:
  866. yield index, Keyword.Reserved, value
  867. elif value in self.functions:
  868. yield index, Name.Function, value
  869. elif value in self.parameters:
  870. yield index, Keyword.Pseudo, value
  871. elif value in self.suppress_highlight:
  872. yield index, Name, value
  873. else:
  874. yield index, token, value