|
import * as monaco from 'monaco-editor';
|
|
|
|
const language: monaco.languages.IMonarchLanguage = {
|
|
ignoreCase: false,
|
|
brackets: [
|
|
{ open: '(', close: ')', token: 'delimiter.parens' },
|
|
{ open: '[', close: ']', token: 'delimiter.square' },
|
|
{ open: '{', close: '}', token: 'delimiter.curly' },
|
|
],
|
|
tokenizer: {
|
|
"normal": [
|
|
[/\{\-#/, 'comment', '@pragma'],
|
|
[/\[/, 'delimiter.square', '@system'],
|
|
[/\-\-.*$/, 'comment'],
|
|
[/\b(data|where|case|as|in|postulate|let|where)\b/, 'keyword'],
|
|
[/(=|:|\-\>|\\)/, 'keyword']
|
|
],
|
|
"pragma": [
|
|
[/PRIMITIVE/, 'keyword'],
|
|
[/#\-\}/, 'comment', '@pop']
|
|
],
|
|
"system": [
|
|
[/\b(i0|i1)/, 'keyword'],
|
|
[/\]/, 'delimiter.square', '@pop'],
|
|
{ include: "normal" }
|
|
]
|
|
}
|
|
};
|
|
|
|
export default language;
|