From c3ea7a777ca7fff4d877e1d3fc56cc2a5ef4a7cc Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Wed, 7 Aug 2024 13:16:34 -0700 Subject: [PATCH] ICU4J: Allow any type of expression in an unsupported statement, per grammar --- .../main/core/src/main/java/com/ibm/icu/message2/MFParser.java | 3 +-- testdata/message2/reserved-syntax-2.json | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/icu4j/main/core/src/main/java/com/ibm/icu/message2/MFParser.java b/icu4j/main/core/src/main/java/com/ibm/icu/message2/MFParser.java index 94470b9271ce..af701615262b 100644 --- a/icu4j/main/core/src/main/java/com/ibm/icu/message2/MFParser.java +++ b/icu4j/main/core/src/main/java/com/ibm/icu/message2/MFParser.java @@ -763,8 +763,7 @@ private MFDataModel.Declaration getDeclaration() throws MFParseException { input.backup(2); } expression = getPlaceholder(); - // This also covers != null - if (expression instanceof MFDataModel.VariableExpression) { + if (expression != null) { expressions.add(expression); } else { break; diff --git a/testdata/message2/reserved-syntax-2.json b/testdata/message2/reserved-syntax-2.json index e8ef9a782a69..9f5f2c6ba2a0 100644 --- a/testdata/message2/reserved-syntax-2.json +++ b/testdata/message2/reserved-syntax-2.json @@ -9,7 +9,8 @@ { "src" : "\\\\{ ? 󗟋 𫓜|@} | \\} @𠟅򑚎𥪙𽧫=|| @򒘒򳷦㥞򉊷=$򸚶񽱆񅗽񤕞 @𰺱:񎫛񢶛򶈎񄮒}", "ignoreCpp": "This would be an error in ICU4C" }, { "src" : "{ $iFN ^ @USh =$u @l}", "ignoreCpp": "This would be an error in ICU4C" }, { "src" : ".local $dS ={ $p4 ^ |.| \\\\ @g:FV = $kd}{{@}}", "ignoreCpp": "This would be an error in ICU4C" }, - { "src" : ".D. \\\\ ||{1}{{}} ", "ignoreCpp": "This would be an error in ICU4C" } + { "src" : ".D. \\\\ ||{1}{{}} ", "ignoreCpp": "This would be an error in ICU4C" }, + { "src" : ".cIT ||{|@| % \\} } { *󔜫񥘃󸇀 }{{}}", "ignoreCpp": "This would be an error in ICU4C" } ] }