You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.1 KiB
73 lines
2.1 KiB
/* |
|
Language: Scilab |
|
Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> |
|
Origin: matlab.js |
|
Description: Scilab is a port from Matlab |
|
Website: https://www.scilab.org |
|
Category: scientific |
|
*/ |
|
|
|
function scilab(hljs) { |
|
const COMMON_CONTAINS = [ |
|
hljs.C_NUMBER_MODE, |
|
{ |
|
className: 'string', |
|
begin: '\'|\"', |
|
end: '\'|\"', |
|
contains: [ hljs.BACKSLASH_ESCAPE, |
|
{ |
|
begin: '\'\'' |
|
} ] |
|
} |
|
]; |
|
|
|
return { |
|
name: 'Scilab', |
|
aliases: [ 'sci' ], |
|
keywords: { |
|
$pattern: /%?\w+/, |
|
keyword: 'abort break case clear catch continue do elseif else endfunction end for function ' + |
|
'global if pause return resume select try then while', |
|
literal: |
|
'%f %F %t %T %pi %eps %inf %nan %e %i %z %s', |
|
built_in: // Scilab has more than 2000 functions. Just list the most commons |
|
'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error ' + |
|
'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty ' + |
|
'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log ' + |
|
'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real ' + |
|
'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan ' + |
|
'type typename warning zeros matrix' |
|
}, |
|
illegal: '("|#|/\\*|\\s+/\\w+)', |
|
contains: [ |
|
{ |
|
className: 'function', |
|
beginKeywords: 'function', |
|
end: '$', |
|
contains: [ |
|
hljs.UNDERSCORE_TITLE_MODE, |
|
{ |
|
className: 'params', |
|
begin: '\\(', |
|
end: '\\)' |
|
} |
|
] |
|
}, |
|
// seems to be a guard against [ident]' or [ident]. |
|
// perhaps to prevent attributes from flagging as keywords? |
|
{ |
|
begin: '[a-zA-Z_][a-zA-Z_0-9]*[\\.\']+', |
|
relevance: 0 |
|
}, |
|
{ |
|
begin: '\\[', |
|
end: '\\][\\.\']*', |
|
relevance: 0, |
|
contains: COMMON_CONTAINS |
|
}, |
|
hljs.COMMENT('//', '$') |
|
].concat(COMMON_CONTAINS) |
|
}; |
|
} |
|
|
|
module.exports = scilab;
|
|
|