Bump eu.clarin.sru.fcs:fcs-simple-endpoint from 1.8.0 to 2.0.0 (fixes #251)

Bumps [eu.clarin.sru.fcs:fcs-simple-endpoint](https://github.com/clarin-eric/fcs-simple-endpoint) from 1.8.0 to 2.0.0.
- [Changelog](https://github.com/clarin-eric/fcs-simple-endpoint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/clarin-eric/fcs-simple-endpoint/compare/FCSSimpleEndpoint-1.8.0...FCSSimpleEndpoint-2.0.0)

---
updated-dependencies:
- dependency-name: eu.clarin.sru.fcs:fcs-simple-endpoint
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Change-Id: I2e0b3d4f88c0c73bf8174cfee75732b856fedf60
Signed-off-by: dependabot[bot] <support@github.com>
Reviewed-on: https://korap.ids-mannheim.de/gerrit/c/KorAP/Koral/+/10803
Reviewed-by: Nils Diewald <nils@diewald-online.de>
diff --git a/pom.xml b/pom.xml
index 245c08c..4f38935 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>		
 		<jackson.version>2.21.3</jackson.version>
 		<jackson.annotations.version>2.21</jackson.annotations.version>
-		<antlr4.version>4.9.3</antlr4.version>
+		<antlr4.version>4.13.2</antlr4.version>
 		<antlr3.version>3.5.3</antlr3.version>
 		<java.version>21</java.version>
 		<log4j.version>2.25.4</log4j.version>
@@ -151,7 +151,7 @@
 		<dependency>
 			<groupId>eu.clarin.sru.fcs</groupId>
 			<artifactId>fcs-simple-endpoint</artifactId>
-			<version>1.8.0</version>
+			<version>2.0.0</version>
 		</dependency>
   </dependencies>
 	<build>
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/ExpressionParser.java b/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/ExpressionParser.java
index c4184d4..2858397 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/ExpressionParser.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/ExpressionParser.java
@@ -15,15 +15,15 @@
 import de.ids_mannheim.korap.query.object.KoralToken;
 import de.ids_mannheim.korap.query.serialize.util.KoralException;
 import de.ids_mannheim.korap.query.serialize.util.StatusCodes;
-import eu.clarin.sru.server.fcs.parser.Expression;
-import eu.clarin.sru.server.fcs.parser.ExpressionAnd;
-import eu.clarin.sru.server.fcs.parser.ExpressionGroup;
-import eu.clarin.sru.server.fcs.parser.ExpressionNot;
-import eu.clarin.sru.server.fcs.parser.ExpressionOr;
-import eu.clarin.sru.server.fcs.parser.ExpressionWildcard;
-import eu.clarin.sru.server.fcs.parser.Operator;
-import eu.clarin.sru.server.fcs.parser.QueryNode;
-import eu.clarin.sru.server.fcs.parser.RegexFlag;
+import eu.clarin.sru.fcs.qlparser.fcs.Expression;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionAnd;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionGroup;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionNot;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionOr;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionWildcard;
+import eu.clarin.sru.fcs.qlparser.fcs.Operator;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryNode;
+import eu.clarin.sru.fcs.qlparser.fcs.RegexFlag;
 
 /**
  * This class handles and parses various FCSQL expressions (e.g.
@@ -81,16 +81,15 @@
             List<QueryNode> operands = queryNode.getChildren();
             if (isNot) {
                 return parseBooleanExpression(operands,
-                        KoralTermGroupRelation.OR, isToken);
+                        KoralTermGroupRelation.OR, isNot, isToken);
             }
             else {
                 return parseBooleanExpression(operands,
-                        KoralTermGroupRelation.AND, isToken);
+                        KoralTermGroupRelation.AND, isNot, isToken);
             }
         }
         else if (queryNode instanceof ExpressionGroup) {
-            // Ignore the group
-            return parseExpression(queryNode.getFirstChild(), false, isToken);
+            return parseExpression(queryNode.getFirstChild(), isNot, isToken);
         }
         else if (queryNode instanceof ExpressionNot) {
             boolean negation = isNot ? false : true;
@@ -100,11 +99,11 @@
             List<QueryNode> operands = queryNode.getChildren();
             if (isNot) {
                 return parseBooleanExpression(operands,
-                        KoralTermGroupRelation.AND, isToken);
+                        KoralTermGroupRelation.AND, isNot, isToken);
             }
             else {
                 return parseBooleanExpression(operands,
-                        KoralTermGroupRelation.OR, isToken);
+                        KoralTermGroupRelation.OR, isNot, isToken);
             }
         }
         else if (queryNode instanceof ExpressionWildcard) {
@@ -129,10 +128,10 @@
      * @throws KoralException
      */
     private KoralObject parseBooleanExpression(List<QueryNode> operands,
-            KoralTermGroupRelation relation, boolean isToken) throws KoralException {
+            KoralTermGroupRelation relation, boolean isNot, boolean isToken) throws KoralException {
         List<KoralObject> terms = new ArrayList<>();
         for (QueryNode node : operands) {
-            terms.add(parseExpression(node, false, false));
+            terms.add(parseExpression(node, isNot, false));
         }
         
         KoralTermGroup termGroup = new KoralTermGroup(relation, terms);
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/FCSSRUQueryParser.java b/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/FCSSRUQueryParser.java
index 3babf9c..4039001 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/FCSSRUQueryParser.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/fcsql/FCSSRUQueryParser.java
@@ -16,15 +16,15 @@
 import de.ids_mannheim.korap.query.object.KoralOperation;
 import de.ids_mannheim.korap.query.object.KoralSpan;
 import de.ids_mannheim.korap.query.object.KoralTerm;
-import eu.clarin.sru.server.fcs.parser.ExpressionWildcard;
-import eu.clarin.sru.server.fcs.parser.QueryDisjunction;
-import eu.clarin.sru.server.fcs.parser.QueryGroup;
-import eu.clarin.sru.server.fcs.parser.QueryNode;
-import eu.clarin.sru.server.fcs.parser.QuerySegment;
-import eu.clarin.sru.server.fcs.parser.QuerySequence;
-import eu.clarin.sru.server.fcs.parser.QueryWithWithin;
-import eu.clarin.sru.server.fcs.parser.SimpleWithin;
-import eu.clarin.sru.server.fcs.parser.SimpleWithin.Scope;
+import eu.clarin.sru.fcs.qlparser.fcs.ExpressionWildcard;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryDisjunction;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryGroup;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryNode;
+import eu.clarin.sru.fcs.qlparser.fcs.QuerySegment;
+import eu.clarin.sru.fcs.qlparser.fcs.QuerySequence;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryWithWithin;
+import eu.clarin.sru.fcs.qlparser.fcs.SimpleWithin;
+import eu.clarin.sru.fcs.qlparser.fcs.SimpleWithin.Scope;
 
 /** This class handles FCS query nodes from the FCSParser converting FCSQL to Java objects. 
  * 
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/FCSQLQueryProcessor.java b/src/main/java/de/ids_mannheim/korap/query/serialize/FCSQLQueryProcessor.java
index 671f505..54e347a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/FCSQLQueryProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/FCSQLQueryProcessor.java
@@ -8,9 +8,9 @@
 import de.ids_mannheim.korap.query.serialize.util.StatusCodes;
 import eu.clarin.sru.server.SRUQueryBase;
 import eu.clarin.sru.server.fcs.Constants;
-import eu.clarin.sru.server.fcs.parser.QueryNode;
-import eu.clarin.sru.server.fcs.parser.QueryParser;
-import eu.clarin.sru.server.fcs.parser.QueryParserException;
+import eu.clarin.sru.fcs.qlparser.QueryParserException;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryNode;
+import eu.clarin.sru.fcs.qlparser.fcs.QueryParser;
 
 /** FCSQLQueryProcessor is accountable for the serialization of FCSQL 
  *  to KoralQuery. The KoralQuery is structured as a map containing 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
index 41f37fe..521abc8 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
@@ -284,11 +284,7 @@
                 + " operands:["
                 + "{@type: koral:term, key: sein, foundry: tt, layer: l, type:type:regex, match: match:ne},"
                 + "{@type: koral:term, key: PPOSS, foundry: tt, layer: p, type:type:regex, match: match:ne}]}}";
-        //FCSQLQueryProcessorTest.runAndValidate(query, jsonLd);
-        
-        error = getError(new FCSQLQueryProcessor(query));
-        assertEquals(399, error.get(0));
-        assertTrue(error.get(1).toString().startsWith("Query cannot be parsed"));
+        FCSQLQueryProcessorTest.runAndValidate(query, jsonLd);
     }
 
     @Test