Вход Регистрация
Файл: error-kitty/node_modules/highlight.js/lib/languages/lasso.js
Строк: 182
<?php
module
.exports = function(hljs) {
  var 
LASSO_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*';
  var 
LASSO_ANGLE_RE = '<\?(lasso(script)?|=)';
  var 
LASSO_CLOSE_RE = '\]|\?>';
  var 
LASSO_KEYWORDS = {
    
literal:
      
'true false none minimal full all void and or not ' +
      
'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
    
built_in:
      
'array date decimal duration integer map pair string tag xml null ' +
      
'bytes list queue set stack staticarray tie local var variable ' +
      
'global data self inherited',
    
keyword:
      
'error_code error_msg error_pop error_push error_reset cache ' +
      
'database_names database_schemanames database_tablenames define_tag ' +
      
'define_type email_batch encode_set html_comment handle handle_error ' +
      
'header if inline iterate ljax_target link link_currentaction ' +
      
'link_currentgroup link_currentrecord link_detail link_firstgroup ' +
      
'link_firstrecord link_lastgroup link_lastrecord link_nextgroup ' +
      
'link_nextrecord link_prevgroup link_prevrecord log loop ' +
      
'namespace_using output_none portal private protect records referer ' +
      
'referrer repeating resultset rows search_args search_arguments ' +
      
'select sort_args sort_arguments thread_atomic value_list while ' +
      
'abort case else if_empty if_false if_null if_true loop_abort ' +
      
'loop_continue loop_count params params_up return return_value ' +
      
'run_children soap_definetag soap_lastrequest soap_lastresponse ' +
      
'tag_name ascending average by define descending do equals ' +
      
'frozen group handle_failure import in into join let match max ' +
      
'min on order parent protected provide public require returnhome ' +
      
'skip split_thread sum take thread to trait type where with ' +
      
'yield yieldhome'
  
};
  var 
HTML_COMMENT = {
    
className: 'comment',
    
begin: '<!--', end: '-->',
    
relevance: 0
  
};
  var 
LASSO_NOPROCESS = {
    
className: 'preprocessor',
    
begin: '\[noprocess\]',
    
starts: {
      
className: 'markup',
      
end: '\[/noprocess\]',
      
returnEnd: true,
      
contains: [HTML_COMMENT]
    }
  };
  var 
LASSO_START = {
    
className: 'preprocessor',
    
begin: '\[/noprocess|' + LASSO_ANGLE_RE
  
};
  var 
LASSO_DATAMEMBER = {
    
className: 'variable',
    
begin: ''' + LASSO_IDENT_RE + '''
  
};
  var 
LASSO_CODE = [
    
hljs.C_LINE_COMMENT_MODE,
    {
      
className: 'javadoc',
      
begin: '/\*\*!', end: '\*/',
      
contains: [hljs.PHRASAL_WORDS_MODE]
    },
    
hljs.C_BLOCK_COMMENT_MODE,
    
hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|-?(infinity|nan)\b'}),
    
hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
    
hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
    {
      
className: 'string',
      
begin: '`', end: '`'
    
},
    {
      
className: 'variable',
      
variants: [
        {
          
begin: '[#$]' + LASSO_IDENT_RE
        
},
        {
          
begin: '#', end: '\d+',
          
illegal: '\W'
        
}
      ]
    },
    {
      
className: 'tag',
      
begin: '::\s*', end: LASSO_IDENT_RE,
      
illegal: '\W'
    
},
    {
      
className: 'attribute',
      
variants: [
        {
          
begin: '-' + hljs.UNDERSCORE_IDENT_RE,
          
relevance: 0
        
},
        {
          
begin: '(\.\.\.)'
        
}
      ]
    },
    {
      
className: 'subst',
      
variants: [
        {
          
begin: '->\s*',
          
contains: [LASSO_DATAMEMBER]
        },
        {
          
begin: ':=|/(?!\w)=?|[-+*%=<>&|!?\\]+',
          
relevance: 0
        
}
      ]
    },
    {
      
className: 'built_in',
      
begin: '\.\.?',
      
relevance: 0,
      
contains: [LASSO_DATAMEMBER]
    },
    {
      
className: 'class',
      
beginKeywords: 'define',
      
returnEnd: true, end: '\(|=>',
      
contains: [
        
hljs.inherit(hljs.TITLE_MODE, {begin: hljs.UNDERSCORE_IDENT_RE + '(=(?!>))?'})
      ]
    }
  ];
  return {
    
aliases: ['ls', 'lassoscript'],
    
case_insensitive: true,
    
lexemes: LASSO_IDENT_RE + '|&[lg]t;',
    
keywords: LASSO_KEYWORDS,
    
contains: [
      {
        
className: 'preprocessor',
        
begin: LASSO_CLOSE_RE,
        
relevance: 0,
        
starts: {
          
className: 'markup',
          
end: '\[|' + LASSO_ANGLE_RE,
          
returnEnd: true,
          
relevance: 0,
          
contains: [HTML_COMMENT]
        }
      },
      
LASSO_NOPROCESS,
      
LASSO_START,
      {
        
className: 'preprocessor',
        
begin: '\[no_square_brackets',
        
starts: {
          
end: '\[/no_square_brackets\]', // not implemented in the language
          
lexemes: LASSO_IDENT_RE + '|&[lg]t;',
          
keywords: LASSO_KEYWORDS,
          
contains: [
            {
              
className: 'preprocessor',
              
begin: LASSO_CLOSE_RE,
              
relevance: 0,
              
starts: {
                
className: 'markup',
                
end: LASSO_ANGLE_RE,
                
returnEnd: true,
                
contains: [HTML_COMMENT]
              }
            },
            
LASSO_NOPROCESS,
            
LASSO_START
          
].concat(LASSO_CODE)
        }
      },
      {
        
className: 'preprocessor',
        
begin: '\[',
        
relevance: 0
      
},
      {
        
className: 'shebang',
        
begin: '^#!.+lasso9\b',
        
relevance: 10
      
}
    ].
concat(LASSO_CODE)
  };
};
?>
Онлайн: 2
Реклама