Вход Регистрация
Файл: error-kitty/node_modules/highlight.js/lib/languages/elixir.js
Строк: 83
<?php
module
.exports = function(hljs) {
  var 
ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\!|\?)?';
  var 
ELIXIR_METHOD_RE = '[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|<=>|[<>]=?|\*\*|[-/+%^&*~`|]|\[\]=?';
  var 
ELIXIR_KEYWORDS =
    
'and false then defined module in return redo retry end for true self when ' +
    
'next until do begin unless nil break not case cond alias while ensure or ' +
    
'include use alias fn quote';
  var 
SUBST = {
    
className: 'subst',
    
begin: '#\{', end: '}',
    
lexemes: ELIXIR_IDENT_RE,
    
keywords: ELIXIR_KEYWORDS
  
};
  var 
STRING = {
    
className: 'string',
    
contains: [hljs.BACKSLASH_ESCAPE, SUBST],
    
variants: [
      {
        
begin: /'/, end: /'/
      },
      {
        
begin: /"/, end: /"/
      }
    ]
  };
  var 
PARAMS = {
    
endsWithParent: true, returnEnd: true,
    
lexemes: ELIXIR_IDENT_RE,
    
keywords: ELIXIR_KEYWORDS,
    
relevance: 0
  
};
  var FUNCTION = {
    
className: 'function',
    
beginKeywords: 'def defmacro', end: /bdob/,
    
contains: [
      
hljs.inherit(hljs.TITLE_MODE, {
        
begin: ELIXIR_METHOD_RE,
        
starts: PARAMS
      
})
    ]
  };
  var CLASS = 
hljs.inherit(FUNCTION, {
    
className: 'class',
    
beginKeywords: 'defmodule defrecord', end: /bdob|$|;/
  })
  var 
ELIXIR_DEFAULT_CONTAINS = [
    
STRING,
    
hljs.HASH_COMMENT_MODE,
    CLASS,
    FUNCTION,
    {
      
className: 'constant',
      
begin: '(\b[A-Z_]\w*(.)?)+',
      
relevance: 0
    
},
    {
      
className: 'symbol',
      
begin: ':',
      
contains: [STRING, {begin: ELIXIR_METHOD_RE}],
      
relevance: 0
    
},
    {
      
className: 'symbol',
      
begin: ELIXIR_IDENT_RE + ':',
      
relevance: 0
    
},
    {
      
className: 'number',
      
begin: '(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b',
      
relevance: 0
    
},
    {
      
className: 'variable',
      
begin: '(\$\W)|((\$|\@\@?)(\w+))'
    
},
    {
      
begin: '->'
    
},
    { 
// regexp container
      
begin: '(' + hljs.RE_STARTERS_RE + ')\s*',
      
contains: [
        
hljs.HASH_COMMENT_MODE,
        {
          
className: 'regexp',
          
illegal: '\n',
          
contains: [hljs.BACKSLASH_ESCAPE, SUBST],
          
variants: [
            {
              
begin: '/', end: '/[a-z]*'
            
},
            {
              
begin: '%r\[', end: '\][a-z]*'
            
}
          ]
        }
      ],
      
relevance: 0
    
}
  ];
  
SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
  
PARAMS.contains = ELIXIR_DEFAULT_CONTAINS;

  return {
    
lexemes: ELIXIR_IDENT_RE,
    
keywords: ELIXIR_KEYWORDS,
    
contains: ELIXIR_DEFAULT_CONTAINS
  
};
};
?>
Онлайн: 2
Реклама