{"version":3,"sources":["jsdelivr-header.js","/npm/detect-code-language@1.0.7/index.js"],"names":[],"mappings":"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","file":"/npm/detect-code-language@1.0.7/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/detect-code-language@1.0.7/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const LANGUAGES = {\r\n\r\n  JavaScript: [\r\n    // Keywords\r\n    { pattern: /\\bundefined\\b/g, points: 2 },\r\n    { pattern: /\\bnull\\b/g, points: 2 },\r\n    { pattern: /\\btrue\\b|\\bfalse\\b/g, points: 2 },\r\n\r\n    // Console logging\r\n    { pattern: /console\\.(log|warn|error|info|debug)\\(/, points: 3 },\r\n\r\n    // Document object methods\r\n    { pattern: /document\\.(getElementById|getElementsByClassName|getElementsByTagName|querySelector|querySelectorAll)\\(/, points: 5 },\r\n    { pattern: /document\\.addEventListener\\(/, points: 5 },\r\n    { pattern: /window\\.addEventListener\\(/, points: 5 },\r\n\r\n    // Variable declarations\r\n    { pattern: /\\b(var|let|const)\\s+\\w+\\s*=?/, points: 4 },\r\n\r\n    // Function definitions (regular and generator functions)\r\n    { pattern: /\\bfunction\\*?\\s+\\w*\\s*\\(.*\\)/g, points: 3 },\r\n\r\n    // Arrow functions (with and without curly braces)\r\n    { pattern: /\\(?\\w*\\)?\\s*=>\\s*\\{?/, points: 3 },\r\n\r\n    // Class declarations\r\n    { pattern: /\\bclass\\s+\\w+\\s*{/, points: 3 },\r\n    { pattern: /\\bconstructor\\s*\\(.*\\)\\s*{/, points: 3 },\r\n\r\n    // Object and array literals\r\n    { pattern: /\\b\\w+\\s*:\\s*[\\[{]/, points: 2 },\r\n    { pattern: /\\[[^\\]]*\\]/, points: 2 }, // Arrays\r\n    { pattern: /\\{[^\\}]*\\}/, points: 2 }, // Objects\r\n\r\n    // If-else conditions\r\n    { pattern: /\\bif\\s*\\(.+\\)\\s*{/, points: 2 },\r\n    { pattern: /\\belse if\\s*\\(.+\\)\\s*{/, points: 2 },\r\n    { pattern: /\\belse\\s*{/, points: 2 },\r\n\r\n    // Loops\r\n    { pattern: /\\bfor\\s*\\(.*;.*;.*\\)\\s*{/, points: 3 }, // Classic for loop\r\n    { pattern: /\\bfor\\s*\\(.*\\s+of\\s+.*\\)\\s*{/, points: 3 }, // for...of\r\n    { pattern: /\\bfor\\s*\\(.*\\s+in\\s+.*\\)\\s*{/, points: 3 }, // for...in\r\n    { pattern: /\\bwhile\\s*\\(.+\\)\\s*{/, points: 2 },\r\n    { pattern: /\\bdo\\s*{/, points: 2 },\r\n\r\n    // Switch case\r\n    { pattern: /\\bswitch\\s*\\(.+\\)\\s*{/, points: 3 },\r\n    { pattern: /\\bcase\\s+.+:/, points: 2 },\r\n    { pattern: /\\bdefault\\s*:/, points: 2 },\r\n\r\n    // Try-catch-finally\r\n    { pattern: /\\btry\\s*{/, points: 3 },\r\n    { pattern: /\\bcatch\\s*\\(.+\\)\\s*{/, points: 3 },\r\n    { pattern: /\\bfinally\\s*{/, points: 2 },\r\n\r\n    // ES6+ Template literals\r\n    { pattern: /`[^`]*\\$\\{[^}]+\\}[^`]*`/, points: 3 },\r\n\r\n    // Spread/rest operators\r\n    { pattern: /\\.{3}\\w+/, points: 3 },\r\n\r\n    // Destructuring assignment\r\n    { pattern: /\\bconst|let|var\\s*{[^}]+}\\s*=/, points: 3 },\r\n    { pattern: /\\bconst|let|var\\s*\\[[^\\]]+\\]\\s*=/, points: 3 },\r\n\r\n    // Promises & Async/Await\r\n    { pattern: /\\bPromise\\s*\\(/, points: 3 },\r\n    { pattern: /\\.then\\s*\\(/, points: 3 },\r\n    { pattern: /\\.catch\\s*\\(/, points: 3 },\r\n    { pattern: /\\.finally\\s*\\(/, points: 2 },\r\n    { pattern: /\\basync\\s+function/, points: 3 },\r\n    { pattern: /\\bawait\\s+\\w+/, points: 3 },\r\n\r\n    // Modules (ES6 imports/exports, CommonJS require)\r\n    { pattern: /\\bimport\\s+.*\\s+from\\s+['\"].+['\"]/, points: 3 },\r\n    { pattern: /\\bexport\\s+default\\s+/, points: 3 },\r\n    { pattern: /\\bexport\\s+{.*}/, points: 3 },\r\n    { pattern: /\\bmodule\\.exports\\s*=/, points: 3 },\r\n    { pattern: /\\brequire\\s*\\(.+\\)/, points: 3 },\r\n\r\n    // JSON handling\r\n    { pattern: /\\bJSON\\.stringify\\s*\\(/, points: 3 },\r\n    { pattern: /\\bJSON\\.parse\\s*\\(/, points: 3 },\r\n\r\n    // Regular expressions\r\n    { pattern: /\\/.*\\/[gimsuy]*/, points: 2 },\r\n\r\n    // Dynamic property access (object[key])\r\n    { pattern: /\\[\\w+\\]/, points: 2 },\r\n\r\n    // Global objects (setTimeout, setInterval, clearTimeout, clearInterval)\r\n    { pattern: /\\bsetTimeout\\s*\\(/, points: 3 },\r\n    { pattern: /\\bsetInterval\\s*\\(/, points: 3 },\r\n    { pattern: /\\bclearTimeout\\s*\\(/, points: 2 },\r\n    { pattern: /\\bclearInterval\\s*\\(/, points: 2 },\r\n\r\n    // Node.js-specific syntax (require, __dirname, __filename)\r\n    { pattern: /\\brequire\\s*\\(/, points: 3 },\r\n    { pattern: /\\b__dirname\\b/, points: 3 },\r\n    { pattern: /\\b__filename\\b/, points: 3 },\r\n\r\n    // Event loop-related methods (setImmediate, process.nextTick)\r\n    { pattern: /\\bsetImmediate\\s*\\(/, points: 3 },\r\n    { pattern: /\\bprocess\\.nextTick\\s*\\(/, points: 3 },\r\n\r\n    // Fetch API and AJAX requests\r\n    { pattern: /\\bfetch\\s*\\(/, points: 3 },\r\n    { pattern: /\\bXMLHttpRequest\\s*\\(/, points: 2 },\r\n\r\n    // jQuery detection\r\n    { pattern: /\\$\\(\\s*['\"].+['\"]\\s*\\)/, points: 3 },\r\n    { pattern: /\\b\\$.ajax\\s*\\(/, points: 3 },\r\n\r\n    // React-specific patterns\r\n    { pattern: /\\bReact\\.createElement\\s*\\(/, points: 3 },\r\n    { pattern: /\\buseState\\s*\\(/, points: 3 },\r\n    { pattern: /\\buseEffect\\s*\\(/, points: 3 },\r\n    { pattern: /\\buseContext\\s*\\(/, points: 3 },\r\n    { pattern: /\\buseReducer\\s*\\(/, points: 3 },\r\n\r\n    // Penalty for HTML script tags (JS inside HTML)\r\n    { pattern: /<(\\/)?script( type=('|\")text\\/javascript('|\"))?>/, points: -2 },\r\n\r\n    // Penalty for C-style variable declarations (mistaken for C/C++)\r\n    { pattern: /\\b(char|long|int|float|double)\\s+\\w+\\s*=?/, points: -1 },\r\n\r\n    // Penalty for C-style pointers\r\n    { pattern: /\\b\\w+\\s*\\*\\s*\\w+/, points: -1 },\r\n],\r\n\r\n  C: [\r\n    // Primitive variable declaration.\r\n    { pattern: /(char|long|int|float|double)( )+\\w+( )*=?/, points: 2 },\r\n    // malloc function call\r\n    { pattern: /malloc\\(.+\\)/, points: 2 },\r\n    // #include <whatever.h>\r\n    { pattern: /#include (<|\")\\w+\\.h(>|\")/, points: 2, nearTop: true },\r\n    // pointer\r\n    { pattern: /(\\w+)( )*\\*( )*\\w+/, points: 2 },\r\n    // Variable declaration and/or initialisation.\r\n    { pattern: /(\\w+)( )+\\w+(;|( )*=)/, points: 1 },\r\n    // Array declaration.\r\n    { pattern: /(\\w+)( )+\\w+\\[.+\\]/, points: 1 },\r\n    // #define macro\r\n    { pattern: /#define( )+.+/, points: 1 },\r\n    // NULL constant\r\n    { pattern: /NULL/, points: 1 },\r\n    // void keyword\r\n    { pattern: /void/g, points: 1 },\r\n    // (else )if statement\r\n    { pattern: /(else )?if( )*\\(.+\\)/, points: 1 },\r\n    // while loop\r\n    { pattern: /while( )+\\(.+\\)/, points: 1 },\r\n    // printf function\r\n    { pattern: /(printf|puts)( )*\\(.+\\)/, points: 1 },\r\n    // new Keyword from C++\r\n    { pattern: /new \\w+/, points: -1 },\r\n    // Single quote multicharacter string\r\n    { pattern: /'.{2,}'/, points: -1 },\r\n    // JS variable declaration\r\n    { pattern: /var( )+\\w+( )*=?/, points: -1 },\r\n  ],\r\n\r\n  \"C++\": [\r\n    // Primitive variable declaration.\r\n    { pattern: /(char|long|int|float|double)( )+\\w+( )*=?/, points: 2 },\r\n    // #include <whatever.h>\r\n    { pattern: /#include( )*(<|\")\\w+(\\.h)?(>|\")/, points: 2, nearTop: true },\r\n    // using namespace something\r\n    { pattern: /using( )+namespace( )+.+( )*;/, points: 2 },\r\n    // template declaration\r\n    { pattern: /template( )*<.*>/, points: 2 },\r\n    // std\r\n    { pattern: /std::\\w+/g, points: 2 },\r\n    // cout/cin/endl\r\n    { pattern: /(cout|cin|endl)/g, points: 2 },\r\n    // Visibility specifiers\r\n    { pattern: /(public|protected|private):/, points: 2 },\r\n    // nullptr\r\n    { pattern: /nullptr/, points: 2 },\r\n    // new Keyword\r\n    { pattern: /new \\w+(\\(.*\\))?/, points: 1 },\r\n    // #define macro\r\n    { pattern: /#define( )+.+/, points: 1 },\r\n    // template usage\r\n    { pattern: /\\w+<\\w+>/, points: 1 },\r\n    // class keyword\r\n    { pattern: /class( )+\\w+/, points: 1 },\r\n    // void keyword\r\n    { pattern: /void/g, points: 1 },\r\n    // (else )if statement\r\n    { pattern: /(else )?if( )*\\(.+\\)/, points: 1 },\r\n    // while loop\r\n    { pattern: /while( )+\\(.+\\)/, points: 1 },\r\n    // Scope operator\r\n    { pattern: /\\w*::\\w+/, points: 1 },\r\n    // Single quote multicharacter string\r\n    { pattern: /'.{2,}'/, points: -1 },\r\n    // Java List/ArrayList\r\n    {\r\n      pattern: /(List<\\w+>|ArrayList<\\w*>( )*\\(.*\\))(( )+[\\w]+|;)/,\r\n      points: -1,\r\n    },\r\n  ],\r\n\r\n  Python: [\r\n    // Function definition (regular and async)\r\n    { pattern: /^\\s*def\\s+\\w+\\(.*\\):/, points: 3 },\r\n    { pattern: /^\\s*async\\s+def\\s+\\w+\\(.*\\):/, points: 3 },\r\n\r\n    // Class definition\r\n    { pattern: /^\\s*class\\s+\\w+(\\(\\w+\\))?:/, points: 3 },\r\n\r\n    // Import statements (import and from-import)\r\n    { pattern: /^\\s*(import\\s+\\w+|from\\s+\\w+\\s+import\\s+[\\w,*]+)/, points: 3 },\r\n\r\n    // Python standard library modules (e.g., sys, os, re, json, etc.)\r\n    { pattern: /^\\s*(import|from)\\s+(sys|os|re|json|math|random|datetime|collections|itertools|functools)\\b/, points: 3 },\r\n\r\n    // Indentation-based blocks (whitespace, not tabs)\r\n    { pattern: /^\\s+(?!\\t)/, points: 1 },\r\n\r\n    // Single-line and inline comments\r\n    { pattern: /#.+/, points: 2 },\r\n\r\n    // Docstrings (triple-quoted multi-line strings)\r\n    { pattern: /\"\"\".*?\"\"\"|'''.*?'''/s, points: 3 },\r\n\r\n    // Variable assignments (x = value, including multiple assignments)\r\n    { pattern: /^\\s*\\w+\\s*=\\s*.+/, points: 3 },\r\n    { pattern: /^\\s*(\\w+, )+\\w+\\s*=\\s*.+/, points: 3 },  // Tuple unpacking\r\n\r\n    // Numeric literals (integers, floats, complex numbers)\r\n    { pattern: /\\b\\d+(\\.\\d+)?(j)?\\b/, points: 2 },\r\n\r\n    // Boolean values and None\r\n    { pattern: /\\b(True|False|None)\\b/, points: 2 },\r\n\r\n    // Data structures (Lists, Tuples, Dictionaries, Sets)\r\n    { pattern: /\\[[^\\[\\]]*\\]/, points: 3 }, // Lists\r\n    { pattern: /\\([^\\(\\)]*\\)/, points: 3 }, // Tuples\r\n    { pattern: /\\{(\\s*'.+'\\s*:\\s*.+,?)+\\}/, points: 3 }, // Dicts\r\n    { pattern: /\\{[^:]*\\}/, points: 2 }, // Sets\r\n\r\n    // If-elif-else statements\r\n    { pattern: /^\\s*(if|elif|else)\\s+.+:/, points: 3 },\r\n\r\n    // Loops (for, while)\r\n    { pattern: /^\\s*(for|while)\\s+.+:/, points: 3 },\r\n    { pattern: /\\bfor\\s+\\w+\\s+in\\s+range\\(.+\\)/, points: 3 },  // Common pattern\r\n\r\n    // Exception handling (try-except-finally)\r\n    { pattern: /^\\s*try\\s*:/, points: 3 },\r\n    { pattern: /^\\s*except\\s+.*:/, points: 3 },\r\n    { pattern: /^\\s*finally\\s*:/, points: 3 },\r\n\r\n    // Context managers (with statement)\r\n    { pattern: /^\\s*with\\s+.+:/, points: 3 },\r\n\r\n    // List, Dict, and Set comprehensions\r\n    { pattern: /\\[.+\\s+for\\s+\\w+\\s+in\\s+.+\\]/, points: 3 },\r\n    { pattern: /\\{.+:.+\\s+for\\s+\\w+\\s+in\\s+.+\\}/, points: 3 },\r\n    { pattern: /\\(.+\\s+for\\s+\\w+\\s+in\\s+.+\\)/, points: 3 },  // Generator expression\r\n\r\n    // Print statements (Python 2 and 3)\r\n    { pattern: /^\\s*print\\(.*\\)/, points: 3 },\r\n    { pattern: /^\\s*print\\s+.+/, points: -2 }, // Penalize Python 2 print syntax\r\n\r\n    // String formatting (`f\"Hello {name}\"`, `.format()`, `%` formatting)\r\n    { pattern: /f\"[^\"]*{[^}]+}[^\"]*\"/, points: 3 }, // f-strings\r\n    { pattern: /\".*?%[dsf]/, points: 2 }, // Old-style % formatting\r\n    { pattern: /\".*?\\.format\\(.*\\)/, points: 2 }, // .format() method\r\n\r\n    // Decorators (@decorator_name)\r\n    { pattern: /^\\s*@\\w+/, points: 3 },\r\n\r\n    // Async features (await keyword)\r\n    { pattern: /await\\s+\\w+/, points: 3 },\r\n\r\n    // Type hints (Python 3.5+)\r\n    { pattern: /\\w+\\s*:\\s*\\w+/, points: 3 },\r\n    { pattern: /->\\s*\\w+/, points: 3 },\r\n\r\n    // Walrus operator (Python 3.8+)\r\n    { pattern: /:=/, points: 3 },\r\n\r\n    // Dataclasses (Python 3.7+)\r\n    { pattern: /^\\s*@dataclass/, points: 3 },\r\n\r\n    // Match-case statement (Python 3.10+)\r\n    { pattern: /^\\s*match\\s+\\w+:/, points: 3 },\r\n    { pattern: /^\\s*case\\s+.+:/, points: 3 },\r\n\r\n    // Penalties for deprecated syntax (Python 2)\r\n    { pattern: /^\\s*exec\\s+.+/, points: -2 }, // exec statement\r\n    { pattern: /^\\s*print\\s+.+/, points: -2 }, // print statement (Python 2)\r\n\r\n    // Common built-in functions\r\n    { pattern: /\\b(len|sum|map|filter|zip|sorted|range|enumerate|type|id|open|dir|vars|globals|locals)\\s*\\(.*\\)/, points: 3 },\r\n\r\n    // Commonly used Python libraries (NumPy, Pandas, etc.)\r\n    { pattern: /^\\s*(import|from)\\s+(numpy|pandas|matplotlib|scipy|sklearn|tensorflow|torch)\\b/, points: 3 },\r\n\r\n    // Negative Points for JavaScript Syntax\r\n    { pattern: /function\\s+\\w+\\s*\\(.*\\)\\s*{/, points: -5 }, // JS function\r\n    { pattern: /console\\.log\\s*\\(.*\\)/, points: -5 }, // JS console.log\r\n    { pattern: /let\\s+\\w+\\s*=?/, points: -5 }, // JS let keyword\r\n    { pattern: /const\\s+\\w+\\s*=?/, points: -5 }, // JS const keyword\r\n    { pattern: /var\\s+\\w+\\s*=?/, points: -5 }, // JS var keyword\r\n    { pattern: /window\\.addEventListener\\s*\\(.*\\)/, points: -10 }, // JS event listener\r\n    { pattern: /document\\.(getElementById|getElementsByClassName|getElementsByTagName|querySelector|querySelectorAll)\\(/, points: -10 }, // JS DOM API\r\n    { pattern: /document\\.addEventListener\\(/, points: -10 },\r\n    { pattern: /export\\s+default\\s+/, points: -5 }, // JS export\r\n    { pattern: /import\\s+.*\\s+from\\s+[\"']/, points: -5 }, // JS import syntax\r\n    { pattern: /\\(\\)\\s*=>/, points: -5 }, // Arrow functions in JS\r\n    { pattern: /Promise\\s*\\(/, points: -5 }, // JS Promise\r\n    { pattern: /\\.then\\s*\\(/, points: -5 }, // JS Promise .then()\r\n    { pattern: /setTimeout\\s*\\(.*\\)/, points: -5 }, // JavaScript setTimeout\r\n    { pattern: /setInterval\\s*\\(.*\\)/, points: -5 }, // JavaScript setInterval\r\n],\r\n\r\n Java: [\r\n  // Package and import statements\r\n  { pattern: /^\\s*package\\s+\\w+(\\.\\w+)*\\s*;/, points: 2 },\r\n  { pattern: /^\\s*import\\s+(\\w+(\\.\\w+)*|\\w+(\\.\\w+)*\\.\\*);\\s*$/, points: 2 },\r\n  // Class declaration\r\n  { pattern: /^\\s*(public|private|protected)?\\s*class\\s+\\w+(\\s+extends\\s+\\w+)?(\\s+implements\\s+\\w+(,\\s*\\w+)*)?\\s*{/, points: 3 },\r\n  // Interface declaration\r\n  { pattern: /^\\s*(public|private|protected)?\\s*interface\\s+\\w+/, points: 3 },\r\n  // Method declaration\r\n  { pattern: /^\\s*(public|private|protected)?\\s*(static)?\\s*(void|\\w+)\\s+\\w+\\s*\\(.*\\)\\s*{/, points: 3 },\r\n  // Variable declarations\r\n  { pattern: /^\\s*(public|private|protected)?\\s*(static)?\\s*(final)?\\s*\\w+\\s+\\w+\\s*=?\\s*.+\\s*;/, points: 2 },\r\n  // Primitive data types\r\n  { pattern: /\\b(int|long|double|float|char|byte|short|boolean)\\b/, points: 2 },\r\n  // Object data types\r\n  { pattern: /\\b(String|Integer|Double|Float|Boolean|List|Map|Set|Queue)\\b/, points: 2 },\r\n  // Main method\r\n  { pattern: /public\\s+static\\s+void\\s+main\\s*\\(\\s*String\\[\\]\\s+\\w+\\s*\\)\\s*{/, points: 5 },\r\n  // Loops\r\n  { pattern: /for\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  { pattern: /while\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  { pattern: /do\\s*{/, points: 2 },\r\n  // Conditionals\r\n  { pattern: /if\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  { pattern: /else\\s*{/, points: 2 },\r\n  { pattern: /else\\s+if\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  // Try-catch-finally blocks\r\n  { pattern: /try\\s*{/, points: 2 },\r\n  { pattern: /catch\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  { pattern: /finally\\s*{/, points: 2 },\r\n  // Enhanced for loop\r\n  { pattern: /for\\s*\\(\\s*\\w+\\s+:\\s+\\w+\\s*\\)\\s*{/, points: 3 },\r\n  // Annotations\r\n  { pattern: /@\\w+/, points: 3 },\r\n  // Generics\r\n  { pattern: /\\w+<\\w+>/, points: 3 },\r\n  // Static blocks\r\n  { pattern: /static\\s*{/, points: 3 },\r\n  // Synchronized blocks\r\n  { pattern: /synchronized\\s*\\(.*\\)\\s*{/, points: 3 },\r\n  // Lambda expressions (Java 8+)\r\n  { pattern: /\\(.*\\)\\s*->\\s*.+/, points: 3 },\r\n  // Streams (Java 8+)\r\n  { pattern: /\\.stream\\(\\)/, points: 2 },\r\n  { pattern: /\\.collect\\(.*\\)/, points: 2 },\r\n  // Try-with-resources (Java 7+)\r\n  { pattern: /try\\s*\\(.*\\)\\s*{/, points: 3 },\r\n  // Switch statements\r\n  { pattern: /switch\\s*\\(.*\\)\\s*{/, points: 2 },\r\n  { pattern: /case\\s+.+:/, points: 2 },\r\n  { pattern: /default\\s*:/, points: 2 },\r\n  // Deprecated syntax or conventions (penalize)\r\n  { pattern: /System\\.gc\\(\\)/, points: -2 },\r\n  { pattern: /Thread\\.stop\\(\\)/, points: -3 },\r\n  { pattern: /System\\.runFinalizersOnExit\\(\\)/, points: -3 },\r\n  // Singleton pattern (bonus detection)\r\n  { pattern: /private\\s+static\\s+\\w+\\s+instance\\s*;/, points: 3 },\r\n  { pattern: /public\\s+static\\s+\\w+\\s+getInstance\\s*\\(.*\\)\\s*{/, points: 3 },\r\n  // Deprecated API usage\r\n  { pattern: /java\\.util\\.Vector|java\\.util\\.Hashtable/, points: -2 },\r\n  // Basic system output\r\n  { pattern: /System\\.out\\.print(ln)?\\s*\\(.*\\)/, points: 2 },\r\n  // Collections usage\r\n  { pattern: /new\\s+(ArrayList|LinkedList|HashMap|HashSet|TreeSet|TreeMap)<.*>\\s*\\(.*\\)/, points: 2 }\r\n],\r\n\r\n\r\n  HTML: [\r\n    // Standard HTML doctype\r\n    { pattern: /<!DOCTYPE html>/i, points: 15 },\r\n    // Common HTML elements\r\n    { pattern: /<(html|head|body|div|span|h[1-6]|p|a|img|ul|ol|li|table|tr|td|th|form|input|button|label|select|option|textarea)>/i, points: 5 },\r\n    { pattern: /<\\/(html|head|body|div|span|h[1-6]|p|a|img|ul|ol|li|table|tr|td|th|form|input|button|label|select|option|textarea)>/i, points: 5 },\r\n    // Self-closing tags\r\n    { pattern: /<(img|br|hr|meta|link|input|source|area|base|col|embed|param|track|wbr)( [^>]*)?>/i, points: 3 },\r\n    // Anchor with href\r\n    { pattern: /<a\\s+[^>]*href=\"[^\"]*\"/i, points: 3 },\r\n    // Image with src and alt\r\n    { pattern: /<img\\s+[^>]*src=\"[^\"]*\"[^>]*alt=\"[^\"]*\"/i, points: 3 },\r\n    // Forms and related elements\r\n    { pattern: /<form( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<input( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<button( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<select( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<textarea( [^>]*)?>/i, points: 2 },\r\n    // Tables\r\n    { pattern: /<table( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<tr( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<td( [^>]*)?>/i, points: 2 },\r\n    { pattern: /<th( [^>]*)?>/i, points: 2 },\r\n    // Inline styles\r\n    { pattern: /style=\"[^\"]*\"/i, points: 1 },\r\n    // Event attributes\r\n    { pattern: /on(click|load|mouseover|mouseout|change|submit|keydown|keyup|focus|blur)=\"[^\"]*\"/i, points: 2 },\r\n    // HTML comments\r\n    { pattern: /<!--.*-->/, points: 1 },\r\n    // Inline scripts\r\n    { pattern: /<script( [^>]*)?>.*<\\/script>/is, points: 2 },\r\n    // Inline CSS\r\n    { pattern: /<style( [^>]*)?>.*<\\/style>/is, points: 2 },\r\n    // Meta tags\r\n    { pattern: /<meta( [^>]*)?>/i, points: 3 },\r\n    // Links to external stylesheets\r\n    { pattern: /<link\\s+[^>]*rel=\"stylesheet\"[^>]*>/i, points: 3 },\r\n    // Accessibility attributes\r\n    { pattern: /alt=\"[^\"]*\"/i, points: 2 },\r\n    { pattern: /aria-[a-z]+=\"[^\"]*\"/i, points: 2 },\r\n    { pattern: /role=\"[^\"]*\"/i, points: 2 },\r\n    // Deprecated or non-standard elements\r\n    { pattern: /<(font|center|big|strike|tt|marquee|blink)/i, points: -3 },\r\n    // Missing alt attribute in <img>\r\n    { pattern: /<img\\s+[^>]*src=\"[^\"]*\"[^>]*(?!alt)/i, points: -2 },\r\n    // Incorrect nesting\r\n    { pattern: /<p>.*<(div|table|form).*<\\/(div|table|form)>.*<\\/p>/is, points: -2 },\r\n    // Inline JavaScript event handler usage\r\n    { pattern: /on\\w+=\"[^\"]*\"/i, points: 1 },\r\n],\r\n\r\nCSS: [\r\n  // Basic selectors\r\n  { pattern: /^[\\w\\.\\#]+[^\\{\\}]*\\{/, points: 2 }, // Class, ID, or tag selectors\r\n  // Universal selector\r\n  { pattern: /\\*\\s*\\{/, points: 1 },\r\n  // Attribute selectors\r\n  { pattern: /\\[.+?\\]/, points: 2 },\r\n  // Pseudo-classes\r\n  { pattern: /:\\w+/, points: 2 },\r\n  // Pseudo-elements\r\n  { pattern: /::\\w+/, points: 3 },\r\n  // Descendant combinator\r\n  { pattern: /[\\w\\.\\#]+\\s+[\\w\\.\\#]+/, points: 2 },\r\n  // Child combinator\r\n  { pattern: /[\\w\\.\\#]+\\s*>\\s*[\\w\\.\\#]+/, points: 2 },\r\n  // Adjacent sibling combinator\r\n  { pattern: /[\\w\\.\\#]+\\s*\\+\\s*[\\w\\.\\#]+/, points: 2 },\r\n  // General sibling combinator\r\n  { pattern: /[\\w\\.\\#]+\\s*~\\s*[\\w\\.\\#]+/, points: 2 },\r\n  // Media queries\r\n  { pattern: /@media\\s+[^{]+\\{/, points: 3 },\r\n  // Keyframes\r\n  { pattern: /@keyframes\\s+\\w+\\s*\\{/, points: 3 },\r\n  // CSS Variables\r\n  { pattern: /--\\w+\\s*:\\s*.+;/, points: 3 },\r\n  { pattern: /var\\(--\\w+\\)/, points: 3 },\r\n  // Flexbox properties\r\n  { pattern: /display\\s*:\\s*flex\\s*;/, points: 3 },\r\n  { pattern: /justify-content\\s*:\\s*(center|space-between|space-around|space-evenly|flex-start|flex-end)\\s*;/, points: 2 },\r\n  { pattern: /align-items\\s*:\\s*(center|stretch|flex-start|flex-end|baseline)\\s*;/, points: 2 },\r\n  // Grid properties\r\n  { pattern: /display\\s*:\\s*grid\\s*;/, points: 3 },\r\n  { pattern: /grid-template-columns\\s*:\\s*.+;/, points: 3 },\r\n  { pattern: /grid-template-rows\\s*:\\s*.+;/, points: 3 },\r\n  // Transition properties\r\n  { pattern: /transition\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /transition-duration\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /transition-timing-function\\s*:\\s*.+;/, points: 2 },\r\n  // Animation properties\r\n  { pattern: /animation\\s*:\\s*.+;/, points: 3 },\r\n  { pattern: /animation-name\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /animation-duration\\s*:\\s*.+;/, points: 2 },\r\n  // Colors (hex, RGB, RGBA, HSL, HSLA)\r\n  { pattern: /#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})/, points: 2 },\r\n  { pattern: /rgb\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*\\)/, points: 2 },\r\n  { pattern: /rgba\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*(0?\\.\\d+|1)\\s*\\)/, points: 2 },\r\n  { pattern: /hsl\\(\\s*\\d+\\s*,\\s*\\d+%\\s*,\\s*\\d+%\\s*\\)/, points: 2 },\r\n  { pattern: /hsla\\(\\s*\\d+\\s*,\\s*\\d+%\\s*,\\s*\\d+%\\s*,\\s*(0?\\.\\d+|1)\\s*\\)/, points: 2 },\r\n  // Background and gradient properties\r\n  { pattern: /background\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /background-image\\s*:\\s*linear-gradient\\(.+\\);/, points: 3 },\r\n  { pattern: /background-image\\s*:\\s*radial-gradient\\(.+\\);/, points: 3 },\r\n  // Box model properties\r\n  { pattern: /margin\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /padding\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /border\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /width\\s*:\\s*.+;/, points: 2 },\r\n  { pattern: /height\\s*:\\s*.+;/, points: 2 },\r\n  // Deprecated/invalid syntax (penalize)\r\n  { pattern: /-webkit-[^:]+:\\s*.+;/, points: -1 }, // Vendor prefixes\r\n  { pattern: /-moz-[^:]+:\\s*.+;/, points: -1 }, // Vendor prefixes\r\n  { pattern: /-ms-[^:]+:\\s*.+;/, points: -1 }, // Vendor prefixes\r\n  // Inline styles\r\n  { pattern: /style\\s*=\\s*\".*\"/, points: -3 }, // Penalize inline styles\r\n],\r\n\r\n\r\n  Ruby: [\r\n    // require/include\r\n    { pattern: /(require|include)( )+'\\w+(\\.rb)?'/, points: 2, nearTop: true },\r\n    // Function definition\r\n    { pattern: /def( )+\\w+( )*(\\(.+\\))?( )*\\n/, points: 2 },\r\n    // Instance variables\r\n    { pattern: /@\\w+/, points: 2 },\r\n    // Boolean property\r\n    { pattern: /\\.\\w+\\?/, points: 2 },\r\n    // puts (Ruby print)\r\n    { pattern: /puts( )+(\"|').+(\"|')/, points: 2 },\r\n    // Inheriting class\r\n    { pattern: /class [A-Z]\\w*( )*<( )*([A-Z]\\w*(::)?)+/, points: 2 },\r\n    // attr_accessor\r\n    { pattern: /attr_accessor( )+(:\\w+(,( )*)?)+/, points: 2 },\r\n    // new\r\n    { pattern: /\\w+\\.new( )+/, points: 2 },\r\n    // elsif keyword\r\n    { pattern: /elsif/, points: 2 },\r\n    // do\r\n    { pattern: /do( )*\\|(\\w+(,( )*\\w+)?)+\\|/, points: 2 },\r\n    // for loop\r\n    { pattern: /for (\\w+|\\(?\\w+,( )*\\w+\\)?) in (.+)/, points: 1 },\r\n    // nil keyword\r\n    { pattern: /nil/, points: 1 },\r\n    // Scope operator\r\n    { pattern: /[A-Z]\\w*::[A-Z]\\w*/, points: 1 },\r\n  ],\r\n\r\n  Go: [\r\n    // package something\r\n    { pattern: /package( )+[a-z]+\\n/, points: 2, nearTop: true },\r\n    // import\r\n    {\r\n      pattern: /(import( )*\\(( )*\\n)|(import( )+\"[a-z0-9\\/\\.]+\")/,\r\n      points: 2,\r\n      nearTop: true,\r\n    },\r\n    // error check\r\n    { pattern: /if.+err( )*!=( )*nil.+{/, points: 2 },\r\n    // Go print\r\n    { pattern: /fmt\\.Print(f|ln)?\\(.*\\)/, points: 2 },\r\n    // function\r\n    { pattern: /func(( )+\\w+( )*)?\\(.*\\).*{/, points: 2 },\r\n    // variable initialisation\r\n    { pattern: /\\w+( )*:=( )*.+[^;\\n]/, points: 2 },\r\n    // if/else if\r\n    { pattern: /(}( )*else( )*)?if[^\\(\\)]+{/, points: 2 },\r\n    // var/const declaration\r\n    { pattern: /(var|const)( )+\\w+( )+[\\w\\*]+(\\n|( )*=|$)/, points: 2 },\r\n    // public access on package\r\n    { pattern: /[a-z]+\\.[A-Z]\\w*/, points: 1 },\r\n    // nil keyword\r\n    { pattern: /nil/, points: 1 },\r\n    // Single quote multicharacter string\r\n    { pattern: /'.{2,}'/, points: -1 },\r\n  ],\r\n\r\n  PHP: [\r\n    // PHP tag\r\n    { pattern: /<\\?php/, points: 2 },\r\n    // PHP style variables.\r\n    { pattern: /\\$\\w+/, points: 2 },\r\n    // use Something\\Something;\r\n    { pattern: /use( )+\\w+(\\\\\\w+)+( )*;/, points: 2, nearTop: true },\r\n    // arrow\r\n    { pattern: /\\$\\w+\\->\\w+/, points: 2 },\r\n    // require/include\r\n    {\r\n      pattern:\r\n        /(require|include)(_once)?( )*\\(?( )*('|\").+\\.php('|\")( )*\\)?( )*;/,\r\n      points: 2,\r\n    },\r\n    // echo 'something';\r\n    { pattern: /echo( )+('|\").+('|\")( )*;/, points: 1 },\r\n    // NULL constant\r\n    { pattern: /NULL/, points: 1 },\r\n    // new keyword\r\n    { pattern: /new( )+((\\\\\\w+)+|\\w+)(\\(.*\\))?/, points: 1 },\r\n    // Function definition\r\n    { pattern: /function(( )+[\\$\\w]+\\(.*\\)|( )*\\(.*\\))/g, points: 1 },\r\n    // (else)if statement\r\n    { pattern: /(else)?if( )+\\(.+\\)/, points: 1 },\r\n    // scope operator\r\n    { pattern: /\\w+::\\w+/, points: 1 },\r\n    // === operator\r\n    { pattern: /\\===/g, points: 1 },\r\n    // !== operator\r\n    { pattern: /!==/g, points: 1 },\r\n    // C/JS style variable declaration.\r\n    {\r\n      pattern: /(^|\\s)(var|char|long|int|float|double)( )+\\w+( )*=?/,\r\n      points: -1,\r\n    },\r\n  ],\r\n\r\n  CSharp: [\r\n    // Namespace declaration\r\n    { pattern: /^\\s*namespace\\s+\\w+(\\.\\w+)*\\s*{/, points: 2 },\r\n    // Using directives (imports)\r\n    { pattern: /^\\s*using\\s+[\\w\\.\\,]+\\s*;/, points: 2 },\r\n    // Detecting `using System;`\r\n    { pattern: /^\\s*using\\s+System\\s*;/, points: 3 },\r\n    // Class declaration\r\n    { pattern: /^\\s*(public|private|protected|internal|static|sealed|abstract)?\\s*class\\s+\\w+(\\s+extends\\s+\\w+)?(\\s+implements\\s+\\w+(,\\s*\\w+)*)?\\s*{/, points: 3 },\r\n    // Interface declaration\r\n    { pattern: /^\\s*(public|private|protected|internal|static|sealed|abstract)?\\s*interface\\s+\\w+(\\s+extends\\s+\\w+)?\\s*{/, points: 3 },\r\n    // Method declaration\r\n    { pattern: /^\\s*(public|private|protected|internal|static|virtual|abstract|sealed|async)?\\s*(void|\\w+(\\[\\])?(\\s*\\[\\w+\\])?)\\s+\\w+\\s*\\(.*\\)\\s*{/, points: 3 },\r\n    // Properties\r\n    { pattern: /^\\s*(public|private|protected|internal|static|virtual|abstract|sealed)?\\s*(\\w+\\[\\])?\\s+\\w+\\s*{.*}/, points: 2 },\r\n    // Field declaration\r\n    { pattern: /^\\s*(public|private|protected|internal|static|readonly|volatile)?\\s*(\\w+\\[\\])?\\s+\\w+\\s*=?\\s*.+\\s*;/, points: 2 },\r\n    // Event declaration\r\n    { pattern: /^\\s*(public|private|protected|internal)?\\s*event\\s+\\w+\\s+\\w+\\s*;/, points: 2 },\r\n    // Constructor\r\n    { pattern: /^\\s*(public|private|protected|internal|static)?\\s*\\w+\\s*\\(.*\\)\\s*{/, points: 3 },\r\n    // Indexers\r\n    { pattern: /^\\s*(public|private|protected|internal|static)?\\s*\\[\\s*(\\w+\\[\\])?\\s*\\w+\\s*\\]\\s*{/, points: 3 },\r\n    // Lambda expressions (C# 3.0+)\r\n    { pattern: /\\(\\w+\\)\\s*=>\\s*.+/, points: 3 },\r\n    // Async methods (C# 5.0+)\r\n    { pattern: /async\\s+(void|\\w+(\\[\\])?(\\s*\\[\\w+\\])?)\\s+\\w+\\s*\\(.*\\)\\s*{/, points: 3 },\r\n    { pattern: /await\\s+\\w+/, points: 3 },\r\n    // LINQ queries (C# 3.0+)\r\n    { pattern: /\\.\\s*(Where|Select|OrderBy|GroupBy|Join|SelectMany|Aggregate|FirstOrDefault|ToList|ToArray|ToDictionary)\\(/, points: 3 },\r\n    // Exception handling (try-catch-finally)\r\n    { pattern: /try\\s*{/, points: 2 },\r\n    { pattern: /catch\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    { pattern: /finally\\s*{/, points: 2 },\r\n    // Conditional statement (if, else if, else)\r\n    { pattern: /if\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    { pattern: /else\\s*{/, points: 2 },\r\n    { pattern: /else\\s+if\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    // Switch statement\r\n    { pattern: /switch\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    { pattern: /case\\s+.*:/, points: 2 },\r\n    { pattern: /default\\s*:/, points: 2 },\r\n    // For loops\r\n    { pattern: /for\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    // While loop\r\n    { pattern: /while\\s*\\(.*\\)\\s*{/, points: 2 },\r\n    // Do-while loop\r\n    { pattern: /do\\s*{/, points: 2 },\r\n    // Foreach loop (C# 3.0+)\r\n    { pattern: /foreach\\s*\\(.*\\)\\s*{/, points: 3 },\r\n    // Array initialization\r\n    { pattern: /new\\s+\\w+\\[\\]\\s*=\\s*\\{.*\\}\\s*;/, points: 2 },\r\n    // Nullable types (C# 2.0+)\r\n    { pattern: /\\w+\\?/, points: 2 },\r\n    // Nullable type checking (C# 2.0+)\r\n    { pattern: /HasValue\\s*==\\s*true/, points: 2 },\r\n    // Properties with getters and setters\r\n    { pattern: /get\\s*{\\s*return\\s+\\w+;\\s*}\\s+set\\s*{\\s*\\w+\\s*=\\s*\\w+;\\s*}/, points: 3 },\r\n    // Delegates and events\r\n    { pattern: /delegate\\s+\\w+\\s+\\w+\\s*;/, points: 2 },\r\n    { pattern: /event\\s+\\w+\\s+\\w+\\s*;/, points: 2 },\r\n    // Extension methods (C# 3.0+)\r\n    { pattern: /public\\s+static\\s+.*\\s+this\\s+\\w+\\s+\\w+\\s*\\(.*\\)\\s*{/, points: 3 },\r\n    // Static classes\r\n    { pattern: /public\\s+static\\s+class\\s+\\w+\\s*{/, points: 2 },\r\n    // Static constructors\r\n    { pattern: /static\\s+.*\\s*\\(\\)\\s*{/, points: 2 },\r\n    // Operator overloading\r\n    { pattern: /\\s*(public|private|protected)?\\s*static\\s*(\\w+\\[\\])?\\s*\\w+\\s*operator\\s*([+\\-*/%&|^<>]=?)\\s*\\(.*\\)/, points: 3 },\r\n    // Using statement (C# 3.0+)\r\n    { pattern: /using\\s+\\(.*\\)\\s*{/, points: 3 },\r\n    // Console.WriteLine usage\r\n    { pattern: /Console\\.WriteLine\\s*\\(.*\\);/, points: 10 },\r\n    // C# 9+ features: records\r\n    { pattern: /record\\s+\\w+\\s*{/, points: 4 },\r\n    // C# 9+ features: init-only properties\r\n    { pattern: /init\\s*{\\s*}/, points: 3 },\r\n    // C# 9+ features: pattern matching\r\n    { pattern: /is\\s+\\w+(\\s+when\\s+.*)?/, points: 3 },\r\n    // Deprecated practices (penalize)\r\n    { pattern: /goto\\s+\\w+;/, points: -3 }, // Goto statement\r\n    { pattern: /unsafe\\s*\\{/, points: -2 }, // Unsafe code\r\n    { pattern: /fixed\\s+\\w+\\[\\]/, points: -3 }, // Fixed size buffers\r\n],\r\n\r\n\r\n\r\n  R: [\r\n    // Variable assignment\r\n    { pattern: /\\w+( )*<-( )*.+/, points: 2 },\r\n    // Function definition\r\n    { pattern: /\\w+( )*<-function\\(.*\\)/, points: 2 },\r\n    // if statement\r\n    { pattern: /if( )*\\(.+\\)/, points: 2 },\r\n    // data.frame declaration\r\n    { pattern: /\\w+( )*<-( )*data\\.frame\\(.+\\)/, points: 2 },\r\n    // print function\r\n    { pattern: /print\\(.+\\)/, points: 1 },\r\n  ],\r\n\r\n  \"Objective-C\": [\r\n    // Variable declaration\r\n    { pattern: /(int|float|NSString|BOOL)( )+\\w+( )*=/, points: 2 },\r\n    // Method definition\r\n    { pattern: /(-|\\+)\\(.*\\)\\w+/, points: 2 },\r\n    // @interface declaration\r\n    { pattern: /@interface( )+\\w+/, points: 2 },\r\n    // #import statement\r\n    { pattern: /#import( )+<.+>/, points: 2 },\r\n    // [NSString stringWithFormat:]\r\n    { pattern: /\\[\\w+ stringWithFormat:( )*.+\\]/, points: 1 },\r\n  ],\r\n\r\n TypeScript: [\r\n  // Strict TypeScript patterns\r\n  { pattern: /let\\s+\\w+\\s*:\\s*[\\w\\[\\]\\|<>,]+\\s*=/, points: 5 }, // Variable with type annotation\r\n  { pattern: /function\\s+\\w+\\(.*:\\s*[\\w<>\\|,]+\\)\\s*:\\s*[\\w<>\\|]+/, points: 5 }, // Function with typed parameters and return type\r\n  { pattern: /interface\\s+\\w+\\s*\\{[^}]+\\}/, points: 5 }, // Interface definition\r\n  { pattern: /type\\s+\\w+\\s*=\\s*[\\w<>\\|]+/, points: 5 }, // Type alias\r\n  { pattern: /import\\s+\\{?[\\w,\\s]+\\}?\\s+from\\s+['\"].+['\"]/, points: 4 }, // Import statement\r\n  { pattern: /enum\\s+\\w+\\s*\\{[^}]+\\}/, points: 5 }, // Enum definition\r\n  { pattern: /as\\s+\\w+/, points: 4 }, // Type assertion using `as`\r\n  { pattern: /\\w+\\s+implements\\s+\\w+/, points: 4 }, // Class implementing an interface\r\n  { pattern: /readonly\\s+\\w+/, points: 4 }, // Readonly modifier\r\n  { pattern: /private\\s+readonly\\s+\\w+\\s*:\\s*[\\w<>\\|]+/, points: 5 }, // Strict class properties\r\n],\r\n\r\n  Swift: [\r\n    // Variable declaration\r\n    { pattern: /var( )+\\w+( )*=/, points: 2 },\r\n    // Function definition\r\n    { pattern: /func( )+\\w+\\(.*\\)/, points: 2 },\r\n    // Class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // import statement\r\n    { pattern: /import( )+.+/, points: 2 },\r\n    // print\r\n    { pattern: /print\\(.+\\)/, points: 1 },\r\n  ],\r\n  Perl: [\r\n    // Variable declaration\r\n    { pattern: /\\$(\\w+)/, points: 2 },\r\n    // Subroutine definition\r\n    { pattern: /sub( )+\\w+\\(.*\\)/, points: 2 },\r\n    // Array declaration\r\n    { pattern: /(\\@|%)(\\w+)/, points: 2 },\r\n    // Hash declaration\r\n    { pattern: /\\%(\\w+)/, points: 2 },\r\n    // Regular expression match\r\n    { pattern: /(\\$\\w+|\\w+)( )=~( )\\/.+\\/[gim]{0,3}/, points: 2 },\r\n    // print statement\r\n    { pattern: /print( )+.+/, points: 1 },\r\n  ],\r\n\r\n  Haskell: [\r\n    // Function definition\r\n    { pattern: /\\w+( )+=\\s*.*\\s*=>/, points: 2 },\r\n    // Type declaration\r\n    { pattern: /\\w+( )*::( )*.+/, points: 2 },\r\n    // Module declaration\r\n    { pattern: /module( )+\\w+( )where/, points: 2 },\r\n    // List comprehension\r\n    { pattern: /\\[.*\\|( )*.+\\]/, points: 2 },\r\n    // putStrLn\r\n    { pattern: /putStrLn\\(.+\\)/, points: 1 },\r\n  ],\r\n  Kotlin: [\r\n    // Kotlin variable declaration\r\n    { pattern: /(val|var)( )+\\w+( )*=/, points: 2 },\r\n    // Kotlin function definition\r\n    { pattern: /fun( )+\\w+\\(.*\\)( )*:/, points: 2 },\r\n    // Kotlin class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // Kotlin if statement\r\n    { pattern: /if( )+\\(.+\\)/, points: 2 },\r\n    // Kotlin for loop\r\n    { pattern: /for( )+\\(.+\\)/, points: 2 },\r\n    // Kotlin lambda expression\r\n    { pattern: /\\{.*\\s*->\\s*.+\\}/, points: 2 },\r\n  ],\r\n  Rust: [\r\n    // Rust variable declaration\r\n    { pattern: /(let|const)( )+\\w+( )*=/, points: 2 },\r\n    // Rust function definition\r\n    { pattern: /fn( )+\\w+\\(.*\\)( )*{/, points: 2 },\r\n    // Rust struct declaration\r\n    { pattern: /struct( )+\\w+/, points: 2 },\r\n    // Rust if statement\r\n    { pattern: /if( )+\\(.+\\)/, points: 2 },\r\n    // Rust match expression\r\n    { pattern: /match( )+\\w+/, points: 2 },\r\n  ],\r\n  Dart: [\r\n    // Dart variable declaration\r\n    { pattern: /var( )+\\w+( )*=/, points: 2 },\r\n    // Dart function definition\r\n    { pattern: /(\\w+ )?\\w+\\(.*\\)( )*{/, points: 2 },\r\n    // Dart class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // Dart if statement\r\n    { pattern: /if( )+\\(.+\\)/, points: 2 },\r\n    // Dart for loop\r\n    { pattern: /for( )+\\(.+\\)/, points: 2 },\r\n    // Dart lambda expression\r\n    { pattern: /(\\w+ )?=>( )*\\{.+\\}/, points: 2 },\r\n  ],\r\n  Julia: [\r\n    // Julia variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Julia function definition\r\n    { pattern: /function( )+\\w+(\\(.+\\))?/, points: 2 },\r\n    // Julia struct declaration\r\n    { pattern: /struct( )+\\w+/, points: 2 },\r\n    // Julia if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // Julia for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // Julia lambda expression\r\n    { pattern: /(\\w+ )?->( )*\\{.+\\}/, points: 2 },\r\n  ],\r\n  Scala: [\r\n    // Scala variable declaration\r\n    { pattern: /val( )+\\w+( )?=( )?.+/, points: 2 },\r\n    // Scala function definition\r\n    { pattern: /def( )+\\w+(\\(.+\\))?/, points: 2 },\r\n    // Scala class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // Scala if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // Scala for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // Scala lambda expression\r\n    { pattern: /(\\w+ )?=>( )*\\{.+\\}/, points: 2 },\r\n  ],\r\n  Groovy: [\r\n    // Groovy variable declaration\r\n    { pattern: /def( )+\\w+( )?=( )?.+/, points: 2 },\r\n    // Groovy function definition\r\n    { pattern: /\\w+( )?(\\(.+\\))?( )*{/, points: 2 },\r\n    // Groovy class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // Groovy if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // Groovy for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // Groovy closure\r\n    { pattern: /(\\w+ )?->( )*\\{.+\\}/, points: 2 },\r\n  ],\r\n  Bash: [\r\n    // Bash variable declaration\r\n    { pattern: /\\w+=( )*.+/, points: 2 },\r\n    // Bash function definition\r\n    { pattern: /\\w+\\(\\)( )*[{(]/, points: 2 },\r\n    // Bash if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // Bash for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // Bash while loop\r\n    { pattern: /while( )+.+/, points: 2 },\r\n    // Bash case statement\r\n    { pattern: /case( )+.+in/, points: 2 },\r\n  ],\r\n  Lua: [\r\n    // Lua variable declaration\r\n    { pattern: /\\w+=( )*.+/, points: 2 },\r\n    // Lua function definition\r\n    { pattern: /function( )+\\w+(\\(.+\\))?/, points: 2 },\r\n    // Lua if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Lua for loop\r\n    { pattern: /for( )+.+do/, points: 2 },\r\n    // Lua while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n    // Lua table declaration\r\n    { pattern: /\\w+=( )*\\{.+\\}/, points: 2 },\r\n  ],\r\n  FSharp: [\r\n    // F# variable declaration\r\n    { pattern: /let( )+\\w+( )?=( )?.+/, points: 2 },\r\n    // F# function definition\r\n    { pattern: /let( )+\\w+(\\(.+\\))?/, points: 2 },\r\n    // F# type declaration\r\n    { pattern: /type( )+\\w+/, points: 2 },\r\n    // F# if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // F# for loop\r\n    { pattern: /for( )+.+do/, points: 2 },\r\n    // F# match expression\r\n    { pattern: /match( )+.+with/, points: 2 },\r\n  ],\r\n  MATLAB: [\r\n    // MATLAB variable declaration\r\n    { pattern: /\\w+=( )*.+/, points: 2 },\r\n    // MATLAB function definition\r\n    { pattern: /\\w+( )?=\\w+\\(.+\\)/, points: 2 },\r\n    // MATLAB if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // MATLAB for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // MATLAB while loop\r\n    { pattern: /while( )+.+/, points: 2 },\r\n    // MATLAB matrix declaration\r\n    { pattern: /\\w+=( )*\\[.+\\]/, points: 2 },\r\n  ],\r\n  Lisp: [\r\n    // Lisp variable declaration\r\n    { pattern: /\\w+=( )*.+/, points: 2 },\r\n    // Lisp function definition\r\n    { pattern: /\\(defun( )+\\w+( )?\\(.+\\)\\)/, points: 2 },\r\n    // Lisp if statement\r\n    { pattern: /\\(if( )+.+\\)/, points: 2 },\r\n    // Lisp for loop\r\n    { pattern: /\\(loop( )+.+\\)/, points: 2 },\r\n    // Lisp while loop\r\n    { pattern: /\\(while( )+.+\\)/, points: 2 },\r\n    // Lisp list declaration\r\n    { pattern: /\\w+=( )*\\(.+\\)/, points: 2 },\r\n  ],\r\n  Prolog: [\r\n    // Prolog fact declaration\r\n    { pattern: /\\w+\\(.+\\)\\./, points: 2 },\r\n    // Prolog rule declaration\r\n    { pattern: /\\w+\\(( )?.+( )?(\\,( )?.+)?\\)( )?:-/, points: 2 },\r\n    // Prolog cut operator\r\n    { pattern: /!/, points: 2 },\r\n  ],\r\n  COBOL: [\r\n    // COBOL variable declaration\r\n    { pattern: /\\w+( )+PIC( )+.+/, points: 2 },\r\n    // COBOL paragraph declaration\r\n    { pattern: /\\w+( )+\\.\\n/, points: 2 },\r\n    // COBOL IF statement\r\n    { pattern: /IF( )+.+/, points: 2 },\r\n    // COBOL PERFORM statement\r\n    { pattern: /PERFORM( )+.+/, points: 2 },\r\n    // COBOL MOVE statement\r\n    { pattern: /MOVE( )+.+TO( )+.+/, points: 2 },\r\n  ],\r\n  Fortran: [\r\n    // Fortran variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Fortran subroutine declaration\r\n    { pattern: /SUBROUTINE( )+\\w+\\(.+\\)/, points: 2 },\r\n    // Fortran IF statement\r\n    { pattern: /IF( )+.+THEN/, points: 2 },\r\n    // Fortran DO loop\r\n    { pattern: /DO( )+.+/, points: 2 },\r\n    // Fortran CONTINUE statement\r\n    { pattern: /CONTINUE/, points: 2 },\r\n  ],\r\n  Ada: [\r\n    // Ada variable declaration\r\n    { pattern: /\\w+( )?:( )?.+/, points: 2 },\r\n    // Ada procedure declaration\r\n    { pattern: /PROCEDURE( )+\\w+/, points: 2 },\r\n    // Ada IF statement\r\n    { pattern: /IF( )+.+THEN/, points: 2 },\r\n    // Ada LOOP statement\r\n    { pattern: /LOOP( )+.+/, points: 2 },\r\n    // Ada assignment statement\r\n    { pattern: /\\w+( )?:=.*/, points: 2 },\r\n  ],\r\n  Elm: [\r\n    // Elm variable declaration\r\n    { pattern: /\\w+( )?=.+/, points: 2 },\r\n    // Elm function definition\r\n    { pattern: /\\w+( )?\\(.+\\)( )?=.+/, points: 2 },\r\n    // Elm type declaration\r\n    { pattern: /type( )+\\w+( )?=.+/, points: 2 },\r\n    // Elm if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Elm case expression\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n  ],\r\n  Crystal: [\r\n    // Crystal variable declaration\r\n    { pattern: /\\w+( )?=.+/, points: 2 },\r\n    // Crystal function definition\r\n    { pattern: /\\w+( )?\\(.+\\)( )?=.+/, points: 2 },\r\n    // Crystal class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // Crystal if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Crystal while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n    // Crystal module declaration\r\n    { pattern: /module( )+\\w+/, points: 2 },\r\n  ],\r\n  Elixir: [\r\n    // Elixir variable declaration\r\n    { pattern: /\\w+( )?=.+/, points: 2 },\r\n    // Elixir function definition\r\n    { pattern: /\\w+\\(.*\\)( )?->/, points: 2 },\r\n    // Elixir module declaration\r\n    { pattern: /defmodule( )+\\w+/, points: 2 },\r\n    // Elixir if statement\r\n    { pattern: /if( )+.+do/, points: 2 },\r\n    // Elixir case expression\r\n    { pattern: /case( )+.+do/, points: 2 },\r\n    // Elixir pipe operator\r\n    { pattern: /\\|>/, points: 2 },\r\n    // Elixir module attribute\r\n    { pattern: /@(\\w+)/, points: 2 },\r\n  ],\r\n  Clojure: [\r\n    // Clojure variable declaration\r\n    { pattern: /\\(def( )+\\w+( )?.+\\)/, points: 2 },\r\n    // Clojure function definition\r\n    { pattern: /\\((defn|defn-)( )+\\w+( )?\\[.*\\]( )?.+\\)/, points: 2 },\r\n    // Clojure if statement\r\n    { pattern: /\\(if( )+.+\\)/, points: 2 },\r\n    // Clojure for loop\r\n    { pattern: /\\(for( )+.+\\)/, points: 2 },\r\n    // Clojure while loop\r\n    { pattern: /\\(while( )+.+\\)/, points: 2 },\r\n    // Clojure map declaration\r\n    { pattern: /\\{.*\\}/, points: 2 },\r\n  ],\r\n\r\n  CoffeeScript: [\r\n    // Variable declaration without 'var', 'let', or 'const'\r\n    { pattern: /^\\s*\\w+\\s*=\\s*.+/, points: 2 },\r\n    // Function definition (arrow function, no 'function' keyword)\r\n    { pattern: /\\w+\\s*=\\s*\\(?.*\\)?\\s*->/, points: 3 },\r\n    { pattern: /^\\s*->\\s*$/, points: 2 },\r\n    // Implicit return (no explicit 'return' keyword)\r\n    { pattern: /^\\s*\\w+\\s*=\\s*\\(?.*\\)?\\s*->\\s*[^return]/, points: 2 },\r\n    // String interpolation\r\n    { pattern: /\"#\\{.+?\\}\"/, points: 2 },\r\n    // For loop (no parentheses or curly braces)\r\n    { pattern: /for\\s+\\w+\\s+(in|of)\\s+.+/, points: 3 },\r\n    // Range\r\n    { pattern: /\\d+\\.\\.\\d+/, points: 2 },\r\n    // Destructuring assignment\r\n    { pattern: /{(\\s*\\w+\\s*,?)+\\s*} =/, points: 2 },\r\n    // Class declaration\r\n    { pattern: /^class\\s+\\w+/, points: 3 },\r\n    // Constructor method (no explicit 'constructor' keyword)\r\n    { pattern: /^\\s*constructor\\s*:/, points: 3 },\r\n    // Try/Catch block\r\n    { pattern: /try\\s*.*\\s*catch\\s+.*:/, points: 2 },\r\n    // Single-line if\r\n    { pattern: /if\\s+.+\\s+then\\s+.+/, points: 2 },\r\n    // Unless keyword (equivalent to 'if not')\r\n    { pattern: /unless\\s+.+/, points: 2 },\r\n    // Chained method calls (implicit return chaining)\r\n    { pattern: /\\.\\w+\\s*$/, points: 2 },\r\n    // Fat arrows (bound functions)\r\n    { pattern: /=>/, points: 3 },\r\n    // Undefined or null\r\n    { pattern: /undefined|null/, points: 1 },\r\n    // Inline objects\r\n    { pattern: /{[^:]+:\\s*.+}/, points: 2 },\r\n    // Inline arrays\r\n    { pattern: /\\[.+\\]/, points: 2 },\r\n    // Splat operator (spread/rest equivalent)\r\n    { pattern: /\\.\\.\\./, points: 3 },\r\n    // Object comprehension\r\n    { pattern: /for\\s+\\w+,\\s*\\w+\\s+of\\s+.+/, points: 3 },\r\n    // Implicit this\r\n    { pattern: /@(\\w+)/, points: 2 },\r\n    // Do keyword (immediate invocation)\r\n    { pattern: /do\\s+\\(?.*\\)?/, points: 2 },\r\n    // No parentheses for function calls\r\n    { pattern: /\\w+\\s+[^()\\s]+\\s*,?\\s*[^()\\s]+/, points: 2 },\r\n    // Indentation for code blocks\r\n    { pattern: /^\\s*\\w+:$/, points: 1 },\r\n    // Explicit JavaScript code with backticks\r\n    { pattern: /`[^`]+`/, points: -5 }\r\n],\r\n\r\n  ObjectiveCPP: [\r\n    // Objective-C++ variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Objective-C++ for loop\r\n    { pattern: /for\\(.+\\)/, points: 2 },\r\n    // Objective-C++ while loop\r\n    { pattern: /while\\(.+\\)/, points: 2 },\r\n    // Objective-C++ if statement\r\n    { pattern: /if\\(.+\\)/, points: 2 },\r\n    // Objective-C++ switch statement\r\n    { pattern: /switch\\(.+\\)/, points: 2 },\r\n    // Objective-C++ property declaration\r\n    { pattern: /\\@property( )?.+;/, points: 2 },\r\n  ],\r\n\r\n  Racket: [\r\n    // Racket variable declaration\r\n    { pattern: /\\(define( )+\\(.*\\)( )?.+\\)/, points: 2 },\r\n    // Racket function definition\r\n    { pattern: /\\(define( )+\\(.*\\)/, points: 2 },\r\n    // Racket structure declaration\r\n    { pattern: /\\(struct( )+\\w+( )?.+\\)/, points: 2 },\r\n    // Racket if statement\r\n    { pattern: /\\(if( )+.+\\)/, points: 2 },\r\n    // Racket for loop\r\n    { pattern: /\\(for( )+.+\\)/, points: 2 },\r\n    // Racket lambda expression\r\n    { pattern: /\\(lambda( )?\\(.*\\)/, points: 2 },\r\n  ],\r\n  Erlang: [\r\n    // Erlang variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Erlang function definition\r\n    { pattern: /\\w+\\(.*\\)( )?->/, points: 2 },\r\n    // Erlang module declaration\r\n    { pattern: /-module\\(.*\\)/, points: 2 },\r\n    // Erlang if statement\r\n    { pattern: /if( )+.+->/, points: 2 },\r\n    // Erlang case expression\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // Erlang record declaration\r\n    { pattern: /-record\\(.*\\)/, points: 2 },\r\n  ],\r\n  Apex: [\r\n    // Apex variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Apex method definition\r\n    { pattern: /(\\w+\\s)+\\w+\\(.+\\)( )?\\{/, points: 2 },\r\n    // Apex class declaration\r\n    { pattern: /(public|private|global)( )?class( )+\\w+/, points: 2 },\r\n    // Apex if statement\r\n    { pattern: /if( )+.+/, points: 2 },\r\n    // Apex for loop\r\n    { pattern: /for( )+.+/, points: 2 },\r\n    // Apex SOQL query\r\n    { pattern: /SELECT( )+.+FROM( )+.+/, points: 2 },\r\n  ],\r\n  VHDL: [\r\n    // VHDL signal declaration\r\n    { pattern: /\\w+( )?:( )?(\\w+|.+)( )?:=/, points: 2 },\r\n    // VHDL process declaration\r\n    { pattern: /process( )?\\(.+\\)/, points: 2 },\r\n    // VHDL if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // VHDL case statement\r\n    { pattern: /case( )+.+is/, points: 2 },\r\n    // VHDL for loop\r\n    { pattern: /for( )+.+in/, points: 2 },\r\n    // VHDL entity declaration\r\n    { pattern: /entity( )+\\w+/, points: 2 },\r\n  ],\r\n  Verilog: [\r\n    // Verilog wire or reg declaration\r\n    { pattern: /(wire|reg)( )+(.+)?;/, points: 2 },\r\n    // Verilog module declaration\r\n    { pattern: /module( )+\\w+\\(/, points: 2 },\r\n    // Verilog if statement\r\n    { pattern: /if\\(.+\\)/, points: 2 },\r\n    // Verilog case statement\r\n    { pattern: /case\\(.+\\)/, points: 2 },\r\n    // Verilog for loop\r\n    { pattern: /for\\(.+\\)/, points: 2 },\r\n    // Verilog always block\r\n    { pattern: /always\\(/, points: 2 },\r\n  ],\r\n  Scheme: [\r\n    // Scheme variable declaration\r\n    { pattern: /\\(define( )+\\(.*\\)/, points: 2 },\r\n    // Scheme function definition\r\n    { pattern: /\\(define( )+\\(.*\\)/, points: 2 },\r\n    // Scheme if statement\r\n    { pattern: /\\(if( )+.+\\)/, points: 2 },\r\n    // Scheme for loop\r\n    { pattern: /\\(for( )+.+\\)/, points: 2 },\r\n    // Scheme while loop\r\n    { pattern: /\\(while( )+.+\\)/, points: 2 },\r\n    // Scheme lambda expression\r\n    { pattern: /\\(lambda( )?\\(.*\\)/, points: 2 },\r\n  ],\r\n  Tcl: [\r\n    // Tcl variable declaration\r\n    { pattern: /set( )+\\w+( )?.+/, points: 2 },\r\n    // Tcl procedure definition\r\n    { pattern: /proc( )+\\w+( )?\\{.+/, points: 2 },\r\n    // Tcl if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Tcl switch statement\r\n    { pattern: /switch( )+\\{.+/, points: 2 },\r\n    // Tcl for loop\r\n    { pattern: /for( )+\\{\\w+ (in|range) .+\\}/, points: 2 },\r\n    // Tcl while loop\r\n    { pattern: /while( )+.+/, points: 2 },\r\n  ],\r\n  COOL: [\r\n    // COOL class declaration\r\n    { pattern: /class( )+\\w+/, points: 2 },\r\n    // COOL method definition\r\n    { pattern: /\\w+( )?:( )?(\\w+)?/, points: 2 },\r\n    // COOL if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // COOL case statement\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // COOL let expression\r\n    { pattern: /let( )+.+in/, points: 2 },\r\n    // COOL while loop\r\n    { pattern: /while( )+.+loop/, points: 2 },\r\n  ],\r\n  Nim: [\r\n    // Nim variable declaration\r\n    { pattern: /\\w+( )?=( )?.+/, points: 2 },\r\n    // Nim procedure definition\r\n    { pattern: /proc( )+\\w+( )?\\{/, points: 2 },\r\n    // Nim type declaration\r\n    { pattern: /type( )+\\w+( )?=/, points: 2 },\r\n    // Nim if statement\r\n    { pattern: /if( )+.+:/, points: 2 },\r\n    // Nim case statement\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // Nim while loop\r\n    { pattern: /while( )+.+:/, points: 2 },\r\n  ],\r\n  // J: [\r\n  // ],\r\n  K: [\r\n    // K variable declaration\r\n    { pattern: /\\w+( )?:=( )?.+/, points: 2 },\r\n    // K function definition\r\n    { pattern: /\\w+( )?\\{.*\\}/, points: 2 },\r\n    // K if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // K case statement\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // K for loop\r\n    { pattern: /for( )+.+in/, points: 2 },\r\n    // K while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n  ],\r\n  Racket: [\r\n    // Racket variable declaration\r\n    { pattern: /\\(define( )+\\(.*\\)( )?.+\\)/, points: 2 },\r\n    // Racket function definition\r\n    { pattern: /\\(define( )+\\(.*\\)/, points: 2 },\r\n    // Racket structure declaration\r\n    { pattern: /\\(struct( )+\\w+( )?.+\\)/, points: 2 },\r\n    // Racket if statement\r\n    { pattern: /\\(if( )+.+\\)/, points: 2 },\r\n    // Racket for loop\r\n    { pattern: /\\(for( )+.+\\)/, points: 2 },\r\n    // Racket lambda expression\r\n    { pattern: /\\(lambda( )?\\(.*\\)/, points: 2 },\r\n  ],\r\n  Alice: [\r\n    // Alice variable declaration\r\n    { pattern: /\\w+( )?:=( )?.+/, points: 2 },\r\n    // Alice method definition\r\n    { pattern: /\\w+( )?\\{.*\\}/, points: 2 },\r\n    // Alice if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Alice case statement\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // Alice for loop\r\n    { pattern: /for( )+.+in/, points: 2 },\r\n    // Alice while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n  ],\r\n  APL: [\r\n    // APL variable declaration\r\n    { pattern: /[A-Z]\\w*( )?←( )?.+/, points: 2 },\r\n    // APL function definition\r\n    { pattern: /[A-Z]\\w*( )?←( )?\\{.*\\}/, points: 2 },\r\n    // APL if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // APL case statement\r\n    { pattern: /case( )+.+of/, points: 2 },\r\n    // APL for loop\r\n    { pattern: /for( )+.+in/, points: 2 },\r\n    // APL while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n  ],\r\n  Bash: [\r\n    // Bash variable declaration\r\n    { pattern: /\\w+( )?=.+/, points: 2 },\r\n    // Bash function definition\r\n    { pattern: /\\w+\\(.*\\)( )?\\{/, points: 2 },\r\n    // Bash if statement\r\n    { pattern: /if( )+.+then/, points: 2 },\r\n    // Bash case statement\r\n    { pattern: /case( )+.+in/, points: 2 },\r\n    // Bash for loop\r\n    { pattern: /for( )+.+in/, points: 2 },\r\n    // Bash while loop\r\n    { pattern: /while( )+.+do/, points: 2 },\r\n  ],\r\n  Kotlin: [\r\n    // Kotlin variable declaration\r\n    { pattern: /\\bval\\b\\s+\\w+\\s*=\\s*.+/, points: 2 },\r\n    { pattern: /\\bvar\\b\\s+\\w+\\s*=\\s*.+/, points: 2 },\r\n    // Kotlin function declaration\r\n    { pattern: /\\bfun\\b\\s+\\w+\\(.+\\)\\s*{/, points: 2 },\r\n    // Kotlin class declaration\r\n    { pattern: /\\bclass\\b\\s+\\w+(\\s*:\\s*\\w+)?\\s*{/, points: 2 },\r\n    // Kotlin if statement\r\n    { pattern: /\\bif\\b\\s*\\(.+\\)\\s*{/, points: 2 },\r\n    // Kotlin when expression\r\n    { pattern: /\\bwhen\\b\\s*{/, points: 2 },\r\n    // Kotlin for loop\r\n    { pattern: /\\bfor\\b\\s*\\(\\w+\\s+in\\s+.+\\)\\s*{/, points: 2 },\r\n    // Kotlin while loop\r\n    { pattern: /\\bwhile\\b\\s*\\(.+\\)\\s*{/, points: 2 },\r\n    // Kotlin lambda expression\r\n    { pattern: /\\{.*->.*\\}/, points: 2 },\r\n  ],\r\n  XML: [\r\n    // XML tags\r\n    { pattern: /<[^\\/]+>.*<\\/[^>]+>/, points: 2 },\r\n    // XML self-closing tags\r\n    { pattern: /<[^\\/]+\\/>/, points: 2 },\r\n    // XML comments\r\n    { pattern: /<!--.*-->/, points: 2 },\r\n  ],\r\n\r\n  YAML: [\r\n    // YAML key-value pairs\r\n    { pattern: /^\\s*\\w+\\s*:\\s*.+$/, points: 2 },\r\n  ],\r\n\r\n  JSON: [\r\n    // JSON object\r\n    { pattern: /\\{.*\\}/, points: 2 },\r\n    // JSON array\r\n    { pattern: /\\[.*\\]/, points: 2 },\r\n  ],\r\n\r\n  Markdown: [\r\n    // Markdown headings (H1–H6)\r\n    { pattern: /^(#{1,6})\\s+.+$/, points: 5 },\r\n\r\n    // Markdown lists (unordered and ordered)\r\n    { pattern: /^(\\s*[-*+]\\s+|(\\d+\\.)\\s+).+$/, points: 5 },\r\n\r\n    // Markdown blockquotes\r\n    { pattern: /^>\\s+.+$/, points: 2 },\r\n\r\n    // Markdown inline code (single backticks)\r\n    { pattern: /`[^`]+`/, points: 2 },\r\n\r\n    // Markdown fenced code blocks (triple backticks)\r\n    { pattern: /^```[\\s\\S]*?^```$/, points: 3 },\r\n\r\n    // Markdown emphasis (bold, italic, strikethrough)\r\n    { pattern: /(\\*\\*|__)(.*?)\\1/, points: 3 },\r\n    { pattern: /(\\*|_)(.*?)\\1/, points: 2 },\r\n    { pattern: /~~(.*?)~~/, points: 2 },\r\n\r\n    // Markdown horizontal rule\r\n    { pattern: /^(-{3,}|\\*{3,}|_{3,})$/, points: 2 },\r\n\r\n    // Markdown links\r\n    { pattern: /\\[.+\\]\\(.+\\)/, points: 2 },\r\n\r\n    // Markdown images\r\n    { pattern: /!\\[.*\\]\\(.+\\)/, points: 2 },\r\n\r\n    // Markdown tables\r\n    { pattern: /\\|(.+)\\|/, points: 3 },\r\n    { pattern: /\\|[-:]+\\|/, points: 3 },\r\n\r\n    // Markdown footnotes\r\n    { pattern: /\\[\\^.+\\]:/, points: 2 },\r\n\r\n    // Markdown task lists\r\n    { pattern: /^\\s*[-*]\\s+\\[[ x]\\]\\s+.+$/, points: 2 },\r\n\r\n    // Markdown automatic URL linking\r\n    { pattern: /https?:\\/\\/\\S+/, points: 1 },\r\n\r\n    // Header underlines (alternative to #)\r\n    { pattern: /^(.+)\\n(=+|-+)$/, points: 2 },\r\n\r\n],\r\n\r\n  SGML: [\r\n    // SGML tags\r\n    { pattern: /<[^\\/]+>.*<\\/[^>]+>/, points: 2 },\r\n    // SGML self-closing tags\r\n    { pattern: /<[^\\/]+\\/>/, points: 2 },\r\n    // SGML comments\r\n    { pattern: /<!--.*-->/, points: 2 },\r\n  ],\r\n\r\n  HTML5: [\r\n    // HTML5 Doctype\r\n    { pattern: /<!DOCTYPE html>/i, points: 10 },\r\n    // HTML5 structural elements\r\n    { pattern: /<(header|footer|section|article|nav|aside|main|figure|figcaption|summary|details|mark|time|progress|output)>/i, points: 3 },\r\n    { pattern: /<\\/(header|footer|section|article|nav|aside|main|figure|figcaption|summary|details|mark|time|progress|output)>/i, points: 3 },\r\n    // Canvas element\r\n    { pattern: /<canvas( [^>]*|)>.*<\\/canvas>/i, points: 3 },\r\n    // Video element\r\n    { pattern: /<video( [^>]*|)>.*<\\/video>/i, points: 3 },\r\n    // Audio element\r\n    { pattern: /<audio( [^>]*|)>.*<\\/audio>/i, points: 3 },\r\n    // Data attributes\r\n    { pattern: /data-[a-z0-9-]+=\"[^\"]*\"/i, points: 2 },\r\n    // Placeholder attribute\r\n    { pattern: /placeholder=\"[^\"]*\"/i, points: 2 },\r\n    // Autofocus attribute\r\n    { pattern: /autofocus(=\"[^\"]*\")?/i, points: 2 },\r\n    // Required attribute\r\n    { pattern: /required(=\"[^\"]*\")?/i, points: 2 },\r\n    // Pattern attribute\r\n    { pattern: /pattern=\"[^\"]*\"/i, points: 2 },\r\n    // HTML5 input types\r\n    { pattern: /<input[^>]+type=\"(email|url|tel|number|range|color|date|time|datetime-local|month|week|search)\">/i, points: 3 },\r\n    // Progress element\r\n    { pattern: /<progress( [^>]*|)>.*<\\/progress>/i, points: 3 },\r\n    // Meter element\r\n    { pattern: /<meter( [^>]*|)>.*<\\/meter>/i, points: 3 },\r\n    // Source element (for media)\r\n    { pattern: /<source( [^>]*|)>/i, points: 2 },\r\n    // Track element (for captions)\r\n    { pattern: /<track( [^>]*|)>/i, points: 2 },\r\n    // Semantic HTML5 attributes\r\n    { pattern: /role=\"[^\"]+\"/i, points: 2 },\r\n    { pattern: /aria-[a-z]+=\"[^\"]*\"/i, points: 2 },\r\n    // Drag and drop\r\n    { pattern: /draggable=\"(true|false)\"/i, points: 2 },\r\n    { pattern: /ondragstart=\"[^\"]+\"/i, points: 2 },\r\n    { pattern: /ondrop=\"[^\"]+\"/i, points: 2 },\r\n    // Local storage / session storage (in script)\r\n    { pattern: /localStorage|sessionStorage/, points: 2 },\r\n    // WebSocket usage\r\n    { pattern: /new\\s+WebSocket\\(.+\\)/i, points: 2 },\r\n    // HTML5 inline SVG\r\n    { pattern: /<svg( [^>]*|)>.*<\\/svg>/i, points: 3 },\r\n    // HTML5 inline MathML\r\n    { pattern: /<math( [^>]*|)>.*<\\/math>/i, points: 3 },\r\n    // Form validation\r\n    { pattern: /novalidate/i, points: 2 },\r\n    { pattern: /form(=\"[^\"]*\")?/i, points: 2 },\r\n    // Modern browser features (via meta tags)\r\n    { pattern: /<meta charset=\"utf-8\">/i, points: 5 },\r\n    { pattern: /<meta name=\"viewport\" content=\"[^\"]*\">/i, points: 3 },\r\n    // Deprecated or non-standard elements\r\n    { pattern: /<font|<center|<big|<blink|<marquee/i, points: -5 }\r\n],\r\n\r\n\r\n  TEI: [\r\n    // TEI tags\r\n    { pattern: /<[^\\/]+>.*<\\/[^>]+>/, points: 2 },\r\n    // TEI self-closing tags\r\n    { pattern: /<[^\\/]+\\/>/, points: 2 },\r\n    // TEI comments\r\n    { pattern: /<!--.*-->/, points: 2 },\r\n  ],\r\n\r\n  LaTeX: [\r\n    // LaTeX commands\r\n    { pattern: /\\\\[a-zA-Z]+(\\[[^\\]]+\\])?{[^}]+}/, points: 2 },\r\n    // LaTeX environments\r\n    { pattern: /\\\\begin{[^}]+}.*\\\\end{[^}]+}/, points: 2 },\r\n  ],\r\n\r\n  AsciiDoc: [\r\n    // AsciiDoc headings\r\n    { pattern: /^={1,5}\\s+.+$/, points: 2 },\r\n    // AsciiDoc lists\r\n    { pattern: /^(\\s*[-*+]\\s+|\\.\\s+).+$/, points: 2 },\r\n    // AsciiDoc code block\r\n    { pattern: /^----\\n[\\s\\S]*?\\n----$/, points: 2 },\r\n  ],\r\n\r\n  RST: [\r\n    // reStructuredText headings\r\n    { pattern: /^[\\w\\s]+\\n[=-]+\\n/, points: 2 },\r\n    // reStructuredText lists\r\n    { pattern: /^(\\s*[-*+]\\s+|\\d+\\.\\s+).+$/, points: 2 },\r\n    // reStructuredText code block\r\n    { pattern: /^::\\n\\n\\s+[\\s\\S]*$/, points: 2 },\r\n  ],\r\n\r\n  Text: [\r\n    // Sentences without code-like syntax (e.g., natural language sentences)\r\n    { pattern: /^[A-Z][a-z]+( [a-z]+){3,}[.?!]$/, points: 3 },\r\n\r\n    // Multiple sentences in a paragraph\r\n    { pattern: /^([A-Z][a-z]+( [a-z]+){3,}[.?!] ){2,}$/, points: 3 },\r\n\r\n    // Common English words (non-code)\r\n    { pattern: /\\b(the|and|is|was|were|in|on|at|for|with|without|because|as|if|but)\\b/, points: 2 },\r\n\r\n    // No special characters or programming operators\r\n    { pattern: /^[^{}()\\[\\]=<>;]+$/, points: 3 },\r\n\r\n    // No code-like indentation or colons\r\n    { pattern: /^[^\\n]*$/, points: 2 },\r\n\r\n    // Long-form writing (paragraphs)\r\n    { pattern: /^.{50,}$/, points: 2 },\r\n\r\n    // Full paragraph structures\r\n    { pattern: /^([A-Z][a-z]+( [a-z]+){4,}[.?!] ){3,}$/, points: 3 },\r\n\r\n    // HTML-like text (not actual HTML)\r\n    { pattern: /<[^>]+>/, points: -5 }, // Penalizing if it looks like HTML\r\n\r\n    // Penalizing mathematical equations (which might indicate LaTeX or a programming language)\r\n    { pattern: /\\d+\\s*[\\+\\-\\*\\/]\\s*\\d+/, points: -3 },\r\n\r\n    // Penalizing special programming characters\r\n    { pattern: /[\\{\\}\\(\\)\\[\\]=<>;]/, points: -3 },\r\n\r\n    // Penalizing function-like structures\r\n    { pattern: /\\b\\w+\\s*\\(.*\\)/, points: -3 },\r\n\r\n    // Penalizing import statements\r\n    { pattern: /^\\s*(import|from)\\s+\\w+/, points: -3 },\r\n\r\n    // Penalizing loops and conditions\r\n    { pattern: /^\\s*(if|elif|else|for|while|switch)\\s+/, points: -3 },\r\n\r\n    // Penalizing code indentation (leading spaces with a colon at the end)\r\n    { pattern: /^\\s{2,}\\w+:$/, points: -3 },\r\n\r\n    //Markdown Negative\r\n\r\n    { pattern: /^(#{1,6})\\s+.+$/, points: -3 },\r\n\r\n    // Markdown blockquotes\r\n    { pattern: /^>\\s+.+$/, points: -2 },\r\n\r\n    // Markdown links\r\n    { pattern: /\\[.+\\]\\(.+\\)/, points: -2 },\r\n\r\n    // Markdown images\r\n    { pattern: /!\\[.*\\]\\(.+\\)/, points: -2 },\r\n],\r\n\r\n\r\n  Unknown: [],\r\n};\r\nfunction getPoints(language, lineOfCode, checkers) {\r\n  return checkers\r\n    .map((checker) => {\r\n      if (checker.pattern.test(lineOfCode)) {\r\n        return checker.points;\r\n      }\r\n      return 0;\r\n    })\r\n    .reduce((memo, num) => memo + num, 0);\r\n}\r\nfunction detect(snippet, options) {\r\n  const opts = Object.assign(\r\n    {\r\n      heuristic: true,\r\n      statistics: false,\r\n    },\r\n    options || {}\r\n  );\r\n\r\n  let linesOfCode = snippet\r\n    .replace(/\\r\\n?/g, \"\\n\")\r\n    .replace(/\\n{2,}/g, \"\\n\")\r\n    .split(\"\\n\");\r\n\r\n  function nearTop(index) {\r\n    if (linesOfCode.length <= 10) {\r\n      return true;\r\n    }\r\n    return index < linesOfCode.length / 10;\r\n  }\r\n\r\n  if (opts.heuristic && linesOfCode.length > 500) {\r\n    linesOfCode = linesOfCode.filter((lineOfCode, index) => {\r\n      if (nearTop(index)) {\r\n        return true;\r\n      }\r\n      return index % Math.ceil(linesOfCode.length / 500) === 0;\r\n    });\r\n  }\r\n\r\n  const pairs = Object.keys(LANGUAGES).map((key) => {\r\n    return { language: key, checkers: LANGUAGES[key] };\r\n  });\r\n\r\n  const results = pairs.map((pairs) => {\r\n    const language = pairs.language;\r\n    const checkers = pairs.checkers;\r\n\r\n    if (language === \"Unknown\") {\r\n      return { language: \"Unknown\", points: 1 };\r\n    }\r\n\r\n    const pointsList = linesOfCode.map((lineOfCode, index) => {\r\n      if (!nearTop(index)) {\r\n        return getPoints(\r\n          language,\r\n          lineOfCode,\r\n          checkers.filter((checker) => !checker.nearTop)\r\n        );\r\n      }\r\n      return getPoints(language, lineOfCode, checkers);\r\n    });\r\n\r\n    const points = pointsList.reduce((memo, num) => memo + num);\r\n\r\n    return { language, points };\r\n  });\r\n\r\n  const sortedResult = results.sort((prev, next) => prev.points - next.points);\r\n  const bestResult = sortedResult[sortedResult.length - 1];\r\n\r\n  if (opts.statistics) {\r\n    const statistics = {};\r\n    results.forEach((result) => {\r\n      statistics[result.language] = result.points;\r\n    });\r\n    return { detected: bestResult.language, statistics };\r\n  }\r\n\r\n  return bestResult.language;\r\n}\r\n\r\nconst languages = Object.keys(LANGUAGES);\r\nconst LANG = {};\r\n\r\nlanguages.forEach((language) => {\r\n  LANG[language] = language;\r\n});\r\nif (typeof window !== \"undefined\") {\r\n  window.LanguageDetector = { detect, languages, LANG };\r\n}\r\nif (typeof module !== \"undefined\" && typeof module.exports !== \"undefined\") {\r\n  module.exports = { detect, languages, LANG };\r\n}\r\n"]}