prism-bsl.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* eslint-disable no-misleading-character-class */
  2. // 1C:Enterprise
  3. // https://github.com/Diversus23/
  4. //
  5. Prism.languages.bsl = {
  6. 'comment': /\/\/.*/,
  7. 'string': [
  8. // Строки
  9. // Strings
  10. {
  11. pattern: /"(?:[^"]|"")*"(?!")/,
  12. greedy: true
  13. },
  14. // Дата и время
  15. // Date & time
  16. {
  17. pattern: /'(?:[^'\r\n\\]|\\.)*'/
  18. }
  19. ],
  20. 'keyword': [
  21. {
  22. // RU
  23. pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,
  24. lookbehind: true
  25. },
  26. {
  27. // EN
  28. pattern: /\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\b/i
  29. }
  30. ],
  31. 'number': {
  32. pattern: /(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,
  33. lookbehind: true
  34. },
  35. 'operator': [
  36. /[<>+\-*/]=?|[%=]/,
  37. // RU
  38. {
  39. pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,
  40. lookbehind: true
  41. },
  42. // EN
  43. {
  44. pattern: /\b(?:and|not|or)\b/i
  45. }
  46. ],
  47. 'punctuation': /\(\.|\.\)|[()\[\]:;,.]/,
  48. 'directive': [
  49. // Теги препроцессора вида &Клиент, &Сервер, ...
  50. // Preprocessor tags of the type &Client, &Server, ...
  51. {
  52. pattern: /^([ \t]*)&.*/m,
  53. lookbehind: true,
  54. greedy: true,
  55. alias: 'important'
  56. },
  57. // Инструкции препроцессора вида:
  58. // #Если Сервер Тогда
  59. // ...
  60. // #КонецЕсли
  61. // Preprocessor instructions of the form:
  62. // #If Server Then
  63. // ...
  64. // #EndIf
  65. {
  66. pattern: /^([ \t]*)#.*/gm,
  67. lookbehind: true,
  68. greedy: true,
  69. alias: 'important'
  70. }
  71. ]
  72. };
  73. Prism.languages.oscript = Prism.languages['bsl'];