freefem.py 26 KB

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