From d578a8763203387f8e7dc74fbf5b3cd84630a232 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 24 Aug 2023 12:29:44 +0200 Subject: [PATCH] =?UTF-8?q?parser=20fix=20for=20chain=20indexing=20into=20?= =?UTF-8?q?nested=20arrays=20`[=20[=E2=80=98a1=E2=80=99,=20=E2=80=98a2?= =?UTF-8?q?=E2=80=99=20],=20[=E2=80=98b1=E2=80=99,=20=E2=80=98b2=E2=80=99]?= =?UTF-8?q?=20][2][1]`=20=3D>=20`'b1'`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/imports/parser/grammar.js | 4 ++-- app/imports/parser/grammar.ne | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/imports/parser/grammar.js b/app/imports/parser/grammar.js index 8f513674..2ef69a71 100644 --- a/app/imports/parser/grammar.js +++ b/app/imports/parser/grammar.js @@ -1,4 +1,4 @@ -// Generated automatically by nearley, version 2.20.1 +// Generated automatically by nearley, version 2.16.0 // http://github.com/Hardmath123/nearley function id(x) { return x[0]; } @@ -93,7 +93,7 @@ let ParserRules = [ d => [d[2], ...d[3]] }, {"name": "arguments", "symbols": [{"literal":"("}, "_", {"literal":")"}], "postprocess": d => []}, - {"name": "indexExpression", "symbols": ["arrayExpression", {"literal":"["}, "_", "expression", "_", {"literal":"]"}], "postprocess": d => node.index.create({array: d[0], index: d[3]})}, + {"name": "indexExpression", "symbols": ["indexExpression", {"literal":"["}, "_", "expression", "_", {"literal":"]"}], "postprocess": d => node.index.create({array: d[0], index: d[3]})}, {"name": "indexExpression", "symbols": ["arrayExpression"], "postprocess": id}, {"name": "arrayExpression$subexpression$1", "symbols": ["expression"], "postprocess": d => d[0]}, {"name": "arrayExpression$ebnf$1", "symbols": []}, diff --git a/app/imports/parser/grammar.ne b/app/imports/parser/grammar.ne index e008ac54..39407980 100644 --- a/app/imports/parser/grammar.ne +++ b/app/imports/parser/grammar.ne @@ -125,7 +125,7 @@ arguments -> | "(" _ ")" {% d => [] %} indexExpression -> - arrayExpression "[" _ expression _ "]" {% d => node.index.create({array: d[0], index: d[3]}) %} + indexExpression "[" _ expression _ "]" {% d => node.index.create({array: d[0], index: d[3]}) %} | arrayExpression {% id %} arrayExpression ->