[Mulgara-svn] r677 - in trunk: jxdata/iTQL jxdata/iTQL/parser src/jar/itql/sablecc
ronald at mulgara.org
ronald at mulgara.org
Wed Mar 12 07:17:58 UTC 2008
Author: ronald
Date: 2008-03-12 00:17:57 -0700 (Wed, 12 Mar 2008)
New Revision: 677
Added:
trunk/jxdata/iTQL/parser/
trunk/jxdata/iTQL/parser/createResult.txt
trunk/jxdata/iTQL/parser/dropResult.txt
trunk/jxdata/iTQL/parser/insertResult1.txt
trunk/jxdata/iTQL/parser/insertResult2.txt
trunk/jxdata/iTQL/parser/insertResult3.txt
trunk/jxdata/iTQL/parser/test.jxu
Modified:
trunk/src/jar/itql/sablecc/itql.grammar
Log:
Fix #72: an emtpy <> in an iTQL statements would get ignored and treated
as whitespace, leading to somewhat unexpected results. This fix adjusts
the lexer to require at least one urlchar between the < and >. A better,
but more complicated, fix would probably be to handle this in the parser,
but this does the trick and gives a usable error message.
Added: trunk/jxdata/iTQL/parser/createResult.txt
===================================================================
--- trunk/jxdata/iTQL/parser/createResult.txt (rev 0)
+++ trunk/jxdata/iTQL/parser/createResult.txt 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<answer xmlns="http://mulgara.org/tql#"><query><message>Successfully created graph @server@#parsertest</message></query></answer>
Property changes on: trunk/jxdata/iTQL/parser/createResult.txt
___________________________________________________________________
Name: svn:keywords
+ Id HeadURL Revision
Name: svn:eol-style
+ native
Added: trunk/jxdata/iTQL/parser/dropResult.txt
===================================================================
--- trunk/jxdata/iTQL/parser/dropResult.txt (rev 0)
+++ trunk/jxdata/iTQL/parser/dropResult.txt 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<answer xmlns="http://mulgara.org/tql#"><query><message>Successfully dropped graph @server@#parsertest</message></query></answer>
Property changes on: trunk/jxdata/iTQL/parser/dropResult.txt
___________________________________________________________________
Name: svn:keywords
+ Id HeadURL Revision
Name: svn:eol-style
+ native
Added: trunk/jxdata/iTQL/parser/insertResult1.txt
===================================================================
--- trunk/jxdata/iTQL/parser/insertResult1.txt (rev 0)
+++ trunk/jxdata/iTQL/parser/insertResult1.txt 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,2 @@
+ItqlInterpreter error - [1,9] Unknown token: >
+Caused by: (LexerException) [1,9] Unknown token: >
Property changes on: trunk/jxdata/iTQL/parser/insertResult1.txt
___________________________________________________________________
Name: svn:keywords
+ Id HeadURL Revision
Name: svn:eol-style
+ native
Added: trunk/jxdata/iTQL/parser/insertResult2.txt
===================================================================
--- trunk/jxdata/iTQL/parser/insertResult2.txt (rev 0)
+++ trunk/jxdata/iTQL/parser/insertResult2.txt 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,2 @@
+ItqlInterpreter error - [1,19] Unknown token: >
+Caused by: (LexerException) [1,19] Unknown token: >
Property changes on: trunk/jxdata/iTQL/parser/insertResult2.txt
___________________________________________________________________
Name: svn:keywords
+ Id HeadURL Revision
Name: svn:eol-style
+ native
Added: trunk/jxdata/iTQL/parser/insertResult3.txt
===================================================================
--- trunk/jxdata/iTQL/parser/insertResult3.txt (rev 0)
+++ trunk/jxdata/iTQL/parser/insertResult3.txt 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,2 @@
+ItqlInterpreter error - [1,28] Unknown token: >
+Caused by: (LexerException) [1,28] Unknown token: >
Property changes on: trunk/jxdata/iTQL/parser/insertResult3.txt
___________________________________________________________________
Name: svn:keywords
+ Id HeadURL Revision
Name: svn:eol-style
+ native
Added: trunk/jxdata/iTQL/parser/test.jxu
===================================================================
--- trunk/jxdata/iTQL/parser/test.jxu (rev 0)
+++ trunk/jxdata/iTQL/parser/test.jxu 2008-03-12 07:17:57 UTC (rev 677)
@@ -0,0 +1,53 @@
+<jxu>
+ <set name="debug" value="false" />
+
+ <set name="query" value="create <@server@#parsertest> ;"/>
+ <eval stepClass="org.mulgara.store.jxunit.QueryJX" />
+ <ifEqual converse="true" file="createResult.txt" name="queryResult">
+ <save name="queryResult" file="badCreateResult.xml"/>
+ <fail>Output failed. Check badCreateResult.xml for output.</fail>
+ </ifEqual>
+
+ <set name="query" value="
+ insert <> <foo:bar> <foo:a1>
+ <> <foo:baz> <foo:a2>
+ <> <foo:boz> <foo:a3>
+ into <@server@#parsertest> ;"/>
+
+ <eval stepClass="org.mulgara.store.jxunit.QueryJX" />
+ <ifEqual converse="true" file="insertResult1.txt" name="queryResult">
+ <save name="queryResult" file="badInsert1Result.xml"/>
+ <fail>Output failed. Check badInsert1Result.xml for output.</fail>
+ </ifEqual>
+
+ <set name="query" value="
+ insert <foo:bar> <> <foo:a1>
+ <foo:baz> <> <foo:a2>
+ <foo:boz> <> <foo:a3>
+ into <@server@#parsertest> ;"/>
+
+ <eval stepClass="org.mulgara.store.jxunit.QueryJX" />
+ <ifEqual converse="true" file="insertResult2.txt" name="queryResult">
+ <save name="queryResult" file="badInsert2Result.xml"/>
+ <fail>Output failed. Check badInsert2Result.xml for output.</fail>
+ </ifEqual>
+
+ <set name="query" value="
+ insert <foo:bar> <foo:a1> <>
+ <foo:baz> <foo:a2> <>
+ <foo:boz> <foo:a3> <>
+ into <@server@#parsertest> ;"/>
+
+ <eval stepClass="org.mulgara.store.jxunit.QueryJX" />
+ <ifEqual converse="true" file="insertResult3.txt" name="queryResult">
+ <save name="queryResult" file="badInsert3Result.xml"/>
+ <fail>Output failed. Check badInsert3Result.xml for output.</fail>
+ </ifEqual>
+
+ <set name="query" value="drop <@server@#parsertest> ;"/>
+ <eval stepClass="org.mulgara.store.jxunit.QueryJX" />
+ <ifEqual converse="true" file="dropResult.txt" name="queryResult">
+ <save name="queryResult" file="badDropResult.xml"/>
+ <fail>Output failed. Check badDropResult.xml for output.</fail>
+ </ifEqual>
+</jxu>
Modified: trunk/src/jar/itql/sablecc/itql.grammar
===================================================================
--- trunk/src/jar/itql/sablecc/itql.grammar 2008-03-10 12:17:15 UTC (rev 676)
+++ trunk/src/jar/itql/sablecc/itql.grammar 2008-03-12 07:17:57 UTC (rev 677)
@@ -23,7 +23,8 @@
com, /* comment */
esc, /* escaping character in quoted literal with '\' */
lit, /* quoted literal */
- res, /* tagged resource */
+ begres, /* start of tagged resource */
+ endres, /* end of tagged resource */
var, /* escaping variable name with '$' */
lng; /* language code */
@@ -89,8 +90,8 @@
{def} terminator = ';';
{def} lpar = '(';
{def} rpar = ')';
- {def->res} url = '<';
- {res->def} endurl = '>';
+ {def->begres} url = '<';
+ {endres->def} endurl = '>';
{def} datatypeprefix = '^^';
{def->lng} languageprefix = '@';
{def->var} variableprefix = ('$' | '?');
@@ -98,7 +99,7 @@
{def} float = digit+ ('.' digit*) | ('.' digit+);
{lng->def} langid = letter letter | letter letter '-' letter letter;
- {res} resource = urlchar*;
+ {begres->endres} resource = urlchar*;
{def->lit, lit->def} quote = 39; /* ' */
{lit->esc} escape = '\';
{esc->lit} escapedtext = character;
More information about the Mulgara-svn
mailing list