flix.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. Language: Flix
  3. Category: functional
  4. Author: Magnus Madsen <[email protected]>
  5. */
  6. function (hljs) {
  7. var CHAR = {
  8. className: 'string',
  9. begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
  10. };
  11. var STRING = {
  12. className: 'string',
  13. variants: [
  14. {
  15. begin: '"', end: '"'
  16. }
  17. ]
  18. };
  19. var NAME = {
  20. className: 'title',
  21. begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/
  22. };
  23. var METHOD = {
  24. className: 'function',
  25. beginKeywords: 'def',
  26. end: /[:={\[(\n;]/,
  27. excludeEnd: true,
  28. contains: [NAME]
  29. };
  30. return {
  31. keywords: {
  32. literal: 'true false',
  33. keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'
  34. },
  35. contains: [
  36. hljs.C_LINE_COMMENT_MODE,
  37. hljs.C_BLOCK_COMMENT_MODE,
  38. CHAR,
  39. STRING,
  40. METHOD,
  41. hljs.C_NUMBER_MODE
  42. ]
  43. };
  44. }