syntax.ts 664 B

1234567891011121314151617181920212223242526272829
  1. /* tslint:disable max-line-length */
  2. const tokenizer = {
  3. comment: {
  4. pattern: /(^|[^\n])#.*/,
  5. lookbehind: true,
  6. },
  7. 'context-labels': {
  8. pattern: /(^|\s)\{[^}]*(?=})/,
  9. lookbehind: true,
  10. inside: {
  11. 'label-key': {
  12. pattern: /[a-z_]\w*(?=\s*(=|!=|=~|!~))/,
  13. alias: 'attr-name',
  14. },
  15. 'label-value': {
  16. pattern: /"(?:\\.|[^\\"])*"/,
  17. greedy: true,
  18. alias: 'attr-value',
  19. },
  20. punctuation: /[{]/,
  21. },
  22. },
  23. // number: /\b-?\d+((\.\d*)?([eE][+-]?\d+)?)?\b/,
  24. operator: new RegExp(`/&&?|\\|?\\||!=?|<(?:=>?|<|>)?|>[>=]?`, 'i'),
  25. punctuation: /[{}`,.]/,
  26. };
  27. export default tokenizer;