mirror of
https://github.com/salexdv/bsl_console.git
synced 2024-11-30 08:57:08 +02:00
Начало разработки отдельного описания синтаксиса языка запросов
This commit is contained in:
parent
b0a8e48b71
commit
0a6253ce0e
@ -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>
|
Loading…
Reference in New Issue
Block a user