mirror of
https://github.com/salexdv/bsl_console.git
synced 2025-02-15 13:53:04 +02:00
Расширение ключевых слов запроса. Корректировка синтаксиса в части выделения ключевых слов, когда они таковыми не являются.
This commit is contained in:
parent
08213bfc5d
commit
058428e355
@ -121,19 +121,37 @@ define([], function () {
|
||||
// escape sequences
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
|
||||
queryWords: [
|
||||
'Выбрать', 'Из', 'Как', 'Значение', 'Различные', 'Тип', 'СгруппированоПо',
|
||||
'Разрешенные', 'Первые', 'Поместить', 'Уничтожить', 'Упорядочить', 'По',
|
||||
'Итоги', 'Общие', 'Автоупорядочивание', 'Сгруппировать', 'Объединить', 'Все',
|
||||
'ВЫБРАТЬ', 'РАЗРЕШЕННЫЕ', 'РАЗЛИЧНЫЕ', 'ПЕРВЫЕ', 'КАК', 'ПУСТАЯТАБЛИЦА', 'ПОМЕСТИТЬ',
|
||||
'ИЗ', 'ВНУТРЕННЕЕ', 'ЛЕВОЕ', 'ВНЕШНЕЕ', 'ПРАВОЕ', 'ПОЛНОЕ', 'СОЕДИНЕНИЕ',
|
||||
'ГДЕ', 'СГРУППИРОВАТЬ', 'ПО', 'ИМЕЮЩИЕ', 'ОБЪЕДИНИТЬ', 'ВСЕ', 'УПОРЯДОЧИТЬ',
|
||||
'АВТОУПОРЯДОЧИВАНИЕ', 'ИТОГИ', 'ОБЩИЕ', 'ТОЛЬКО', 'ИЕРАРХИЯ', 'ПЕРИОДАМИ', 'ДЛЯ',
|
||||
'ИЗМЕНЕНИЯ', 'SELECT', 'ALLOWED', 'DISTINCT', 'TOP', 'AS', 'EMPTYTABLE',
|
||||
'INTO', 'FROM', 'INNER', 'LEFT', ' OUTER', 'RIGHT', 'FULL',
|
||||
'JOIN', 'ON', 'WHERE', 'GROUP', 'BY', 'HAVING', 'UNION',
|
||||
'ALL', 'ORDER', 'AUTOORDER', 'TOTALS', 'OVERALL', 'ONLY', 'HIERARCHY',
|
||||
'СГРУППИРОВАНОПО', 'GROUPEDBY', 'БУЛЕВО', 'BOOLEAN', 'ВОЗР', 'ASC',
|
||||
'ГРУППИРУЮЩИМ', 'GROUPING', 'ЗНАЧЕНИЕ', 'VALUE', 'ИНДЕКСИРОВАТЬ', 'INDEX',
|
||||
'НАБОРАМ', 'SETS', 'ТИП', 'TYPE', 'ТИПЗНАЧЕНИЯ', 'VALUETYPE',
|
||||
'УБЫВ', 'DESC', 'УНИЧТОЖИТЬ', 'DROP'
|
||||
],
|
||||
queryExp: [
|
||||
'Выбор', 'Когда', 'Тогда', 'Иначе', 'Конец', 'Ложь', 'Истина', 'И', 'ИЛИ', 'НЕ',
|
||||
'ЕстьNull', 'В', 'Секунда', 'Минута', 'Час', 'День', 'Неделя', 'Месяц',
|
||||
'Квартал', 'Год', 'Декада', 'Полугодие', 'Подстрока', 'ДеньГода', 'ДеньНедели',
|
||||
'НачалоПериода', 'КонецПериода', 'ДобавитьКДате', 'РазностьДат', 'Сумма',
|
||||
'Минимум', 'Максимум', 'Среднее', 'Количество', 'Представление',
|
||||
'ПредставлениеСсылки', 'ТипЗначения', 'АвтономерЗаписи', 'Подобно', 'ВИерархии',
|
||||
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя',
|
||||
'Сумма', 'Максимум', 'Минимум',
|
||||
'АВТОНОМЕРЗАПИСИ', 'RECORDAUTONUMBER', 'В', 'IN', 'ВЫБОР', 'CASE',
|
||||
'ВЫРАЗИТЬ', 'CAST', 'ГОД', 'YEAR', 'ДАТА', 'DATE', 'ДАТАВРЕМЯ',
|
||||
'DATETIME', 'ДЕКАДА', 'TENDAYS', 'ДЕНЬ', 'DAY', 'ДЕНЬГОДА',
|
||||
'DAYOFYEAR', 'ДЕНЬНЕДЕЛИ ', 'WEEKDAY', 'ДОБАВИТЬКДАТЕ', 'DATEADD',
|
||||
'ЕСТЬ', 'IS', 'ЕСТЬNULL', 'ISNULL', 'И', 'AND', 'ИЕРАРХИИ',
|
||||
'HIERARCHY', 'ИЛИ', 'OR', 'ИНАЧЕ', 'ELSE', 'ИСТИНА', 'TRUE',
|
||||
'КВАРТАЛ', 'QUARTER', 'КОЛИЧЕСТВО', 'COUNT', 'КОНЕЦПЕРИОДА',
|
||||
'ENDOFPERIOD', 'КОНЕЦ', 'END', 'ЛОЖЬ', 'FALSE', 'МАКСИМУМ',
|
||||
'MAX', 'МЕЖДУ', 'BETWEEN', 'МЕСЯЦ', 'MONTH', 'МИНИМУМ', 'MIN',
|
||||
'МИНУТА', 'MINUTE', 'НАЧАЛОПЕРИОДА', 'BEGINOFPERIOD', 'НЕ', 'NOT',
|
||||
'НЕДЕЛЯ', 'WEEK', 'НЕОПРЕДЕЛЕНО', 'UNDEFINED', 'ПОДОБНО', 'LIKE',
|
||||
'ПОДСТРОКА', 'SUBSTRING', 'ПОЛУГОДИЕ', 'HALFYEAR', 'ПРЕДСТАВЛЕНИЕ',
|
||||
'PRESENTATION', 'ПРЕДСТАВЛЕНИЕССЫЛКИ', 'REFPRESENTATION',
|
||||
'РАЗНОСТЬДАТ', 'DATEDIFF ', 'СЕКУНДА', 'SECOND', 'СПЕЦСИМВОЛ',
|
||||
'ESCAPE', 'СРЕДНЕЕ', 'AVG', 'ССЫЛКА', 'REFS', 'СТРОКА', 'STRING',
|
||||
'СУММА', 'SUM', 'ТОГДА', 'THEN', 'УБЫВ', 'DESC', 'ЧАС', 'HOUR',
|
||||
'ЧИСЛО', 'NUMBER'
|
||||
],
|
||||
queryOperators: /[=><+\-*\/%;,]+/,
|
||||
// The main tokenizer for our languages
|
||||
@ -273,24 +291,17 @@ define([], function () {
|
||||
defaultToken: '',
|
||||
tokenPostfix: 'bsl',
|
||||
ignoreCase: true,
|
||||
keywords: [
|
||||
'Выбрать', 'Из', 'Как', 'Значение', 'Различные', 'Тип', 'СгруппированоПо',
|
||||
'Разрешенные', 'Первые', 'Поместить', 'Уничтожить', 'Упорядочить', 'По',
|
||||
'Итоги', 'Общие', 'Автоупорядочивание', 'Сгруппировать', 'Объединить', 'Все',
|
||||
],
|
||||
expressions: [
|
||||
'Выбор', 'Когда', 'Тогда', 'Иначе', 'Конец', 'Ложь', 'Истина', 'И', 'ИЛИ', 'НЕ',
|
||||
'ЕстьNull', 'В', 'Секунда', 'Минута', 'Час', 'День', 'Неделя', 'Месяц',
|
||||
'Квартал', 'Год', 'Декада', 'Полугодие', 'Подстрока', 'ДеньГода', 'ДеньНедели',
|
||||
'НачалоПериода', 'КонецПериода', 'ДобавитьКДате', 'РазностьДат', 'Сумма',
|
||||
'Минимум', 'Максимум', 'Среднее', 'Количество', 'Представление',
|
||||
'ПредставлениеСсылки', 'ТипЗначения', 'АвтономерЗаписи', 'Подобно', 'ВИерархии',
|
||||
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя',
|
||||
'Сумма', 'Максимум', 'Минимум',
|
||||
],
|
||||
keywords: bsl_language.rules.queryWords,
|
||||
expressions: bsl_language.rules.queryExp,
|
||||
as : '\u041A\u0410\u041A',
|
||||
operators: /[=><+\-*\/%;,]+/,
|
||||
tokenizer: {
|
||||
root: [
|
||||
root: [
|
||||
[/(как|as\s)(.+)(,?)/, [
|
||||
{token: 'query.keyword'},
|
||||
{token: 'query'},
|
||||
{token: 'query.operator'}
|
||||
]],
|
||||
[/[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, { cases: {
|
||||
'@keywords': 'query.keyword',
|
||||
'@expressions': 'query.exp',
|
||||
@ -298,9 +309,11 @@ define([], function () {
|
||||
}}],
|
||||
[/".*"/, 'query.string'],
|
||||
[/&[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, 'query.param'],
|
||||
[/&/, 'query.param'],
|
||||
[/[()]/, 'query.brackets'],
|
||||
[/&/, 'query.param'],
|
||||
[/[()]/, 'query.brackets'],
|
||||
[/\/\/.*$/, 'comment'],
|
||||
[/\..*?\s/, 'query'],
|
||||
[/[^ ]+\.[^ ]+/, 'query'],
|
||||
[/@operators/, 'query.operator'],
|
||||
[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, 'query.float'],
|
||||
[/[0-9_]+/, 'query.int'],
|
||||
|
@ -32,22 +32,26 @@
|
||||
' НДСЗаписиКнигиПродажОбороты.Организация КАК Организация,',
|
||||
' НДСЗаписиКнигиПродажОбороты.Покупатель КАК Покупатель,',
|
||||
' НДСЗаписиКнигиПродажОбороты.СчетФактура КАК СчетФактура,',
|
||||
' НДСЗаписиКнигиПродажОбороты.СчетФактура.Ссылка КАК Ссылка,',
|
||||
' НДСЗаписиКнигиПродажОбороты.ВидЦенности КАК ВидЦенности,',
|
||||
' НДСЗаписиКнигиПродажОбороты.СтавкаНДС КАК СтавкаНДС,',
|
||||
' НДСЗаписиКнигиПродажОбороты._ДопРеквизит КАК НачалоПериода,',
|
||||
' НДСЗаписиКнигиПродажОбороты.ДатаОплаты КАК ДатаОплаты,',
|
||||
' НДСЗаписиКнигиПродажОбороты.ДокументОплаты КАК ДокументОплаты,',
|
||||
' НДСЗаписиКнигиПродажОбороты.Событие КАК Событие,',
|
||||
' НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот * -1 КАК СуммаБезНДССторно,',
|
||||
' НДСЗаписиКнигиПродажОбороты.НДСОборот * -1 КАК НДССторно,',
|
||||
' НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот КАК СуммаБезНДС,',
|
||||
' НДСЗаписиКнигиПродажОбороты.НДСОборот КАК НДС,',
|
||||
' НДСЗаписиКнигиПродажОбороты.НДСОборот AS НДС,',
|
||||
' НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента',
|
||||
' "ИСТИНА" КАК СтроковыйЛитерал,',
|
||||
' ВЫБОР',
|
||||
' КОГДА НДСЗаписиКнигиПродажОбороты.СчетФактура = ЗНАЧЕНИЕ(Документы.СчетаФактурыВыданные.ПустаяСсылка)',
|
||||
' КОГДА НДСЗаписиКнигиПродажОбороты.СчетФактура = ЗНАЧЕНИЕ(Документ.СчетФактураВыданный.ПустаяСсылка)',
|
||||
' ТОГДА ИСТИНА',
|
||||
' ИНАЧЕ "ЛОЖЬ"',
|
||||
' КОНЕЦ КАК ПолеСВыбором',
|
||||
' КОНЕЦ КАК ПолеСВыбором,',
|
||||
' Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента',
|
||||
' НДСЗаписиКнигиПродажОбороты.НДСОборот КАК Выразить',
|
||||
'ИЗ',
|
||||
' РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(',
|
||||
' &НачалоПериода,',
|
||||
|
Loading…
x
Reference in New Issue
Block a user