You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/09/05 14:55:14 UTC
svn commit: r1165266 - in /incubator/jena/Jena2/ARQ/trunk: Grammar/
src/com/hp/hpl/jena/sparql/lang/arq/
Author: andy
Date: Mon Sep 5 12:55:14 2011
New Revision: 1165266
URL: http://svn.apache.org/viewvc?rev=1165266&view=rev
Log: (empty)
Added:
incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt (with props)
incubator/jena/Jena2/ARQ/trunk/Grammar/Q.arq
incubator/jena/Jena2/ARQ/trunk/Grammar/json-extra.jj
Modified:
incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj
incubator/jena/Jena2/ARQ/trunk/Grammar/json.jj
incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj
incubator/jena/Jena2/ARQ/trunk/Grammar/sparql_11.jj
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java
Added: incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt?rev=1165266&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt (added)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt Mon Sep 5 12:55:14 2011
@@ -0,0 +1,10 @@
+Problems: the lexer has moved ahread too far and so:
+
+JSON
+{ "abc" : "def" }
+WHERE
+{
+ ?s ?p ?o
+}
+
+attempts to parse WHERE in JSON more (it's a KeyString)
Propchange: incubator/jena/Jena2/ARQ/trunk/Grammar/AFS_json_notes.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/jena/Jena2/ARQ/trunk/Grammar/Q.arq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/Q.arq?rev=1165266&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/Q.arq (added)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/Q.arq Mon Sep 5 12:55:14 2011
@@ -0,0 +1,6 @@
+JSON
+{ "abc" : "def" }
+WHERE
+{
+ ?s ?p ?o
+}
\ No newline at end of file
Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj Mon Sep 5 12:55:14 2011
@@ -56,7 +56,11 @@ void QueryUnit(): { }
void Query() : { }
{
Prologue()
- ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() )
+ ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery()
+// #ifdef ARQ
+// | JsonTemplateQuery()
+// #endif
+ )
BindingsClause()
}
void UpdateUnit() : {}
Added: incubator/jena/Jena2/ARQ/trunk/Grammar/json-extra.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/json-extra.jj?rev=1165266&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/json-extra.jj (added)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/json-extra.jj Mon Sep 5 12:55:14 2011
@@ -0,0 +1,196 @@
+/* Grammar extract - JSON tokens, parser state <JSON> */
+
+// Do \ u inside JavaCC??
+
+
+TOKEN [IGNORE_CASE] : { <JSON: "json" > }
+
+void JsonTemplateQuery() : {}
+{
+ <JSON>
+ { token_source.SwitchTo(JSONX) ; }
+ json()
+ { token_source.SwitchTo(DEFAULT) ; }
+}
+
+<JSONX> SKIP : { " " | "\t" | "\n" | "\r" | "\f" }
+
+<JSONX> TOKEN :
+{
+ < J_ECHAR: "\\" ( "t"|"b"|"n"|"r"|"f"|"\\"|"\""|"'") >
+
+| < J_STRING:
+ // Double quoted string
+ "\"" ( (~["\"","\\","\n","\r"]) | <J_ECHAR> )* "\"" >
+| < #J_AZ: ( ["A"-"Z"] | ["a"-"z"] ) >
+
+| <J_TRUE: "true">
+| <J_FALSE: "false">
+| <J_NULL: "null">
+
+
+// WARNING : This accepts all keywords.
+| < J_KEY_STRING: (<J_AZ> | "_") ( <J_AZ> | "_" | <J_DIGITS> )* >
+
+| < #J_DIGITS: (["0"-"9"])+>
+| < J_INTEGER: <J_DIGITS> >
+| < J_DECIMAL: ( <J_DIGITS> "." (<J_DIGITS>)* | "." <J_DIGITS> ) >
+| < J_DOUBLE: // Required exponent.
+ (
+ (["0"-"9"])+ "." (["0"-"9"])* <J_EXPONENT>
+ | "." (["0"-"9"])+ (<J_EXPONENT>)
+ | (["0"-"9"])+ <J_EXPONENT>
+ )
+ >
+
+| < J_VAR: "?" <J_KEY_STRING> >
+
+| < J_POSITIVE_INTEGER: <J_PLUS> <J_INTEGER> >
+| < J_POSITIVE_DECIMAL: <J_PLUS> <J_DECIMAL> >
+| < J_POSITIVE_DOUBLE: <J_PLUS> <J_DOUBLE> >
+
+| < J_NEGATIVE_INTEGER: <J_MINUS> <J_INTEGER> >
+| < J_NEGATIVE_DECIMAL: <J_MINUS> <J_DECIMAL> >
+| < J_NEGATIVE_DOUBLE: <J_MINUS> <J_DOUBLE> >
+
+| < #J_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+
+| < J_LBRACE: "{" >
+| < J_RBRACE: "}" >
+
+| < J_LBRACKET: "[" >
+| < J_RBRACKET: "]" >
+
+| < J_LPAREN: "(" >
+| < J_RPAREN: ")" >
+
+| < J_COMMA: "," >
+| < J_COLON: ":" >
+
+| < J_PLUS: "+" >
+| < J_MINUS: "-" >
+}
+
+void json() : {}
+{
+ { jsonStartParse() ; }
+ JObject()
+ { jsonFinishParse() ; }
+}
+
+
+void json_any() : {}
+{
+ { jsonStartParse() ; }
+ (JValue())?
+ { jsonFinishParse() ; }
+}
+
+
+// ---- Structures
+
+void JValue() : {}
+{
+ JSimpleValue()
+| JObject()
+| JArray()
+}
+
+void JObject() : { }
+{
+ <J_LBRACE>
+ { jsonStartObject() ; }
+ (JMembers())?
+ { jsonFinishObject(); }
+ <J_RBRACE>
+}
+
+void JMembers() : {}
+{
+ JPair()
+ (<J_COMMA> JPair())*
+}
+
+void JPair() : {}
+{
+ { jsonStartPair() ; }
+ ( JString() | JKeyString() )
+ { jsonKeyPair() ; }
+ <J_COLON>
+ JValue()
+ { jsonFinishPair() ; }
+}
+
+void JArray() : {}
+{
+ <J_LBRACKET>
+ { jsonStartArray() ; }
+ (JElements())?
+ { jsonFinishArray() ; }
+ <J_RBRACKET>
+}
+
+void JElements() : { }
+{
+ JArrayValue()
+ (<J_COMMA> JArrayValue())*
+}
+
+void JArrayValue() : { }
+{
+ JValue() { jsonElement() ; }
+}
+
+// ----
+
+void JSimpleValue() : {}
+{
+ JString()
+| JNumber()
+| JTrue()
+| JFalse()
+| JNull()
+}
+
+void JNumber() : { Token t ; }
+{
+ t = <J_INTEGER> { jsonValueInteger(t.image) ; }
+| t = <J_DECIMAL> { jsonValueDecimal(t.image) ; }
+| t = <J_DOUBLE> { jsonValueDouble(t.image) ; }
+| t = <J_POSITIVE_INTEGER> { jsonValueInteger(t.image) ; }
+| t = <J_POSITIVE_DECIMAL> { jsonValueDecimal(t.image) ; }
+| t = <J_POSITIVE_DOUBLE> { jsonValueDouble(t.image) ; }
+| t = <J_NEGATIVE_INTEGER> { jsonValueInteger(t.image) ; }
+| t = <J_NEGATIVE_DECIMAL> { jsonValueDecimal(t.image) ; }
+| t = <J_NEGATIVE_DOUBLE> { jsonValueDouble(t.image) ; }
+}
+
+void JString() : { Token t ; }
+{
+ t = <J_STRING> { jsonValueString(t.image); }
+}
+
+void JKeyString() : { Token t ; }
+{
+ t = <J_KEY_STRING> { jsonValueKeyString(t.image); }
+}
+
+void JVar() : { Token t ; }
+{
+ t = <J_VAR> { jsonValueVar(t.image) ; }
+}
+
+void JTrue() : { Token t ; }
+{
+ <J_TRUE> { jsonValueBoolean(true) ; }
+}
+
+void JFalse() : { Token t ; }
+{
+ <J_FALSE> { jsonValueBoolean(false) ; }
+}
+
+void JNull() : { Token t ; }
+{
+ <J_NULL> { jsonValueNull() ; }
+}
Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/json.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/json.jj?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/json.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/json.jj Mon Sep 5 12:55:14 2011
@@ -1,272 +1,272 @@
-#if 0
-// (Run through cpp -P -C first)
-#endif
-
-#define PACKAGE org.openjena.atlas.json.io.parserjavacc.javacc
-#define CLASS JSON_Parser
-#define PARSERBASE JSON_ParserBase
-
-options
-{
- JAVA_UNICODE_ESCAPE = true ;
- UNICODE_INPUT = false ;
-
- STATIC = false ;
-// DEBUG_PARSER = true ;
-// DEBUG_TOKEN_MANAGER = true ;
-}
-
-
-PARSER_BEGIN(CLASS)
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package PACKAGE ;
-
-public class CLASS extends PARSERBASE
-{
-}
-PARSER_END(CLASS)
-
-
-SKIP : { <" " | "\t" | "\n" | "\r" | "\f"> }
-TOKEN: { <WS: " " | "\t" | "\n" | "\r" | "\f"> }
-
-// Do \ u inside JavaCC??
-
-//TOKEN [IGNORE_CASE] :
-TOKEN :
-{
- <ECHAR: "\\" ( "t"|"b"|"n"|"r"|"f"|"\\"|"\""|"'") >
-| < #QUOTE_3D: "\"\"\"">
-| < #QUOTE_3S: "'''">
-| < STRING_LITERAL1:
- // Single quoted string
- "'" ( (~["'","\\","\n","\r"]) | <ECHAR> )* "'" >
-| < STRING_LITERAL2:
- // Double quoted string
- "\"" ( (~["\"","\\","\n","\r"]) | <ECHAR> )* "\"" >
-| < STRING_LITERAL_LONG1:
- <QUOTE_3S>
- ( ("'" | "''")? (~["'","\\"] | <ECHAR> ))*
- <QUOTE_3S> >
-
-| < STRING_LITERAL_LONG2:
- <QUOTE_3D>
- ( ("\"" | "\"\"")? (~["\"","\\"] | <ECHAR> ))*
- <QUOTE_3D> >
-
-
-
-
-| < #DIGITS: (["0"-"9"])+>
-| < INTEGER: <DIGITS> >
-| < DECIMAL: ( <DIGITS> "." (<DIGITS>)* | "." <DIGITS> ) >
-| < DOUBLE: // Required exponent.
- (
- (["0"-"9"])+ "." (["0"-"9"])* <EXPONENT>
- | "." (["0"-"9"])+ (<EXPONENT>)
- | (["0"-"9"])+ <EXPONENT>
- )
- >
-
-| < POSITIVE_INTEGER: <PLUS> <INTEGER> >
-| < POSITIVE_DECIMAL: <PLUS> <DECIMAL> >
-| < POSITIVE_DOUBLE: <PLUS> <DOUBLE> >
-
-| < NEGATIVE_INTEGER: <MINUS> <INTEGER> >
-| < NEGATIVE_DECIMAL: <MINUS> <DECIMAL> >
-| < NEGATIVE_DOUBLE: <MINUS> <DOUBLE> >
-
-| < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
-
-
-| <TRUE: "true">
-| <FALSE: "false">
-| <NULL: "null">
-
-| < LBRACE: "{" >
-| < RBRACE: "}" >
-
-| < LBRACKET: "[" >
-| < RBRACKET: "]" >
-
-| < LPAREN: "(" >
-| < RPAREN: ")" >
-
-| <COMMA: "," >
-| <COLON: ":" >
-
-| <PLUS: "+" >
-| <MINUS: "-" >
-}
-
-// ---- Parser entry points
-
-void unit() : {}
-{
- { startParse() ; }
- object()
- { finishParse() ; }
- <EOF>
-}
-
-
-void any() : {}
-{
- { startParse() ; }
- (Value())?
- { finishParse() ; }
- <EOF>
-}
-
-
-// ---- Structures
-
-void Value() : {}
-{
- SimpleValue()
-| object()
-| Array()
-}
-
-void object() : { }
-{
- <LBRACE>
- { startObject() ; }
- (Members())?
- { finishObject(); }
- <RBRACE>
-}
-
-void Members() : {}
-{
- Pair()
- (<COMMA> Pair())*
-}
-
-void Pair() : {}
-{
- { startPair() ; }
- String()
- { keyPair() ; }
- <COLON>
- Value()
- { finishPair() ; }
-}
-
-void Array() : {}
-{
- <LBRACKET>
- { startArray() ; }
- (Elements())?
- { finishArray() ; }
- <RBRACKET>
-}
-
-void Elements() : { }
-{
- ArrayValue()
- (<COMMA> ArrayValue())*
-}
-
-void ArrayValue() : { }
-{
- Value() { element() ; }
-}
-
-// ----
-
-void SimpleValue() : {}
-{
- String()
-| Number()
-| True()
-| False()
-| Null()
-}
-
-void Number() : { Token t ; }
-{
- t = <INTEGER> { valueInteger(t.image) ; }
-| t = <DECIMAL> { valueDecimal(t.image) ; }
-| t = <DOUBLE> { valueDouble(t.image) ; }
-| t = <POSITIVE_INTEGER> { valueInteger(t.image) ; }
-| t = <POSITIVE_DECIMAL> { valueDecimal(t.image) ; }
-| t = <POSITIVE_DOUBLE> { valueDouble(t.image) ; }
-| t = <NEGATIVE_INTEGER> { valueInteger(t.image) ; }
-| t = <NEGATIVE_DECIMAL> { valueDecimal(t.image) ; }
-| t = <NEGATIVE_DOUBLE> { valueDouble(t.image) ; }
-}
-
-// Token to Java Object : These rules exist to inject the
-// necessary Java objects and code for the tokens.
-void String() : { Token t ; }
-{
- t = <STRING_LITERAL2> { valueString(t.image); }
- // <STRING>
-}
-
-void True() : { Token t ; }
-{
- <TRUE> { valueBoolean(true) ; }
-}
-
-void False() : { Token t ; }
-{
- <FALSE> { valueBoolean(false) ; }
-}
-
-void Null() : { Token t ; }
-{
- <NULL> { valueNull() ; }
-}
-
-
-/*
- * (c) Copyright 2008 Hewlett-Packard Development Company, LP
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
-# Local Variables:
-# tab-width: 4
-# indent-tabs-mode: nil
-# comment-default-style: "//"
-# End:
-*/
+#if 0
+// (Run through cpp -P -C first)
+#endif
+
+#define PACKAGE org.openjena.atlas.json.io.parserjavacc.javacc
+#define CLASS JSON_Parser
+#define PARSERBASE JSON_ParserBase
+
+options
+{
+ JAVA_UNICODE_ESCAPE = true ;
+ UNICODE_INPUT = false ;
+
+ STATIC = false ;
+// DEBUG_PARSER = true ;
+// DEBUG_TOKEN_MANAGER = true ;
+}
+
+
+PARSER_BEGIN(CLASS)
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package PACKAGE ;
+
+public class CLASS extends PARSERBASE
+{
+}
+PARSER_END(CLASS)
+
+
+SKIP : { <" " | "\t" | "\n" | "\r" | "\f"> }
+TOKEN: { <WS: " " | "\t" | "\n" | "\r" | "\f"> }
+
+// Do \ u inside JavaCC??
+
+//TOKEN [IGNORE_CASE] :
+TOKEN :
+{
+ <ECHAR: "\\" ( "t"|"b"|"n"|"r"|"f"|"\\"|"\""|"'") >
+| < #QUOTE_3D: "\"\"\"">
+| < #QUOTE_3S: "'''">
+| < STRING_LITERAL1:
+ // Single quoted string
+ "'" ( (~["'","\\","\n","\r"]) | <ECHAR> )* "'" >
+| < STRING_LITERAL2:
+ // Double quoted string
+ "\"" ( (~["\"","\\","\n","\r"]) | <ECHAR> )* "\"" >
+| < STRING_LITERAL_LONG1:
+ <QUOTE_3S>
+ ( ("'" | "''")? (~["'","\\"] | <ECHAR> ))*
+ <QUOTE_3S> >
+
+| < STRING_LITERAL_LONG2:
+ <QUOTE_3D>
+ ( ("\"" | "\"\"")? (~["\"","\\"] | <ECHAR> ))*
+ <QUOTE_3D> >
+
+
+
+
+| < #DIGITS: (["0"-"9"])+>
+| < INTEGER: <DIGITS> >
+| < DECIMAL: ( <DIGITS> "." (<DIGITS>)* | "." <DIGITS> ) >
+| < DOUBLE: // Required exponent.
+ (
+ (["0"-"9"])+ "." (["0"-"9"])* <EXPONENT>
+ | "." (["0"-"9"])+ (<EXPONENT>)
+ | (["0"-"9"])+ <EXPONENT>
+ )
+ >
+
+| < POSITIVE_INTEGER: <PLUS> <INTEGER> >
+| < POSITIVE_DECIMAL: <PLUS> <DECIMAL> >
+| < POSITIVE_DOUBLE: <PLUS> <DOUBLE> >
+
+| < NEGATIVE_INTEGER: <MINUS> <INTEGER> >
+| < NEGATIVE_DECIMAL: <MINUS> <DECIMAL> >
+| < NEGATIVE_DOUBLE: <MINUS> <DOUBLE> >
+
+| < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+
+
+| <TRUE: "true">
+| <FALSE: "false">
+| <NULL: "null">
+
+| < LBRACE: "{" >
+| < RBRACE: "}" >
+
+| < LBRACKET: "[" >
+| < RBRACKET: "]" >
+
+| < LPAREN: "(" >
+| < RPAREN: ")" >
+
+| <COMMA: "," >
+| <COLON: ":" >
+
+| <PLUS: "+" >
+| <MINUS: "-" >
+}
+
+// ---- Parser entry points
+
+void unit() : {}
+{
+ { startParse() ; }
+ object()
+ { finishParse() ; }
+ <EOF>
+}
+
+
+void any() : {}
+{
+ { startParse() ; }
+ (Value())?
+ { finishParse() ; }
+ <EOF>
+}
+
+
+// ---- Structures
+
+void Value() : {}
+{
+ SimpleValue()
+| object()
+| Array()
+}
+
+void object() : { }
+{
+ <LBRACE>
+ { startObject() ; }
+ (Members())?
+ { finishObject(); }
+ <RBRACE>
+}
+
+void Members() : {}
+{
+ Pair()
+ (<COMMA> Pair())*
+}
+
+void Pair() : {}
+{
+ { startPair() ; }
+ String()
+ { keyPair() ; }
+ <COLON>
+ Value()
+ { finishPair() ; }
+}
+
+void Array() : {}
+{
+ <LBRACKET>
+ { startArray() ; }
+ (Elements())?
+ { finishArray() ; }
+ <RBRACKET>
+}
+
+void Elements() : { }
+{
+ ArrayValue()
+ (<COMMA> ArrayValue())*
+}
+
+void ArrayValue() : { }
+{
+ Value() { element() ; }
+}
+
+// ----
+
+void SimpleValue() : {}
+{
+ String()
+| Number()
+| True()
+| False()
+| Null()
+}
+
+void Number() : { Token t ; }
+{
+ t = <INTEGER> { valueInteger(t.image) ; }
+| t = <DECIMAL> { valueDecimal(t.image) ; }
+| t = <DOUBLE> { valueDouble(t.image) ; }
+| t = <POSITIVE_INTEGER> { valueInteger(t.image) ; }
+| t = <POSITIVE_DECIMAL> { valueDecimal(t.image) ; }
+| t = <POSITIVE_DOUBLE> { valueDouble(t.image) ; }
+| t = <NEGATIVE_INTEGER> { valueInteger(t.image) ; }
+| t = <NEGATIVE_DECIMAL> { valueDecimal(t.image) ; }
+| t = <NEGATIVE_DOUBLE> { valueDouble(t.image) ; }
+}
+
+// Token to Java Object : These rules exist to inject the
+// necessary Java objects and code for the tokens.
+void String() : { Token t ; }
+{
+ t = <STRING_LITERAL2> { valueString(t.image); }
+ // <STRING>
+}
+
+void True() : { Token t ; }
+{
+ <TRUE> { valueBoolean(true) ; }
+}
+
+void False() : { Token t ; }
+{
+ <FALSE> { valueBoolean(false) ; }
+}
+
+void Null() : { Token t ; }
+{
+ <NULL> { valueNull() ; }
+}
+
+
+/*
+ * (c) Copyright 2008 Hewlett-Packard Development Company, LP
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+# Local Variables:
+# tab-width: 4
+# indent-tabs-mode: nil
+# comment-default-style: "//"
+# End:
+*/
Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj Mon Sep 5 12:55:14 2011
@@ -96,7 +96,11 @@ void QueryUnit(): { }
void Query() : { }
{
Prologue()
- ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() )
+ ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery()
+// #ifdef ARQ
+// | JsonTemplateQuery()
+// #endif
+ )
BindingsClause()
}
@@ -197,6 +201,10 @@ void SelectClause() : { Var v ; Expr ex
{ allowAggregatesInExpressions = false ; }
}
+#ifdef 0
+#include "json-extra.jj"
+#endif
+
void ConstructQuery() : { Template t ;
TripleCollectorBGP acc = new TripleCollectorBGP() ; }
{
Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/sparql_11.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/sparql_11.jj?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/sparql_11.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/sparql_11.jj Mon Sep 5 12:55:14 2011
@@ -56,7 +56,11 @@ void QueryUnit(): { }
void Query() : { }
{
Prologue()
- ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() )
+ ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery()
+// #ifdef ARQ
+// | JsonTemplateQuery()
+// #endif
+ )
BindingsClause()
}
void UpdateUnit() : {}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java Mon Sep 5 12:55:14 2011
@@ -5132,26 +5132,6 @@ public class ARQParser extends ARQParser
finally { jj_save(3, xla); }
}
- private boolean jj_3R_68() {
- if (jj_3R_78()) return true;
- return false;
- }
-
- private boolean jj_3R_67() {
- if (jj_3R_77()) return true;
- return false;
- }
-
- private boolean jj_3R_62() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_67()) {
- jj_scanpos = xsp;
- if (jj_3R_68()) return true;
- }
- return false;
- }
-
private boolean jj_3_4() {
if (jj_scan_token(SEMICOLON)) return true;
if (jj_scan_token(SEPARATOR)) return true;
@@ -5592,6 +5572,26 @@ public class ARQParser extends ARQParser
return false;
}
+ private boolean jj_3R_68() {
+ if (jj_3R_78()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_67() {
+ if (jj_3R_77()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_62() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_67()) {
+ jj_scanpos = xsp;
+ if (jj_3R_68()) return true;
+ }
+ return false;
+ }
+
/** Generated Token Manager. */
public ARQParserTokenManager token_source;
JavaCharStream jj_input_stream;
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java?rev=1165266&r1=1165265&r2=1165266&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java Mon Sep 5 12:55:14 2011
@@ -5,12 +5,57 @@
*/
package com.hp.hpl.jena.sparql.lang.arq;
+import org.openjena.atlas.json.io.JSONHandler ;
+import org.openjena.atlas.json.io.JSONHandlerBase ;
+import org.openjena.atlas.lib.NotImplemented ;
+
import com.hp.hpl.jena.sparql.lang.ParserQueryBase ;
class ARQParserBase
extends ParserQueryBase
implements ARQParserConstants
{
+ // JSON
+ JSONHandler handler = new JSONHandlerBase() ;
+
+ public void setHandler(JSONHandler handler)
+ {
+ if ( handler == null )
+ this.handler = new JSONHandlerBase() ;
+ else
+ this.handler = handler ;
+ }
+
+ // All the signals from the parsing process.
+ protected void jsonStartParse() { handler.startParse() ; }
+ protected void jsonFinishParse() { handler.finishParse() ; }
+
+ protected void jsonStartObject() { handler.startObject() ; }
+ protected void jsonFinishObject() { handler.finishObject() ; }
+
+ protected void jsonStartPair() { handler.startPair() ; }
+ protected void jsonKeyPair() { handler.keyPair() ; }
+ protected void jsonFinishPair() { handler.finishPair() ; }
+
+ protected void jsonStartArray() { handler.startArray() ; }
+ protected void jsonElement() { handler.element() ; }
+ protected void jsonFinishArray() { handler.finishArray() ; }
+
+ protected void jsonValueString(String image)
+ {
+ // Strip quotes
+ image = image.substring(1,image.length()-1) ;
+ handler.valueString(image) ;
+ }
+
+ protected void jsonValueKeyString(String image) { handler.valueString(image) ; }
+ protected void jsonValueInteger(String image) { handler.valueInteger(image) ; }
+ protected void jsonValueDecimal(String image) { handler.valueDecimal(image) ; }
+ protected void jsonValueDouble(String image) { handler.valueDouble(image) ; }
+ protected void jsonValueBoolean(boolean b) { handler.valueBoolean(b) ; }
+ protected void jsonValueNull() { handler.valueNull() ; }
+
+ protected void jsonValueVar(String image) { throw new NotImplemented("yet") ; }
}
/*