freefem.py 26 KB

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