Repository: vxquery
Updated Branches:
  refs/heads/master dac53abcf -> 80efee30c


Still working on JsonParser


Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/2410db88
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/2410db88
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/2410db88

Branch: refs/heads/master
Commit: 2410db882eae4d281f375bab0d3b87a6f2813709
Parents: ed79cb0
Author: Christina Pavlopoulou <[email protected]>
Authored: Wed May 25 14:20:20 2016 -0700
Committer: Christina Pavlopoulou <[email protected]>
Committed: Wed May 25 14:20:20 2016 -0700

----------------------------------------------------------------------
 .../org/apache/vxquery/xmlquery/ast/ASTTag.java | 92 +++++++++++++++++++-
 .../xmlquery/ast/ArrayConstructorNode.java      | 27 ++++++
 vxquery-core/src/main/javacc/xquery-grammar.jj  | 42 +++++++++
 3 files changed, 160 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/vxquery/blob/2410db88/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ASTTag.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ASTTag.java 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ASTTag.java
index 65acb21..cd3f223 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ASTTag.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ASTTag.java
@@ -17,6 +17,96 @@
 package org.apache.vxquery.xmlquery.ast;
 
 public enum ASTTag {
-    VERSION_DECL, PROLOG, LIBRARY_MODULE, MODULE_DECLARATION, MAIN_MODULE, 
QUERY_BODY, BOUNDARY_SPACE_DECLARATION, DEFAULT_ELEMENT_NAMESPACE_DECLARATION, 
DEFAULT_FUNCTION_NAMESPACE_DECLARATION, OPTION_DECLARATION, 
FT_OPTION_DECLARATION, ORDERING_MODE_DECLARATION, EMPTY_ORDER_DECLARATION, 
COPY_NAMESPACES_DECLARATION, DEFAULT_COLLATION_DECLARATION, 
BASE_URI_DECLARATION, SCHEMA_IMPORT, MODULE_IMPORT, VARIABLE_DECLARATION, 
TYPE_DECLARATION, SEQUENCE_TYPE, ITEM_TYPE, ATOMIC_TYPE, ANY_NODE_TEST, 
ITEM_TEST, DOCUMENT_TEST, QNAME, ELEMENT_TEST, SCHEMA_ELEMENT_TEST, 
ATTRIBUTE_TEST, SCHEMA_ATTRIBUTE_TEST, TEXT_TEST, COMMENT_TEST, PI_TEST, 
TYPE_NAME, CONSTRUCTION_DECLARATION, FUNCTION_DECLARATION, FUNCTION_PARAMETER, 
ENCLOSED_EXPRESSION, EXPRESSION, FLWOR_EXPRESSION, FOR_CLAUSE, 
FOR_VARIABLE_DECLARATION, LET_VARIABLE_DECLARATION, LET_CLAUSE, WHERE_CLAUSE, 
ORDERBY_CLAUSE, ORDER_SPECIFICATION, QUANTIFIED_EXPRESSION, 
QUANTIFIED_VARIABLE_DECLARATION, TYPESWITCH_EXPRESSION, CASE_CLAUSE, 
IF_EXPRESSIO
 N, INFIX_EXPRESSION, TYPE_EXPRESSION, UNARY_EXPRESSION, VALIDATE_EXPRESSION, 
EXTENSION_EXPRESSION, PRAGMA_NODE, PATH_EXPRESSION, AXIS_STEP, NAME_TEST, 
FILTER_EXPRESSION, LITERAL, VARIABLE_REFERENCE, PARENTHESIZED_EXPRESSION, 
CONTEXT_ITEM, ORDERED_EXPRESSION, UNORDERED_EXPRESSION, FUNCTION_EXPRESSION, 
DIRECT_ELEMENT_CONSTRUCTOR, DIRECT_ATTRIBUTE_CONSTRUCTOR, 
DQUOTED_ATTRIBUTE_CONTENT, SQUOTED_ATTRIBUTE_CONTENT, TEXTUAL_NODE_CONTENT, 
CDATA_SECTION, DIRECT_COMMENT_CONSTRUCTOR, DIRECT_PI_CONSTRUCTOR, 
COMPUTED_DOCUMENT_CONSTRUCTOR, COMPUTED_ATTRIBUTE_CONSTRUCTOR, 
COMPUTED_ELEMENT_CONSTRUCTOR, COMPUTED_TEXT_CONSTRUCTOR, 
COMPUTED_COMMENT_CONSTRUCTOR, EMPTY_SEQUENCE_TYPE, RELATIVE_PATH_EXPRESSION, 
COMPUTED_PI_CONSTRUCTOR, NCNAME, CONTENT_CHARS, NAMESPACE_DECLARATION, 
SINGLE_TYPE
+    VERSION_DECL,
+    PROLOG,
+    LIBRARY_MODULE,
+    MODULE_DECLARATION,
+    MAIN_MODULE,
+    QUERY_BODY,
+    BOUNDARY_SPACE_DECLARATION,
+    DEFAULT_ELEMENT_NAMESPACE_DECLARATION,
+    DEFAULT_FUNCTION_NAMESPACE_DECLARATION,
+    OPTION_DECLARATION,
+    FT_OPTION_DECLARATION,
+    ORDERING_MODE_DECLARATION,
+    EMPTY_ORDER_DECLARATION,
+    COPY_NAMESPACES_DECLARATION,
+    DEFAULT_COLLATION_DECLARATION,
+    BASE_URI_DECLARATION,
+    SCHEMA_IMPORT,
+    MODULE_IMPORT,
+    VARIABLE_DECLARATION,
+    TYPE_DECLARATION,
+    SEQUENCE_TYPE,
+    ITEM_TYPE,
+    ATOMIC_TYPE,
+    ANY_NODE_TEST,
+    ITEM_TEST,
+    DOCUMENT_TEST,
+    QNAME,
+    ELEMENT_TEST,
+    SCHEMA_ELEMENT_TEST,
+    ATTRIBUTE_TEST,
+    SCHEMA_ATTRIBUTE_TEST,
+    TEXT_TEST,
+    COMMENT_TEST,
+    PI_TEST,
+    TYPE_NAME,
+    CONSTRUCTION_DECLARATION,
+    FUNCTION_DECLARATION,
+    FUNCTION_PARAMETER,
+    ENCLOSED_EXPRESSION,
+    EXPRESSION,
+    FLWOR_EXPRESSION,
+    FOR_CLAUSE,
+    FOR_VARIABLE_DECLARATION,
+    LET_VARIABLE_DECLARATION,
+    LET_CLAUSE,
+    WHERE_CLAUSE,
+    ORDERBY_CLAUSE,
+    ORDER_SPECIFICATION,
+    QUANTIFIED_EXPRESSION,
+    QUANTIFIED_VARIABLE_DECLARATION,
+    TYPESWITCH_EXPRESSION,
+    CASE_CLAUSE,
+    IF_EXPRESSION,
+    INFIX_EXPRESSION,
+    TYPE_EXPRESSION,
+    UNARY_EXPRESSION,
+    VALIDATE_EXPRESSION,
+    EXTENSION_EXPRESSION,
+    PRAGMA_NODE,
+    PATH_EXPRESSION,
+    AXIS_STEP,
+    NAME_TEST,
+    FILTER_EXPRESSION,
+    LITERAL,
+    VARIABLE_REFERENCE,
+    PARENTHESIZED_EXPRESSION,
+    CONTEXT_ITEM,
+    ORDERED_EXPRESSION,
+    UNORDERED_EXPRESSION,
+    FUNCTION_EXPRESSION,
+    ARRAY_CONSTRUCTOR,
+    DIRECT_ELEMENT_CONSTRUCTOR,
+    DIRECT_ATTRIBUTE_CONSTRUCTOR,
+    DQUOTED_ATTRIBUTE_CONTENT,
+    SQUOTED_ATTRIBUTE_CONTENT,
+    TEXTUAL_NODE_CONTENT,
+    CDATA_SECTION,
+    DIRECT_COMMENT_CONSTRUCTOR,
+    DIRECT_PI_CONSTRUCTOR,
+    COMPUTED_DOCUMENT_CONSTRUCTOR,
+    COMPUTED_ATTRIBUTE_CONSTRUCTOR,
+    COMPUTED_ELEMENT_CONSTRUCTOR,
+    COMPUTED_TEXT_CONSTRUCTOR,
+    COMPUTED_COMMENT_CONSTRUCTOR,
+    EMPTY_SEQUENCE_TYPE,
+    RELATIVE_PATH_EXPRESSION,
+    COMPUTED_PI_CONSTRUCTOR,
+    NCNAME,
+    CONTENT_CHARS,
+    NAMESPACE_DECLARATION,
+    SINGLE_TYPE
 
 }

http://git-wip-us.apache.org/repos/asf/vxquery/blob/2410db88/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ArrayConstructorNode.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ArrayConstructorNode.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ArrayConstructorNode.java
new file mode 100644
index 0000000..235f2c9
--- /dev/null
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/ast/ArrayConstructorNode.java
@@ -0,0 +1,27 @@
+package org.apache.vxquery.xmlquery.ast;
+
+import java.util.List;
+
+import org.apache.vxquery.util.SourceLocation;
+
+public class ArrayConstructorNode extends ASTNode {
+    private List<ASTNode> items;
+
+    public ArrayConstructorNode(SourceLocation loc) {
+        super(loc);
+    }
+
+    @Override
+    public ASTTag getTag() {
+        return ASTTag.ARRAY_CONSTRUCTOR;
+    }
+
+    public List<ASTNode> getItems() {
+        return items;
+    }
+
+    public void setItems(List<ASTNode> items) {
+        this.items = items;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/vxquery/blob/2410db88/vxquery-core/src/main/javacc/xquery-grammar.jj
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/javacc/xquery-grammar.jj 
b/vxquery-core/src/main/javacc/xquery-grammar.jj
index 7c0491a..91c9904 100644
--- a/vxquery-core/src/main/javacc/xquery-grammar.jj
+++ b/vxquery-core/src/main/javacc/xquery-grammar.jj
@@ -1796,6 +1796,7 @@ ASTNode PrimaryExpr():
         | LOOKAHEAD(2) expr = OrderedExpr()
         | LOOKAHEAD(2) expr = UnorderedExpr()
         | expr = Constructor()
+        | expr = JsonConstructor()
     ) {
         return expr;
     }
@@ -1937,6 +1938,47 @@ ASTNode FunctionCall()  :
     }
 }
 
+ASTNode JsonConstructor()  :
+{
+    ASTNode result;
+}
+{
+    result = ArrayConstructor()
+    {
+               return result;
+       }
+}
+
+ASTNode ArrayConstructor()  :
+{
+       Token start, end;
+       List<ASTNode> items;
+}
+{
+       start="[" items=ArrayItemList() end="]" {
+               ArrayConstructorNode array = new 
ArrayConstructorNode(createSourceLocation(start));
+               array.setItems(items);
+               return array;
+       }
+}
+
+List<ASTNode> ArrayItemList()  :
+{
+       List<ASTNode> items = new ArrayList<ASTNode>();
+       ASTNode arraynode;
+}
+{[
+       arraynode = Literal() {
+        items.add(arraynode);
+    } (
+        "," arraynode = Literal() {
+            items.add(arraynode);
+        }
+    )* ]{
+        return items;
+    }
+}      
+
 ASTNode Constructor()  :
 {
     ASTNode result;

Reply via email to