Added sort function. Added '_' variable to keep last result.
[tx] / xpath_prompt.py
index 9dde36b..23d04ed 100755 (executable)
@@ -64,7 +64,7 @@ def extSerialize( context ) :
 
        return Sequence( context.item.serialize() )
 
-def fnParse( context , text ) :
+def extParse( context , text ) :
 
        return Sequence( htmltree.parse( text[ 0 ] ) )
 
@@ -81,6 +81,10 @@ def fnDoc( context , uri , _cache = {} ) :
                _cache[ uri ] = Sequence( doc )
        return _cache[ uri ]
 
+def extSort( context , arg ) :
+
+       return Sequence( sorted( arg ) )
+
 def evaluate( expr , dot , env , functions ) :
 
        #
@@ -160,9 +164,10 @@ def main() :
                }
 
        functions = {
-               'doc' : fnDoc ,
-               'parse' : fnParse ,
-               'serialize' : extSerialize
+               'doc'       : fnDoc ,
+               'parse'     : extParse ,
+               'serialize' : extSerialize ,
+               'sort'      : extSort
                }
 
        print 'XPath TX 0.1 - (c)2005  Frederic Jolliton <frederic@jolliton.com>\n'
@@ -244,6 +249,7 @@ def main() :
                                except KeyboardInterrupt :
                                        print '[Interrupted]'
                                else :
+                                       env[ '_' ] = result
                                        if varName is not None :
                                                env[ varName ] = result
                                        else :