From 90ccf59b2579282f2ec3542db102fa7f64bea6b4 Mon Sep 17 00:00:00 2001 From: curry772 Date: Wed, 12 Aug 2026 17:57:42 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B3=80=ED=99=98=20=ED=91=9C=ED=98=84?= =?UTF-8?q?=EC=8B=9D=20=EB=82=B4=EC=97=90=20true,=20false=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0,=20warning=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=20=EB=B6=80=EB=B6=84=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eai/transformer/engine/Parser.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/eactive/eai/transformer/engine/Parser.java b/src/main/java/com/eactive/eai/transformer/engine/Parser.java index 5cd7d03..b3b2b1c 100644 --- a/src/main/java/com/eactive/eai/transformer/engine/Parser.java +++ b/src/main/java/com/eactive/eai/transformer/engine/Parser.java @@ -1,6 +1,11 @@ package com.eactive.eai.transformer.engine; import java.io.Serializable; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Set; import org.nfunk.jep.JEP; import org.nfunk.jep.function.PostfixMathCommand; @@ -26,6 +31,14 @@ public class Parser implements Serializable { private static Logger logger = Logger.getLogger("transformer"); + /** + * 표현식의 변수가 아니라 파서가 미리 심볼테이블에 등록해 두는 예약 심볼. + * getSymbols() 결과에서 제외하지 않으면 Transformer 가 이를 소스전문의 항목경로로 보고 + * 조회를 시도해 "레이아웃항목이 존재하지 않음" 경고가 매 변환마다 발생한다. + */ + private static final Set RESERVED_SYMBOLS = + Collections.unmodifiableSet(new HashSet<>(Arrays.asList("true", "false"))); + private transient JEP jep = new JEP(); // Create a new parser public Parser() { @@ -102,9 +115,9 @@ public class Parser implements Serializable { @SuppressWarnings("unchecked") public String[] getSymbols() { - String[] symbols = new String[getJep().getSymbolTable().size()]; - symbols = (String[])getJep().getSymbolTable().keySet().toArray(new String[symbols.length]); - return symbols; + Set symbols = new LinkedHashSet<>(getJep().getSymbolTable().keySet()); + symbols.removeAll(RESERVED_SYMBOLS); + return symbols.toArray(new String[symbols.size()]); } private void addGenericFunctions() throws Exception {