blob: 01bd78f2b5207f0b93582e9e89723a0a159c8c83 [file] [log] [blame]
{"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":""}