Obsidean_VM/.obsidian/snippets/prism-scl.js

25 lines
1.2 KiB
JavaScript

Prism.languages.scl = {
'comment': [
{
pattern: /\(\*[\s\S]*?\*\)/,
greedy: true
},
{
pattern: //.*$/m,
greedy: true
}
],
'string': {
pattern: /'(?:[^'\\\r\n]|\\(?:.|[^"\\]))*'/,
greedy: true
},
'keyword': /\b(?:PROGRAM|END_PROGRAM|FUNCTION|END_FUNCTION|FUNCTION_BLOCK|END_FUNCTION_BLOCK|VAR|VAR_INPUT|VAR_OUTPUT|VAR_IN_OUT|VAR_TEMP|END_VAR|IF|THEN|ELSE|ELSIF|END_IF|CASE|OF|ELSE|END_CASE|FOR|TO|BY|DO|END_FOR|WHILE|DO|END_WHILE|REPEAT|UNTIL|END_REPEAT|RETURN|EXIT|CONTINUE|TYPE|END_TYPE|STRUCT|END_STRUCT|ARRAY|OF|BOOL|BYTE|WORD|DWORD|LWORD|SINT|INT|DINT|LINT|USINT|UINT|UDINT|ULINT|REAL|LREAL|TIME|DATE|TIME_OF_DAY|DATE_AND_TIME|STRING|CHAR|WSTRING|WCHAR)\b/i,
'boolean': /\b(?:TRUE|FALSE)\b/i,
'operator': /(?:S?[<>]=?|[:=]{1,2}|AND|OR|XOR|NOT|\*\*|\+\+|--|\?|\/|@)/i,
'number': /\b(?:16#[0-9A-F]+|2#[01]+|8#[0-7]+|0|[1-9][0-9]*(?:\.[0-9]+)?(?:E[+-]?[0-9]+)?)\b/i,
'function': /\b[A-Za-z_][A-Za-z0-9_]*(?=\s*\()/,
'punctuation': /[.,;()[\]{}]/
};
// Alias para asegurar que ```scl funcione correctamente
Prism.languages.structured_control_language = Prism.languages.scl;