prism-bsl.js 2.4 KB

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