Вход Регистрация
Файл: error-kitty/node_modules/highlight.js/lib/languages/erlang.js
Строк: 122
<?php
module
.exports = function(hljs) {
  var 
BASIC_ATOM_RE '[a-z'][a-zA-Z0-9_']*';
  var 
FUNCTION_NAME_RE '(' BASIC_ATOM_RE ':' BASIC_ATOM_RE '|' BASIC_ATOM_RE ')';
  var 
ERLANG_RESERVED = {
    
keyword:
      
'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
      
'let not of orelse|10 query receive rem try when xor',
    
literal:
      
'false true'
  
};

  var 
COMMENT = {
    
className'comment',
    
begin'%'end'$'
  
};
  var 
NUMBER = {
    
className'number',
    
begin'\b(\d+#[a-fA-F0-9]+|\d+(\.\d+)?([eE][-+]?\d+)?)',
    
relevance0
  
};
  var 
NAMED_FUN = {
    
begin'fun\s+' BASIC_ATOM_RE '/\d+'
  
};
  var 
FUNCTION_CALL = {
    
beginFUNCTION_NAME_RE '\('end'\)',
    
returnBegintrue,
    
relevance0,
    
contains: [
      {
        
className'function_name'beginFUNCTION_NAME_RE,
        
relevance0
      
},
      {
        
begin'\('end'\)'endsWithParenttrue,
        
returnEndtrue,
        
relevance0
        
// "contains" defined later
      
}
    ]
  };
  var 
TUPLE = {
    
className'tuple',
    
begin'{'end'}',
    
relevance0
    
// "contains" defined later
  
};
  var 
VAR1 = {
    
className'variable',
    
begin'\b_([A-Z][A-Za-z0-9_]*)?',
    
relevance0
  
};
  var 
VAR2 = {
    
className'variable',
    
begin'[A-Z][a-zA-Z0-9_]*',
    
relevance0
  
};
  var 
RECORD_ACCESS = {
    
begin'#' hljs.UNDERSCORE_IDENT_RE,
    
relevance0,
    
returnBegintrue,
    
contains: [
      {
        
className'record_name',
        
begin'#' hljs.UNDERSCORE_IDENT_RE,
        
relevance0
      
},
      {
        
begin'{'end'}',
        
relevance0
        
// "contains" defined later
      
}
    ]
  };

  var 
BLOCK_STATEMENTS = {
    
beginKeywords'fun receive if try case'end'end',
    
keywordsERLANG_RESERVED
  
};
  
BLOCK_STATEMENTS.contains = [
    
COMMENT,
    
NAMED_FUN,
    
hljs.inherit(hljs.APOS_STRING_MODE, {className''}),
    
BLOCK_STATEMENTS,
    
FUNCTION_CALL,
    
hljs.QUOTE_STRING_MODE,
    
NUMBER,
    
TUPLE,
    
VAR1VAR2,
    
RECORD_ACCESS
  
];

  var 
BASIC_MODES = [
    
COMMENT,
    
NAMED_FUN,
    
BLOCK_STATEMENTS,
    
FUNCTION_CALL,
    
hljs.QUOTE_STRING_MODE,
    
NUMBER,
    
TUPLE,
    
VAR1VAR2,
    
RECORD_ACCESS
  
];
  
FUNCTION_CALL.contains[1].contains BASIC_MODES;
  
TUPLE.contains BASIC_MODES;
  
RECORD_ACCESS.contains[1].contains BASIC_MODES;

  var 
PARAMS = {
    
className'params',
    
begin'\('end'\)',
    
containsBASIC_MODES
  
};
  return {
    
aliases: ['erl'],
    
keywordsERLANG_RESERVED,
    
illegal'(</|\*=|\+=|-=|/\*|\*/|\(\*|\*\))',
    
contains: [
      {
        
className'function',
        
begin'^' BASIC_ATOM_RE '\s*\('end'->',
        
returnBegintrue,
        
illegal'\(|#|//|/\*|\\|:|;',
        
contains: [
          
PARAMS,
          
hljs.inherit(hljs.TITLE_MODE, {beginBASIC_ATOM_RE})
        ],
        
starts: {
          
end';|\.',
          
keywordsERLANG_RESERVED,
          
containsBASIC_MODES
        
}
      },
      
COMMENT,
      {
        
className'pp',
        
begin'^-'end'\.',
        
relevance0,
        
excludeEndtrue,
        
returnBegintrue,
        
lexemes'-' hljs.IDENT_RE,
        
keywords:
          
'-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
          
'-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
          
'-behavior -spec',
        
contains: [PARAMS]
      },
      
NUMBER,
      
hljs.QUOTE_STRING_MODE,
      
RECORD_ACCESS,
      
VAR1VAR2,
      
TUPLE,
      {
begin: /.$/} // relevance booster
    
]
  };
};
?>
Онлайн: 2
Реклама