{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/ada.js"],"names":["module","exports","hljs","ID_REGEX","COMMENTS","COMMENT","VAR_DECLS","begin","end","illegal","contains","beginKeywords","endsParent","className","relevance","name","case_insensitive","keywords","keyword","literal","excludeBegin","excludeEnd","returnBegin"],"mappings":"+EAyJAA,EAAOC,QAtIP,SAAaC,GAIX,IAQIC,EAAW,4BAIXC,EAAWF,EAAKG,QAAQ,KAAM,KAI9BC,EAAY,CAIdC,MAAO,YACPC,IAAK,sBAGLC,QAdc,YAedC,SAAU,CAAC,CAGTC,cAAe,0BACfC,YAAY,GACX,CAEDC,UAAW,UACXF,cAAe,wEACd,CACDE,UAAW,OACXN,MAAOJ,EACPS,YAAY,EACZE,UAAW,KAGf,MAAO,CACLC,KAAM,MACNC,kBAAkB,EAClBC,SAAU,CACRC,QAAS,4bACTC,QAAS,cAEXT,SAAU,CAACN,EACX,CACES,UAAW,SACXN,MAAO,IACPC,IAAK,IACLE,SAAU,CAAC,CACTH,MAAO,KACPO,UAAW,KAGf,CAEED,UAAW,SACXN,MAAO,OACN,CAEDM,UAAW,SACXN,MA3DY,8GA4DZO,UAAW,GACV,CAEDD,UAAW,SACXN,MAAO,IAAMJ,GACZ,CAEDU,UAAW,QACXN,MAAO,8DACPC,IAAK,SACLS,SAAU,eACVG,cAAc,EACdC,YAAY,EACZZ,QArEY,aAsEX,CAGDF,MAAO,yDACPC,IAAK,sCACLS,SAAU,uDAGVK,aAAa,EACbZ,SAAU,CAACN,EAAU,CAEnBS,UAAW,QACXN,MAAO,4CACPC,IAAK,eACLY,cAAc,EACdC,YAAY,EACZZ,QAtFU,aAyFZH,EAAW,CAETO,UAAW,OACXN,MAAO,gBACPC,IAAK,aACLS,SAAU,SACVG,cAAc,EACdC,YAAY,EAEZT,YAAY,EACZH,QAnGU,eAqGX,CAGDI,UAAW,OACXN,MAAO,oBACPC,IAAK,OACLS,SAAU,OACVG,cAAc,EACdX,QA7GY,aA+GdH","file":"react-syntax-highlighter_languages_highlight_ada-dac379235daecfc86037.js","sourcesContent":["/*\nLanguage: Ada\nAuthor: Lars Schulna <kartoffelbrei.mit.muskatnuss@gmail.org>\nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n             It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n             The first version appeared in the 80s, but it's still actively developed today with\n             the newest standard being Ada2012.\n*/\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n  // Regular expression for Ada numeric literals.\n  // stolen form the VHDL highlighter\n  // Decimal literal:\n  var INTEGER_RE = '\\\\d(_|\\\\d)*';\n  var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n  var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?'; // Based literal:\n\n  var BASED_INTEGER_RE = '\\\\w+';\n  var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n  var NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')'; // Identifier regex\n\n  var ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*'; // bad chars, only allowed in literals\n\n  var BAD_CHARS = \"[]{}%#'\\\"\"; // Ada doesn't have block comments, only line comments\n\n  var COMMENTS = hljs.COMMENT('--', '$'); // variable declarations of the form\n  // Foo : Bar := Baz;\n  // where only Bar will be highlighted\n\n  var VAR_DECLS = {\n    // TODO: These spaces are not required by the Ada syntax\n    // however, I have yet to see handwritten Ada code where\n    // someone does not put spaces around :\n    begin: '\\\\s+:\\\\s+',\n    end: '\\\\s*(:=|;|\\\\)|=>|$)',\n    // endsWithParent: true,\n    // returnBegin: true,\n    illegal: BAD_CHARS,\n    contains: [{\n      // workaround to avoid highlighting\n      // named loops and declare blocks\n      beginKeywords: 'loop for declare others',\n      endsParent: true\n    }, {\n      // properly highlight all modifiers\n      className: 'keyword',\n      beginKeywords: 'not null constant access function procedure in out aliased exception'\n    }, {\n      className: 'type',\n      begin: ID_REGEX,\n      endsParent: true,\n      relevance: 0\n    }]\n  };\n  return {\n    name: 'Ada',\n    case_insensitive: true,\n    keywords: {\n      keyword: 'abort else new return abs elsif not reverse abstract end ' + 'accept entry select access exception of separate aliased exit or some ' + 'all others subtype and for out synchronized array function overriding ' + 'at tagged generic package task begin goto pragma terminate ' + 'body private then if procedure type case in protected constant interface ' + 'is raise use declare range delay limited record when delta loop rem while ' + 'digits renames with do mod requeue xor',\n      literal: 'True False'\n    },\n    contains: [COMMENTS, // strings \"foobar\"\n    {\n      className: 'string',\n      begin: /\"/,\n      end: /\"/,\n      contains: [{\n        begin: /\"\"/,\n        relevance: 0\n      }]\n    }, // characters ''\n    {\n      // character literals always contain one char\n      className: 'string',\n      begin: /'.'/\n    }, {\n      // number literals\n      className: 'number',\n      begin: NUMBER_RE,\n      relevance: 0\n    }, {\n      // Attributes\n      className: 'symbol',\n      begin: \"'\" + ID_REGEX\n    }, {\n      // package definition, maybe inside generic\n      className: 'title',\n      begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n      end: '(is|$)',\n      keywords: 'package body',\n      excludeBegin: true,\n      excludeEnd: true,\n      illegal: BAD_CHARS\n    }, {\n      // function/procedure declaration/definition\n      // maybe inside generic\n      begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n      end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n      keywords: 'overriding function procedure with is renames return',\n      // we need to re-match the 'function' keyword, so that\n      // the title mode below matches only exactly once\n      returnBegin: true,\n      contains: [COMMENTS, {\n        // name of the function/procedure\n        className: 'title',\n        begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n        end: '(\\\\(|\\\\s+|$)',\n        excludeBegin: true,\n        excludeEnd: true,\n        illegal: BAD_CHARS\n      }, // 'self'\n      // // parameter types\n      VAR_DECLS, {\n        // return type\n        className: 'type',\n        begin: '\\\\breturn\\\\s+',\n        end: '(\\\\s+|;|$)',\n        keywords: 'return',\n        excludeBegin: true,\n        excludeEnd: true,\n        // we are done with functions\n        endsParent: true,\n        illegal: BAD_CHARS\n      }]\n    }, {\n      // new type declarations\n      // maybe inside generic\n      className: 'type',\n      begin: '\\\\b(sub)?type\\\\s+',\n      end: '\\\\s+',\n      keywords: 'type',\n      excludeBegin: true,\n      illegal: BAD_CHARS\n    }, // see comment above the definition\n    VAR_DECLS // no markup\n    // relevance boosters for small snippets\n    // {begin: '\\\\s*=>\\\\s*'},\n    // {begin: '\\\\s*:=\\\\s*'},\n    // {begin: '\\\\s+:=\\\\s+'},\n    ]\n  };\n}\n\nmodule.exports = ada;"],"sourceRoot":""}