less prototype, less bad code implementation of CCHM type theory
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.

29 lines
812 B

  1. import * as monaco from 'monaco-editor';
  2. const language: monaco.languages.IMonarchLanguage = {
  3. ignoreCase: false,
  4. brackets: [
  5. { open: '(', close: ')', token: 'delimiter.parens' },
  6. { open: '[', close: ']', token: 'delimiter.square' },
  7. { open: '{', close: '}', token: 'delimiter.curly' },
  8. ],
  9. tokenizer: {
  10. "normal": [
  11. [/\{\-#/, 'comment', '@pragma'],
  12. [/\[/, 'delimiter.square', '@system'],
  13. [/\-\-.*$/, 'comment'],
  14. [/\b(data|where|case|as|in|postulate|let|where)\b/, 'keyword'],
  15. [/(=|:|\-\>|\\)/, 'keyword']
  16. ],
  17. "pragma": [
  18. [/PRIMITIVE/, 'keyword'],
  19. [/#\-\}/, 'comment', '@pop']
  20. ],
  21. "system": [
  22. [/\b(i0|i1)/, 'keyword'],
  23. [/\]/, 'delimiter.square', '@pop'],
  24. { include: "normal" }
  25. ]
  26. }
  27. };
  28. export default language;