This is an automated email from the ASF dual-hosted git repository.
ggalvizo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new dd27f0f [ASTERIXDB-3001][MVN] Grammarix not finding all productions
dd27f0f is described below
commit dd27f0f1548257366ac2c995f7f6512ca9bc6478
Author: ggalvizo <[email protected]>
AuthorDate: Mon Dec 27 06:58:51 2021 -0700
[ASTERIXDB-3001][MVN] Grammarix not finding all productions
- user model changes: no
- storage format changes: no
- interface changes: no
Grammarix was mishandling the '"' case for quotes, making nearly
all productions after LiteralExpression not extensible.
Change-Id: Ib5d840237ee1224a4225cb67c795f3ac08452a76
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14663
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Dmitry Lychagin <[email protected]>
---
.../org/apache/asterix/extension/grammar/GrammarExtensionMojo.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
b/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
index d47e9a6..19bfe1d 100644
---
a/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
+++
b/asterixdb/asterix-maven-plugins/asterix-grammar-extension-maven-plugin/src/main/java/org/apache/asterix/extension/grammar/GrammarExtensionMojo.java
@@ -459,7 +459,9 @@ public class GrammarExtensionMojo extends AbstractMojo {
prevCharEscape = chars[bufferPosn] ==
ExternalDataConstants.ESCAPE;
}
} else {
- if (chars[bufferPosn] == ExternalDataConstants.QUOTE) {
+ if (chars[bufferPosn] == ExternalDataConstants.QUOTE &&
chars[bufferPosn] != start
+ && chars[bufferPosn - 1] != '\'') {
+ // If we see a quote that is not preceded by an
apostrophe, then we are inside a string.
inString = true;
} else if (chars[bufferPosn] == start) {
depth += 1;