Skip to content

Commit 56cbf6f

Browse files
author
Сосна Евгений
committed
Исправление парсинга модуля, для различных случаев окончания строк.
1 parent 703d0b5 commit 56cbf6f

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

lib/parser.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ SyntaxAnalysis.prototype.Create1CMethodDescription = function(parentModule) {
4545
//// - Удалить из регулярок определения метода Далее - не имеет смысла для 8.х
4646
//// - Описать индексы и назначения группировок, подобно тому, как сделано для RE_VAR.
4747
SyntaxAnalysis.prototype.RE_COMMENT = new RegExp('^\\s*((?:(?:(?:"[^"]")*)|(?:[^/]*)|(?:[^/]+/))*)(//.*)?\\s*$', "");
48-
SyntaxAnalysis.prototype.RE_ISCOMMENT = new RegExp('^\\s*//.*$', '');
48+
SyntaxAnalysis.prototype.RE_ISCOMMENT = new RegExp('^\\s*\\/\\/.*', '');
4949
/* Группировки: 1: Объявление метода (процедура/функция), 2: Имя метода, 3: Список параметров метода строкой, 4: "Далее" - имеет смысл только для 7.7. */
5050
//SyntaxAnalysis.RE_PROC = new RegExp('^\\s*((?:procedure)|(?:function)|(?:процедура)|(?:функция))\\s+([\\wА-яёЁ\\d]+)\\s*\\(([\\wА-яёЁ\\d\\s,.="\']*)\\)\\s*((?:forward)|(?:далее))?(.*)$', "i");
5151
SyntaxAnalysis.prototype.RE_PROC = new RegExp('^\\s*((?:procedure)|(?:function)|(?:процедура)|(?:функция))\\s+([\\wА-яёЁ\\d]+)\\s*\\(', 'i');
@@ -102,9 +102,14 @@ SyntaxAnalysis.prototype.AnalyseModule = function (sourceCode, initValueTable, t
102102
var Context = "";
103103

104104
var moduleContext = this.Create1CModuleContextDescription(initValueTable);
105+
let ending = "\n";
106+
107+
if (sourceCode.indexOf("\r\n") > 0) {
108+
ending = "\r\n";
109+
}
105110

106111
var proc_count = 0;
107-
var Lines = sourceCode.split("\n");
112+
var Lines = sourceCode.split(ending);
108113
var n = Lines.length;
109114
var i = 0;
110115
var nextPart = '';

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "onec-syntaxparser",
3-
"version": "0.1.3",
3+
"version": "0.1.4",
44
"description": "Parser for 1C bsl language based on regexp",
55
"main": "lib/parser.js",
66
"scripts": {

0 commit comments

Comments
 (0)