CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
groovy.js191 linesDownload Raw Back to languages
1/*2 Language: Groovy3 Author: Guillaume Laforge <glaforge@gmail.com>4 Description: Groovy programming language implementation inspired from Vsevolod's Java mode5 Website: https://groovy-lang.org6 Category: system7 */8 9function variants(variants, obj = {}) {10  obj.variants = variants;11  return obj;12}13 14function groovy(hljs) {15  const regex = hljs.regex;16  const IDENT_RE = '[A-Za-z0-9_$]+';17  const COMMENT = variants([18    hljs.C_LINE_COMMENT_MODE,19    hljs.C_BLOCK_COMMENT_MODE,20    hljs.COMMENT(21      '/\\*\\*',22      '\\*/',23      {24        relevance: 0,25        contains: [26          {27            // eat up @'s in emails to prevent them to be recognized as doctags28            begin: /\w+@/,29            relevance: 030          },31          {32            className: 'doctag',33            begin: '@[A-Za-z]+'34          }35        ]36      }37    )38  ]);39  const REGEXP = {40    className: 'regexp',41    begin: /~?\/[^\/\n]+\//,42    contains: [ hljs.BACKSLASH_ESCAPE ]43  };44  const NUMBER = variants([45    hljs.BINARY_NUMBER_MODE,46    hljs.C_NUMBER_MODE47  ]);48  const STRING = variants([49    {50      begin: /"""/,51      end: /"""/52    },53    {54      begin: /'''/,55      end: /'''/56    },57    {58      begin: "\\$/",59      end: "/\\$",60      relevance: 1061    },62    hljs.APOS_STRING_MODE,63    hljs.QUOTE_STRING_MODE64  ],65  { className: "string" }66  );67 68  const CLASS_DEFINITION = {69    match: [70      /(class|interface|trait|enum|record|extends|implements)/,71      /\s+/,72      hljs.UNDERSCORE_IDENT_RE73    ],74    scope: {75      1: "keyword",76      3: "title.class",77    }78  };79  const TYPES = [80    "byte",81    "short",82    "char",83    "int",84    "long",85    "boolean",86    "float",87    "double",88    "void"89  ];90  const KEYWORDS = [91    // groovy specific keywords92    "def",93    "as",94    "in",95    "assert",96    "trait",97    // common keywords with Java98    "abstract",99    "static",100    "volatile",101    "transient",102    "public",103    "private",104    "protected",105    "synchronized",106    "final",107    "class",108    "interface",109    "enum",110    "if",111    "else",112    "for",113    "while",114    "switch",115    "case",116    "break",117    "default",118    "continue",119    "throw",120    "throws",121    "try",122    "catch",123    "finally",124    "implements",125    "extends",126    "new",127    "import",128    "package",129    "return",130    "instanceof",131    "var"132  ];133 134  return {135    name: 'Groovy',136    keywords: {137      "variable.language": 'this super',138      literal: 'true false null',139      type: TYPES,140      keyword: KEYWORDS141    },142    contains: [143      hljs.SHEBANG({144        binary: "groovy",145        relevance: 10146      }),147      COMMENT,148      STRING,149      REGEXP,150      NUMBER,151      CLASS_DEFINITION,152      {153        className: 'meta',154        begin: '@[A-Za-z]+',155        relevance: 0156      },157      {158        // highlight map keys and named parameters as attrs159        className: 'attr',160        begin: IDENT_RE + '[ \t]*:',161        relevance: 0162      },163      {164        // catch middle element of the ternary operator165        // to avoid highlight it as a label, named parameter, or map key166        begin: /\?/,167        end: /:/,168        relevance: 0,169        contains: [170          COMMENT,171          STRING,172          REGEXP,173          NUMBER,174          'self'175        ]176      },177      {178        // highlight labeled statements179        className: 'symbol',180        begin: '^[ \t]*' + regex.lookahead(IDENT_RE + ':'),181        excludeBegin: true,182        end: IDENT_RE + ':',183        relevance: 0184      }185    ],186    illegal: /#|<\//187  };188}189 190export { groovy as default };191 
basant307/AI_Governance_Project · CoolFace