Skip to content

Commit 149ff2b

Browse files
author
Сосна Евгений
committed
Инициализация проекта
0 parents  commit 149ff2b

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed

lib/parser.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
3+
function Parser() {
4+
5+
}
6+
7+
Parser.prototype.parse = function (code) {
8+
var list = [];
9+
return list;
10+
}
11+
12+
module.exports = Parser;

package.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "onec-syntaxparser",
3+
"version": "0.0.0",
4+
"description": "Parser for 1C bsl language based on regexp",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "mocha test"
8+
},
9+
"keywords": [
10+
"bsl",
11+
"syntax",
12+
"1C",
13+
"1c"
14+
],
15+
"author": "Shenja Sosna <[email protected]>",
16+
"license": "MIT",
17+
"devDependencies": {
18+
"mocha": "~2.4.5",
19+
"chai": "~3.5.0",
20+
"underscore": "~1.8.3"
21+
},
22+
"dependencies": {
23+
"lokijs": "~1.3.15"
24+
}
25+
}

test/fixtures/module.os

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//Стандартный простой комментарий.
2+
//
3+
Процедура ТестЭкспортФункция(Знач Параметры) Экспорт
4+
5+
КонецПроцедуры
6+
7+
// Опсание процедуры с параметрами.
8+
// проверка описания подсказки к параметрам и проверка формирования документации по стандартным
9+
// параметрам к процедуре
10+
// Параметры:
11+
// ЗнакТабуляции - СправочниСсылка.Номенклатура - станартное описание, через два знака tab для описания параметра.
12+
// НоваяФичаТипаСруктуры - Структура - описание структуры опять таки ниже через + описываем ключи и их знаения.
13+
// + КлючСтруктуры - Строка - описание типа
14+
// + КлючБезТипа - тип не указываем, поэтому не знаем то считать это типом, то ли считать описанием.
15+
//
16+
// Возвращаемое значение:
17+
// Булево - Истина/Ложь - описание считаем после двух --, тогда только можно сказать что это описание.
18+
//
19+
&НаКлиенте
20+
Функция СложнаяФункцияСКучейПараметров(Знач ЗнакТабуляции, НоваяФичаТипаСруктуры) Экспорт
21+
Перем КакаяТоПеременная;
22+
23+
ТестЭкспортФункция(ЗнакТабуляции); //Проверка как определит что это локальный вызов.
24+
module.ТестЭкспортФункция(ЗнакТабуляции); //Определяем что это вызом экспортной процедуры из файла модуля.
25+
26+
Возврат Истина;
27+
КонецФункции

test/parser_spec.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"use strict";
2+
3+
require("mocha");
4+
var expect = require("chai").expect;
5+
var fs = require("fs");
6+
var _ = require("underscore");
7+
8+
var Parser = require('../lib/parser');
9+
10+
var objectFixture = fs.readFileSync(__dirname + '/fixtures/module.os', 'utf-8');
11+
12+
describe("Parser", function () {
13+
var parser;
14+
15+
16+
beforeEach(function () {
17+
parser = new Parser;
18+
19+
});
20+
21+
describe('Парсинг процедур и фнукций', function () {
22+
var list;
23+
var names;
24+
25+
beforeEach(function () {
26+
list = parser.parse(objectFixture);
27+
names = _.pluck(list, 'name');
28+
29+
});
30+
31+
it("Парсинг экспортной процедуры", function () {
32+
expect(names).to.contain("ТестЭкспортФункция");
33+
})
34+
})
35+
}
36+
)
37+

0 commit comments

Comments
 (0)