[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ extend path of a method call

Charith Paranaliyanage paranaliyanage at gmail.com
Tue Aug 19 05:34:47 EDT 2008


Log message for revision 89999:
  extend path of a method call 

Changed:
  U   Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py
  U   Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt

-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-19 08:47:25 UTC (rev 89998)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-19 09:34:46 UTC (rev 89999)
@@ -71,6 +71,7 @@
     >>> QueryParser("set [ c in ICourse; a as c.name; a=='C1' | c]")(None)
     Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Alias(Identifier(a), Property(Identifier(c), Identifier(name))); Eq(Identifier(a), Constant('C1')), Identifier(c))
 
-    >>> qo = QueryParser("set [ s in IStudents; a as s.major; a=='test' | s ]")(None)
-    Query(<type 'set'>, In(Identifier(s), Identifier(IStudents)); Alias(Identifier(a), Property(Identifier(s), Identifier(major))); Eq(Identifier(a), Constant('test')), Identifier(s))
-     
\ No newline at end of file
+    >>> QueryParser("set [ s in IStudents; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]")(None)
+    Query(<type 'set'>, In(Identifier(s), Identifier(IStudents)); 
+    Alias(Identifier(a), Property(Identifier(s), Property(Identifier(major), Property(Identifier(address), Identifier(street))))); 
+    Or(Eq(Identifier(a), Constant('Hillhead Street')), Eq(Identifier(a), Constant('Gibson Street'))), Identifier(s))

Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py	2008-08-19 08:47:25 UTC (rev 89998)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py	2008-08-19 09:34:46 UTC (rev 89999)
@@ -571,6 +571,12 @@
         if DEBUG: print 'reducing "IDENTIFIER" to "path"', t[0]
 
     def p_path_method(self, t):
+        r'''method : IDENTIFIER DOT method
+        '''
+        t[0] = Property(self.metadata, self.symbols, Identifier(self.metadata, self.symbols, t[1]), t[3])
+        if DEBUG: print 'reducing "IDENTIFIER DOT method" to "path"', t[0]
+
+    def p_path_method2(self, t):
         r'''path : IDENTIFIER DOT method
         '''
         t[0] = Property(self.metadata, self.symbols, Identifier(self.metadata, self.symbols, t[1]), t[3])

Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-19 08:47:25 UTC (rev 89998)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-19 09:34:46 UTC (rev 89999)
@@ -111,7 +111,7 @@
     >>> print str(alg)
     Head(Iter(<type 'set'>, Lambda c: Iter(<type 'set'>, Lambda a: Single(<type 'set'>, a), Single(<type 'set'>, c.code)), Make(<type 'set'>, <type 'set'>, ICourse)))
 
-    >>> qo = QueryParser('set [ s in IStudents; a as s.major.address.street; a=="Hillhead Street" or a=="Gibson Street" | s ]')(TestMetadata())
+    >>> qo = QueryParser("set [ s in IStudents; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]")(TestMetadata())
     >>> opt = QueryOptimizer(qo)()
     >>> alg = Rewriter(opt)()
     >>> print str(alg)



More information about the Checkins mailing list