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;

Reply via email to