78 lines
5.8 KiB
JavaScript
78 lines
5.8 KiB
JavaScript
module.exports = function(hljs){
|
||
var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
|
||
var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' +
|
||
'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' +
|
||
'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' +
|
||
'число экспорт';
|
||
var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' +
|
||
'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' +
|
||
'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' +
|
||
'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' +
|
||
'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' +
|
||
'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' +
|
||
'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' +
|
||
'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' +
|
||
'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' +
|
||
'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' +
|
||
'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' +
|
||
'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' +
|
||
'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' +
|
||
'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' +
|
||
'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' +
|
||
'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' +
|
||
'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' +
|
||
'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' +
|
||
'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' +
|
||
'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' +
|
||
'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' +
|
||
'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' +
|
||
'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' +
|
||
'установитьтана установитьтапо фиксшаблон формат цел шаблон';
|
||
var DQUOTE = {begin: '""'};
|
||
var STR_START = {
|
||
className: 'string',
|
||
begin: '"', end: '"|$',
|
||
contains: [DQUOTE]
|
||
};
|
||
var STR_CONT = {
|
||
className: 'string',
|
||
begin: '\\|', end: '"|$',
|
||
contains: [DQUOTE]
|
||
};
|
||
|
||
return {
|
||
case_insensitive: true,
|
||
lexemes: IDENT_RE_RU,
|
||
keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
|
||
contains: [
|
||
hljs.C_LINE_COMMENT_MODE,
|
||
hljs.NUMBER_MODE,
|
||
STR_START, STR_CONT,
|
||
{
|
||
className: 'function',
|
||
begin: '(процедура|функция)', end: '$',
|
||
lexemes: IDENT_RE_RU,
|
||
keywords: 'процедура функция',
|
||
contains: [
|
||
{
|
||
begin: 'экспорт', endsWithParent: true,
|
||
lexemes: IDENT_RE_RU,
|
||
keywords: 'экспорт',
|
||
contains: [hljs.C_LINE_COMMENT_MODE]
|
||
},
|
||
{
|
||
className: 'params',
|
||
begin: '\\(', end: '\\)',
|
||
lexemes: IDENT_RE_RU,
|
||
keywords: 'знач',
|
||
contains: [STR_START, STR_CONT]
|
||
},
|
||
hljs.C_LINE_COMMENT_MODE,
|
||
hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
|
||
]
|
||
},
|
||
{className: 'meta', begin: '#', end: '$'},
|
||
{className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
|
||
]
|
||
};
|
||
}; |