1
|
{"version":3,"file":"highlight/ada.js?v=48cd52cf18b9697b2c00","mappings":"qFAiMAA,EAAOC,QA7KP,SAAaC,GAKX,MAWMC,EAAW,4BAGXC,EAAY,gBAGZC,EAAWH,EAAKI,QAAQ,KAAM,KAK9BC,EAAY,CAIhBC,MAAO,YACPC,IAAK,sBAGLC,QAASN,EACTO,SAAU,CACR,CAGEC,cAAe,0BACfC,YAAY,GAEd,CAEEC,UAAW,UACXF,cAAe,wEAEjB,CACEE,UAAW,OACXN,MAAOL,EACPU,YAAY,EACZE,UAAW,KAKjB,MAAO,CACLC,KAAM,MACNC,kBAAkB,EAClBC,SAAU,CACRC,QACU,4bAOVC,QACU,cAEZT,SAAU,CACRN,EAEA,CACES,UAAW,SACXN,MAAO,IACPC,IAAK,IACLE,SAAU,CAAC,CACTH,MAAO,KACPO,UAAW,KAIf,CAEED,UAAW,SACXN,MAAO,OAET,CAEEM,UAAW,SACXN,MAhFY,8GAiFZO,UAAW,GAEb,CAEED,UAAW,SACXN,MAAO,IAAML,GAEf,CAEEW,UAAW,QACXN,MAAO,8DACPC,IAAK,SACLS,SAAU,eACVG,cAAc,EACdC,YAAY,EACZZ,QAASN,GAEX,CAGEI,MAAO,yDACPC,IAAK,sCACLS,SAAU,uDAGVK,aAAa,EACbZ,SACQ,CACEN,EACA,CAEES,UAAW,QACXN,MAAO,4CACPC,IAAK,eACLY,cAAc,EACdC,YAAY,EACZZ,QAASN,GAIXG,EACA,CAEEO,UAAW,OACXN,MAAO,gBACPC,IAAK,aACLS,SAAU,SACVG,cAAc,EACdC,YAAY,EAEZT,YAAY,EACZH,QAASN,KAKvB,CAGEU,UAAW,OACXN,MAAO,oBACPC,IAAK,OACLS,SAAU,OACVG,cAAc,EACdX,QAASN,GAIXG","sources":["webpack:///text/node_modules/highlight.js/lib/languages/ada.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\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\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const 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 {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword:\n 'abort else new return abs elsif not reverse abstract end ' +\n 'accept entry select access exception of separate aliased exit or some ' +\n 'all others subtype and for out synchronized array function overriding ' +\n 'at tagged generic package task begin goto pragma terminate ' +\n 'body private then if procedure type case in protected constant interface ' +\n 'is raise use declare range delay limited record when delta loop rem while ' +\n 'digits renames with do mod requeue xor',\n literal:\n 'True False'\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\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 {\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:\n [\n COMMENTS,\n {\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 },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\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 ]\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 },\n\n // see comment above the definition\n VAR_DECLS\n\n // 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;\n"],"names":["module","exports","hljs","ID_REGEX","BAD_CHARS","COMMENTS","COMMENT","VAR_DECLS","begin","end","illegal","contains","beginKeywords","endsParent","className","relevance","name","case_insensitive","keywords","keyword","literal","excludeBegin","excludeEnd","returnBegin"],"sourceRoot":""}
|