| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | 
							- /*
 
- Language: Haxe
 
- Description: Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.
 
- Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
 
- Contributors: Kenton Hamaluik <kentonh@gmail.com>
 
- Website: https://haxe.org
 
- */
 
- function haxe(hljs) {
 
-   const HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';
 
-   return {
 
-     name: 'Haxe',
 
-     aliases: ['hx'],
 
-     keywords: {
 
-       keyword: 'break case cast catch continue default do dynamic else enum extern ' +
 
-                'for function here if import in inline never new override package private get set ' +
 
-                'public return static super switch this throw trace try typedef untyped using var while ' +
 
-                HAXE_BASIC_TYPES,
 
-       built_in:
 
-         'trace this',
 
-       literal:
 
-         'true false null _'
 
-     },
 
-     contains: [
 
-       {
 
-         className: 'string', // interpolate-able strings
 
-         begin: '\'',
 
-         end: '\'',
 
-         contains: [
 
-           hljs.BACKSLASH_ESCAPE,
 
-           {
 
-             className: 'subst', // interpolation
 
-             begin: '\\$\\{',
 
-             end: '\\}'
 
-           },
 
-           {
 
-             className: 'subst', // interpolation
 
-             begin: '\\$',
 
-             end: /\W\}/
 
-           }
 
-         ]
 
-       },
 
-       hljs.QUOTE_STRING_MODE,
 
-       hljs.C_LINE_COMMENT_MODE,
 
-       hljs.C_BLOCK_COMMENT_MODE,
 
-       hljs.C_NUMBER_MODE,
 
-       {
 
-         className: 'meta', // compiler meta
 
-         begin: '@:',
 
-         end: '$'
 
-       },
 
-       {
 
-         className: 'meta', // compiler conditionals
 
-         begin: '#',
 
-         end: '$',
 
-         keywords: {
 
-           'meta-keyword': 'if else elseif end error'
 
-         }
 
-       },
 
-       {
 
-         className: 'type', // function types
 
-         begin: ':[ \t]*',
 
-         end: '[^A-Za-z0-9_ \t\\->]',
 
-         excludeBegin: true,
 
-         excludeEnd: true,
 
-         relevance: 0
 
-       },
 
-       {
 
-         className: 'type', // types
 
-         begin: ':[ \t]*',
 
-         end: '\\W',
 
-         excludeBegin: true,
 
-         excludeEnd: true
 
-       },
 
-       {
 
-         className: 'type', // instantiation
 
-         begin: 'new *',
 
-         end: '\\W',
 
-         excludeBegin: true,
 
-         excludeEnd: true
 
-       },
 
-       {
 
-         className: 'class', // enums
 
-         beginKeywords: 'enum',
 
-         end: '\\{',
 
-         contains: [hljs.TITLE_MODE]
 
-       },
 
-       {
 
-         className: 'class', // abstracts
 
-         beginKeywords: 'abstract',
 
-         end: '[\\{$]',
 
-         contains: [
 
-           {
 
-             className: 'type',
 
-             begin: '\\(',
 
-             end: '\\)',
 
-             excludeBegin: true,
 
-             excludeEnd: true
 
-           },
 
-           {
 
-             className: 'type',
 
-             begin: 'from +',
 
-             end: '\\W',
 
-             excludeBegin: true,
 
-             excludeEnd: true
 
-           },
 
-           {
 
-             className: 'type',
 
-             begin: 'to +',
 
-             end: '\\W',
 
-             excludeBegin: true,
 
-             excludeEnd: true
 
-           },
 
-           hljs.TITLE_MODE
 
-         ],
 
-         keywords: {
 
-           keyword: 'abstract from to'
 
-         }
 
-       },
 
-       {
 
-         className: 'class', // classes
 
-         begin: '\\b(class|interface) +',
 
-         end: '[\\{$]',
 
-         excludeEnd: true,
 
-         keywords: 'class interface',
 
-         contains: [
 
-           {
 
-             className: 'keyword',
 
-             begin: '\\b(extends|implements) +',
 
-             keywords: 'extends implements',
 
-             contains: [
 
-               {
 
-                 className: 'type',
 
-                 begin: hljs.IDENT_RE,
 
-                 relevance: 0
 
-               }
 
-             ]
 
-           },
 
-           hljs.TITLE_MODE
 
-         ]
 
-       },
 
-       {
 
-         className: 'function',
 
-         beginKeywords: 'function',
 
-         end: '\\(',
 
-         excludeEnd: true,
 
-         illegal: '\\S',
 
-         contains: [hljs.TITLE_MODE]
 
-       }
 
-     ],
 
-     illegal: /<\//
 
-   };
 
- }
 
- module.exports = haxe;
 
 
  |