Author: jbeard
Date: Sun Nov  7 09:34:08 2010
New Revision: 1032237

URL: http://svn.apache.org/viewvc?rev=1032237&view=rev
Log:
Preliminary check-in of python front-end. Untested, although most seems 
syntactically correct.

Added:
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/__init__.py   
(with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py  
 (with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/__init__.py   
(with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/__init__.py
   (with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeatedStatechartGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py
   (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/__init__.py
   (with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/__init__.py 
  (with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml   
(with props)
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py
   (with props)
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt   (with 
props)
Modified:
    commons/sandbox/gsoc/2010/scxml-js/trunk/.gitignore

Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/.gitignore
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/.gitignore?rev=1032237&r1=1032236&r2=1032237&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/.gitignore (original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/.gitignore Sun Nov  7 09:34:08 2010
@@ -20,3 +20,4 @@ demo/drawing-tool/lib/*
 test/rhino-jsc/*/*.class
 test/rhino-jsc/*/*-built.js
 doc/*.pdf
+*.pyc

Added: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/__init__.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/__init__.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py 
(added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py 
Sun Nov  7 09:34:08 2010
@@ -0,0 +1,43 @@
+import sys
+import pkg_resources
+from lxml import etree
+
+def compile(pathsToSCXML=[],backend="state",options={}):
+       #open it
+       sourceDocuments = map(lambda p : etree.parse(p), pathsToSCXML)
+
+       #do some transforms
+       if backend == "state":
+               from scxml.cgf.backends.js.StatePatternStatechartGenerator 
import config
+       elif backend == "table":
+               from scxml.cgf.backends.js.StateTableStatechartGenerator import 
config
+       elif backend == "switch":
+               from scxml.cgf.backends.js.SwitchyardGenerator import config
+       else:
+               print "Backend not recognized!"
+
+       results = []
+       
+       for doc in sourceDocuments:
+               ir = transformDocument(doc,config["transformations"])
+               transformedJs = 
transformDocument(sourceDocument,[config["code"]],options,"text")
+               results.push(transformedJs) 
+
+       return results
+
+def 
transformDocument(sourceDocument=None,transformList=[],params={},output="xml"):
+
+       templateStreams = map(lambda t : 
pkg_resources.resource_stream(__name__,t), transformList)
+       templateDocs = map(lambda t : etree.parse(t), templateStreams)
+       compiledTemplates = map(lambda t : etree.XSLT(t), transformList)
+
+       outputDocument = reduce(lambda docToTransform,transform: 
transform(docToTransform), compiledTemplates, sourceDocument)
+
+       if output == "xml":
+               return outputDocument   
+       else:
+               #assume "text"
+               return outputDocument.root.getText() 
+
+if __name__ == "__main__":
+       pass #TODO: parse command-line args

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/__init__.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/__init__.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/__init__.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/__init__.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeatedStatechartGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeatedStatechartGenerator.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeatedStatechartGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,16 @@
+from scxml.cgf.backends.js.AbstractStatechartGenerator import config as 
AbstractStatechartGeneratorConfig 
+
+
+config =  {
+       "transformations": AbstractStatechartGeneratorConfig["transformations"] 
+
+                               ["xslt/ir-compiler/flattenTransitions.xsl",
+                                       
"xslt/ir-compiler/appendTransitionInformation.xsl",
+                                       "xslt/ir-compiler/nameTransitions.xsl",
+                                       
"xslt/ir-compiler/copyEnumeratedEventTransitions.xsl",
+                                       "xslt/ir-compiler/enumerateEvents.xsl",
+                                       
"xslt/ir-compiler/addEventRegularExpressions.xsl",
+                                       "xslt/ir-compiler/expandStarEvent.xsl",
+                                       
"xslt/ir-compiler/numberStatesAndTransitions.xsl", 
+                                       
"xslt/layout/addTransitionTargetIds.xsl" ]
+}
+

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,12 @@
+config = {
+       "transformations" : ["xslt/ir-compiler/normalizeInitialStates.xsl",
+                               "xslt/ir-compiler/generateUniqueStateIds.xsl",
+                               
"xslt/ir-compiler/generateUniqueInitialStateIds.xsl",
+                               "xslt/ir-compiler/splitTransitionTargets.xsl",
+                               
"xslt/ir-compiler/changeTransitionsPointingToCompoundStatesToPointToInitialStates.xsl",
+                               "xslt/ir-compiler/computeLCA.xsl",
+                               "xslt/ir-compiler/transformIf.xsl",
+                               "xslt/ir-compiler/appendStateInformation.xsl",
+                               
"xslt/ir-compiler/appendBasicStateInformation.xsl"],
+       "code" : None
+}

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,12 @@
+from scxml.cgf.backends.js.AbstractStatechartGenerator import config as 
AbstractStatechartGeneratorConfig 
+
+config =  {
+       "transformations": AbstractStatechartGeneratorConfig["transformations"] 
+
+                                [ 
"xslt/ir-compiler/appendTransitionInformation.xsl",
+                                       
"xslt/ir-compiler/copyEnumeratedEventTransitions.xsl",
+                                       "xslt/ir-compiler/enumerateEvents.xsl",
+                                       
"xslt/ir-compiler/addEventRegularExpressions.xsl",
+                                       "xslt/ir-compiler/expandStarEvent.xsl",
+                                       
"xslt/layout/addTransitionTargetIds.xsl" ],
+       "code" : "xslt/backends/js/StatePatternStatechartGenerator.xsl"  
#preprocessed stylesheet instead? 
+}

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StatePatternStatechartGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,7 @@
+from scxml.cgf.backends.js.AbstractEnumeratedStatechartGenerator import config 
as AbstractEnumeratedStatechartGeneratorConfig 
+
+config =  {
+       "transformations": 
AbstractEnumeratedStatechartGeneratorConfig["transformations"], 
+       "code" : "xslt/backends/js/StateTableStatechartGenerator.xsl"    
#preprocessed stylesheet instead? 
+}
+

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/StateTableStatechartGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,6 @@
+from scxml.cgf.backends.js.AbstractEnumeratedStatechartGenerator import config 
as AbstractEnumeratedStatechartGeneratorConfig 
+
+config =  {
+       "transformations": 
AbstractEnumeratedStatechartGeneratorConfig["transformations"], 
+       "code" : "xslt/backends/js/SwitchyardStatechartGenerator.xsl"    
#preprocessed stylesheet instead? 
+}

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/SwitchyardGenerator.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/__init__.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/__init__.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/__init__.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/__init__.py?rev=1032237&view=auto
==============================================================================
    (empty)

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml 
(added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml 
Sun Nov  7 09:34:08 2010
@@ -0,0 +1,3 @@
+<hello>
+       <world/>
+</hello>

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py?rev=1032237&view=auto
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py
 (added)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py
 Sun Nov  7 09:34:08 2010
@@ -0,0 +1,15 @@
+import pkg_resources
+from lxml import etree
+
+#get some basic data
+my_data = pkg_resources.resource_string("scxml.cgf.tests.testpkgresource", 
"test.xml")
+
+print my_data
+
+#see if we can parse the stream into an xml tree
+my_stream = pkg_resources.resource_stream("scxml.cgf.tests.testpkgresource", 
"test.xml")
+tree = etree.parse(my_stream)
+print tree 
+print etree.tostring(tree,pretty_print=True)
+
+#result: works great!

Propchange: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/tests/testpkgresource.py
------------------------------------------------------------------------------
    svn:eol-style = native

Added: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt?rev=1032237&view=auto
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt (added)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt Sun Nov  
7 09:34:08 2010
@@ -0,0 +1 @@
+link ../../../xslt/
\ No newline at end of file

Propchange: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/xslt
------------------------------------------------------------------------------
    svn:special = *


Reply via email to