You've already forked bsl_console
mirror of
https://github.com/salexdv/bsl_console.git
synced 2025-07-01 00:45:19 +02:00
Начало разработки отдельного описания синтаксиса языка запросов
This commit is contained in:
@ -267,4 +267,51 @@ define([], function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query_language = {
|
||||||
|
|
||||||
|
id: 'bsl_query',
|
||||||
|
rules: {
|
||||||
|
defaultToken: '',
|
||||||
|
tokenPostfix: 'bsl',
|
||||||
|
ignoreCase: true,
|
||||||
|
keywords: [
|
||||||
|
'Выбрать', 'Из', 'Как', 'Значение', 'Различные', 'Тип', 'СгруппированоПо',
|
||||||
|
'Разрешенные', 'Первые', 'Поместить', 'Уничтожить', 'Упорядочить', 'По',
|
||||||
|
'Итоги', 'Общие', 'Автоупорядочивание', 'Сгруппировать', 'Объединить', 'Все',
|
||||||
|
],
|
||||||
|
expressions: [
|
||||||
|
'Выбор', 'Когда', 'Тогда', 'Иначе', 'Конец', 'Ложь', 'Истина', 'И', 'ИЛИ', 'НЕ',
|
||||||
|
'ЕстьNull', 'В', 'Секунда', 'Минута', 'Час', 'День', 'Неделя', 'Месяц',
|
||||||
|
'Квартал', 'Год', 'Декада', 'Полугодие', 'Подстрока', 'ДеньГода', 'ДеньНедели',
|
||||||
|
'НачалоПериода', 'КонецПериода', 'ДобавитьКДате', 'РазностьДат', 'Сумма',
|
||||||
|
'Минимум', 'Максимум', 'Среднее', 'Количество', 'Представление',
|
||||||
|
'ПредставлениеСсылки', 'ТипЗначения', 'АвтономерЗаписи', 'Подобно', 'ВИерархии',
|
||||||
|
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя', '', '', '',
|
||||||
|
'', '', '', '', '', '', '', '',
|
||||||
|
'Сумма', 'Максимум', 'Минимум',
|
||||||
|
],
|
||||||
|
operators: ['/', '[', ']', '=', '<', '>', '+', '-', '*', '%'],
|
||||||
|
tokenizer: {
|
||||||
|
root: [
|
||||||
|
[/"".*""/, 'query.string'],
|
||||||
|
[/[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, { cases: {
|
||||||
|
'@keywords': 'query.keyword',
|
||||||
|
'@operators': 'query.keyword',
|
||||||
|
'@expressions': 'query.exp',
|
||||||
|
'@default': 'query'
|
||||||
|
}}],
|
||||||
|
[/&[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, 'query.param'],
|
||||||
|
[/&/, 'query.param'],
|
||||||
|
[/[()]/, 'query.brackets'],
|
||||||
|
[/\/\/.*$/, 'comment'],
|
||||||
|
[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, 'query.float'],
|
||||||
|
[/[0-9_]+/, 'query.int'],
|
||||||
|
[/\|/, 'query'],
|
||||||
|
[/[?!@#$^*_]+/, 'query']
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
themes: language.themes
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
55
src/query.html
Normal file
55
src/query.html
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>BSL-editor</title>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||||
|
<link href="./decorations.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
#container {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="container"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function getCode() {
|
||||||
|
setTimeout(function() {
|
||||||
|
setTheme('bsl-white-query');
|
||||||
|
}, 1000);
|
||||||
|
return [
|
||||||
|
'ВЫБРАТЬ',
|
||||||
|
' АвансовыйОтчет.ВалютаДокумента КАК ВалютаДокумента,',
|
||||||
|
' АвансовыйОтчет.ВидОперации КАК ВидОперации,',
|
||||||
|
' АвансовыйОтчет.Комментарий КАК Комментарий,',
|
||||||
|
' АвансовыйОтчет.КурсДокумента КАК КурсДокумента,',
|
||||||
|
' "ИСТИНА" КАК Поле1,',
|
||||||
|
' ВЫБОР',
|
||||||
|
' КОГДА АвансовыйОтчет.ФизЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)',
|
||||||
|
' ТОГДА ИСТИНА',
|
||||||
|
' ИНАЧЕ "ЛОЖЬ"',
|
||||||
|
' КОНЕЦ КАК Поле2',
|
||||||
|
'ИЗ',
|
||||||
|
' Документ.АвансовыйОтчет КАК АвансовыйОтчет',
|
||||||
|
'ГДЕ',
|
||||||
|
' АвансовыйОтчет.Ссылка = &Ссылка',
|
||||||
|
].join('\n');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="./vs/loader.js"></script>
|
||||||
|
<script src="./bsl_helper.js"></script>
|
||||||
|
<script src="./init.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Reference in New Issue
Block a user