From e59893d35dc3a0f5f94f631285c6f7c219697492 Mon Sep 17 00:00:00 2001 From: "Sergei A. Trusov" Date: Tue, 11 Jun 2024 21:39:58 +1000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D1=82=D0=B5=D1=80=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D1=82=D0=B0=D1=82=D0=BE=D1=80:=20=C2=AB=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D1=8B=D0=B9=C2=BB=20=D1=8F=D1=89=D0=B8=D0=BA=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D1=86=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=BF=D0=B0=D0=B4=D0=B0=D0=B5=D1=82=20=D1=81=20?= =?UTF-8?q?=D1=82=D0=B0=D0=BA=D0=B8=D0=BC=20=D0=B6=D0=B5=20=D0=B2=20=D0=9F?= =?UTF-8?q?=D0=97.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлена недоработка d39e5446. Идентификаторы должны успешно сопоставляться с идентичными, потому «раскрывать» ящик не надо. Сравниваем по значению. --- src/interpreter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interpreter.c b/src/interpreter.c index e00f166..6ce8200 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -261,7 +261,7 @@ sentence: ; case rf_undefined: goto error_undefined; case rf_identifier: - if (vm->u[ip].id.tag == rf_id_box) { + if (vm->u[ip].id.tag == rf_id_box && !rf_svar_equal(vm, cur, ip)) { if (pp == pat_max) { inconsistence(st, "превышен лимит вложенности ящиков в образце", pp, ip); r = -2;