{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/aspectj.js"],"names":["module","exports","hljs","KEYWORDS","name","keywords","illegal","contains","COMMENT","relevance","begin","className","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","APOS_STRING_MODE","QUOTE_STRING_MODE","beginKeywords","end","excludeEnd","UNDERSCORE_TITLE_MODE","UNDERSCORE_IDENT_RE","returnBegin","C_NUMBER_MODE"],"mappings":"6EA2GAA,EAAOC,QAnGP,SAAiBC,GACf,IAAIC,EAAW,qoBAEf,MAAO,CACLC,KAAM,UACNC,SAAUF,EACVG,QAAS,QACTC,SAAU,CAACL,EAAKM,QAAQ,UAAW,OAAQ,CACzCC,UAAW,EACXF,SAAU,CAAC,CAETG,MAAO,OACPD,UAAW,GACV,CACDE,UAAW,SACXD,MAAO,iBAEPR,EAAKU,oBAAqBV,EAAKW,qBAAsBX,EAAKY,iBAAkBZ,EAAKa,kBAAmB,CACtGJ,UAAW,QACXK,cAAe,SACfC,IAAK,QACLC,YAAY,EACZZ,QAAS,YACTC,SAAU,CAAC,CACTS,cAAe,yFACdd,EAAKiB,sBAAuB,CAC7BT,MAAO,WACPO,IAAK,OACLZ,SAAUF,uBACVe,YAAY,KAEb,CACDP,UAAW,QACXK,cAAe,kBACfC,IAAK,QACLC,YAAY,EACZT,UAAW,EACXJ,SAAU,kBACVC,QAAS,WACTC,SAAU,CAAC,CACTS,cAAe,sBACdd,EAAKiB,wBACP,CAEDH,cAAe,kDACfC,IAAK,MACLC,YAAY,EACZZ,QAAS,UACTC,SAAU,CAAC,CACTG,MAAOR,EAAKkB,oBAAsB,UAClCC,aAAa,EACbd,SAAU,CAACL,EAAKiB,0BAEjB,CACDT,MAAO,MACPW,aAAa,EACbJ,IAAK,OACLR,UAAW,EACXS,YAAY,EACZb,SAAUF,EACVG,QAAS,UACTC,SAAU,CAAC,CACTG,MAAOR,EAAKkB,oBAAsB,UAClCf,SAAUF,uBACVM,UAAW,GACVP,EAAKa,oBACP,CAEDC,cAAe,YACfP,UAAW,GACV,CAEDE,UAAW,WACXD,MAAO,2DACPW,aAAa,EACbJ,IAAK,QACLZ,SAAUF,EACVe,YAAY,EACZX,SAAU,CAAC,CACTG,MAAOR,EAAKkB,oBAAsB,UAClCC,aAAa,EACbZ,UAAW,EACXF,SAAU,CAACL,EAAKiB,wBACf,CACDR,UAAW,SACXD,MAAO,KACPO,IAAK,KACLR,UAAW,EACXJ,SAAUF,EACVI,SAAU,CAACL,EAAKY,iBAAkBZ,EAAKa,kBAAmBb,EAAKoB,cAAepB,EAAKW,uBAClFX,EAAKU,oBAAqBV,EAAKW,uBACjCX,EAAKoB,cAAe,CAErBX,UAAW,OACXD,MAAO","file":"react-syntax-highlighter_languages_highlight_aspectj-9508e6ea9d0676099a19.js","sourcesContent":["/*\nLanguage: AspectJ\nAuthor: Hakan Ozler <ozler.hakan@gmail.com>\nWebsite: https://www.eclipse.org/aspectj/\nDescription: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.\n */\n\n/** @type LanguageFn */\nfunction aspectj(hljs) {\n  var KEYWORDS = 'false synchronized int abstract float private char boolean static null if const ' + 'for true while long throw strictfp finally protected import native final return void ' + 'enum else extends implements break transient new catch instanceof byte super volatile case ' + 'assert short package default double public try this switch continue throws privileged ' + 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' + 'staticinitialization withincode target within execution getWithinTypeName handler ' + 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents ' + 'warning error soft precedence thisAspectInstance';\n  var SHORTKEYS = 'get set args call';\n  return {\n    name: 'AspectJ',\n    keywords: KEYWORDS,\n    illegal: /<\\/|#/,\n    contains: [hljs.COMMENT('/\\\\*\\\\*', '\\\\*/', {\n      relevance: 0,\n      contains: [{\n        // eat up @'s in emails to prevent them to be recognized as doctags\n        begin: /\\w+@/,\n        relevance: 0\n      }, {\n        className: 'doctag',\n        begin: '@[A-Za-z]+'\n      }]\n    }), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, {\n      className: 'class',\n      beginKeywords: 'aspect',\n      end: /[{;=]/,\n      excludeEnd: true,\n      illegal: /[:;\"\\[\\]]/,\n      contains: [{\n        beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'\n      }, hljs.UNDERSCORE_TITLE_MODE, {\n        begin: /\\([^\\)]*/,\n        end: /[)]+/,\n        keywords: KEYWORDS + ' ' + SHORTKEYS,\n        excludeEnd: false\n      }]\n    }, {\n      className: 'class',\n      beginKeywords: 'class interface',\n      end: /[{;=]/,\n      excludeEnd: true,\n      relevance: 0,\n      keywords: 'class interface',\n      illegal: /[:\"\\[\\]]/,\n      contains: [{\n        beginKeywords: 'extends implements'\n      }, hljs.UNDERSCORE_TITLE_MODE]\n    }, {\n      // AspectJ Constructs\n      beginKeywords: 'pointcut after before around throwing returning',\n      end: /[)]/,\n      excludeEnd: false,\n      illegal: /[\"\\[\\]]/,\n      contains: [{\n        begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n        returnBegin: true,\n        contains: [hljs.UNDERSCORE_TITLE_MODE]\n      }]\n    }, {\n      begin: /[:]/,\n      returnBegin: true,\n      end: /[{;]/,\n      relevance: 0,\n      excludeEnd: false,\n      keywords: KEYWORDS,\n      illegal: /[\"\\[\\]]/,\n      contains: [{\n        begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n        keywords: KEYWORDS + ' ' + SHORTKEYS,\n        relevance: 0\n      }, hljs.QUOTE_STRING_MODE]\n    }, {\n      // this prevents 'new Name(...), or throw ...' from being recognized as a function definition\n      beginKeywords: 'new throw',\n      relevance: 0\n    }, {\n      // the function class is a bit different for AspectJ compared to the Java language\n      className: 'function',\n      begin: /\\w+ +\\w+(\\.)?\\w+\\s*\\([^\\)]*\\)\\s*((throws)[\\w\\s,]+)?[\\{;]/,\n      returnBegin: true,\n      end: /[{;=]/,\n      keywords: KEYWORDS,\n      excludeEnd: true,\n      contains: [{\n        begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n        returnBegin: true,\n        relevance: 0,\n        contains: [hljs.UNDERSCORE_TITLE_MODE]\n      }, {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        relevance: 0,\n        keywords: KEYWORDS,\n        contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE, hljs.C_BLOCK_COMMENT_MODE]\n      }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n    }, hljs.C_NUMBER_MODE, {\n      // annotation is also used in this language\n      className: 'meta',\n      begin: '@[A-Za-z]+'\n    }]\n  };\n}\n\nmodule.exports = aspectj;"],"sourceRoot":""}