source: node_modules/refractor/lang/fortran.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.7 KB
Line 
1'use strict'
2
3module.exports = fortran
4fortran.displayName = 'fortran'
5fortran.aliases = []
6function fortran(Prism) {
7 Prism.languages.fortran = {
8 'quoted-number': {
9 pattern: /[BOZ](['"])[A-F0-9]+\1/i,
10 alias: 'number'
11 },
12 string: {
13 pattern:
14 /(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,
15 inside: {
16 comment: {
17 pattern: /(&(?:\r\n?|\n)\s*)!.*/,
18 lookbehind: true
19 }
20 }
21 },
22 comment: {
23 pattern: /!.*/,
24 greedy: true
25 },
26 boolean: /\.(?:FALSE|TRUE)\.(?:_\w+)?/i,
27 number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,
28 keyword: [
29 // Types
30 /\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i, // END statements
31 /\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i, // Statements
32 /\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i, // Others
33 /\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i
34 ],
35 operator: [
36 /\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,
37 {
38 // Use lookbehind to prevent confusion with (/ /)
39 pattern: /(^|(?!\().)\/(?!\))/,
40 lookbehind: true
41 }
42 ],
43 punctuation: /\(\/|\/\)|[(),;:&]/
44 }
45}
Note: See TracBrowser for help on using the repository browser.