瀏覽代碼

Removed again: Gogs can't show it

Yentl Van Tendeloo 9 年之前
父節點
當前提交
824c6b0894
共有 61 個文件被更改,包括 1 次插入18711 次删除
  1. 1 0
      .gitignore
  2. 二進制
      doc/_build/doctrees/compiler.doctree
  3. 二進制
      doc/_build/doctrees/environment.pickle
  4. 二進制
      doc/_build/doctrees/examples.doctree
  5. 二進制
      doc/_build/doctrees/index.doctree
  6. 二進制
      doc/_build/doctrees/installation.doctree
  7. 二進制
      doc/_build/doctrees/internal_documentation.doctree
  8. 二進制
      doc/_build/doctrees/language_features.doctree
  9. 二進制
      doc/_build/doctrees/runtime_platforms.doctree
  10. 二進制
      doc/_build/doctrees/semantic_options.doctree
  11. 二進制
      doc/_build/doctrees/sockets.doctree
  12. 二進制
      doc/_build/doctrees/statecharts_core_int.doctree
  13. 0 4
      doc/_build/html/.buildinfo
  14. 0 28
      doc/_build/html/_sources/compiler.txt
  15. 0 635
      doc/_build/html/_sources/examples.txt
  16. 0 34
      doc/_build/html/_sources/index.txt
  17. 0 25
      doc/_build/html/_sources/installation.txt
  18. 0 6
      doc/_build/html/_sources/internal_documentation.txt
  19. 0 436
      doc/_build/html/_sources/language_features.txt
  20. 0 75
      doc/_build/html/_sources/runtime_platforms.txt
  21. 0 31
      doc/_build/html/_sources/semantic_options.txt
  22. 0 101
      doc/_build/html/_sources/sockets.txt
  23. 0 5
      doc/_build/html/_sources/statecharts_core_int.txt
  24. 二進制
      doc/_build/html/_static/ajax-loader.gif
  25. 0 604
      doc/_build/html/_static/basic.css
  26. 0 261
      doc/_build/html/_static/classic.css
  27. 二進制
      doc/_build/html/_static/comment-bright.png
  28. 二進制
      doc/_build/html/_static/comment-close.png
  29. 二進制
      doc/_build/html/_static/comment.png
  30. 0 287
      doc/_build/html/_static/doctools.js
  31. 二進制
      doc/_build/html/_static/down-pressed.png
  32. 二進制
      doc/_build/html/_static/down.png
  33. 二進制
      doc/_build/html/_static/file.png
  34. 0 10308
      doc/_build/html/_static/jquery-1.11.1.js
  35. 0 4
      doc/_build/html/_static/jquery.js
  36. 二進制
      doc/_build/html/_static/minus.png
  37. 0 11
      doc/_build/html/_static/mystyle.css
  38. 二進制
      doc/_build/html/_static/plus.png
  39. 0 63
      doc/_build/html/_static/pygments.css
  40. 0 651
      doc/_build/html/_static/searchtools.js
  41. 0 159
      doc/_build/html/_static/sidebar.js
  42. 0 999
      doc/_build/html/_static/underscore-1.3.1.js
  43. 0 31
      doc/_build/html/_static/underscore.js
  44. 二進制
      doc/_build/html/_static/up-pressed.png
  45. 二進制
      doc/_build/html/_static/up.png
  46. 0 808
      doc/_build/html/_static/websupport.js
  47. 0 144
      doc/_build/html/compiler.html
  48. 0 766
      doc/_build/html/examples.html
  49. 0 109
      doc/_build/html/genindex.html
  50. 0 188
      doc/_build/html/index.html
  51. 0 150
      doc/_build/html/installation.html
  52. 0 123
      doc/_build/html/internal_documentation.html
  53. 0 693
      doc/_build/html/language_features.html
  54. 二進制
      doc/_build/html/objects.inv
  55. 0 114
      doc/_build/html/py-modindex.html
  56. 0 202
      doc/_build/html/runtime_platforms.html
  57. 0 108
      doc/_build/html/search.html
  58. 0 1
      doc/_build/html/searchindex.js
  59. 0 152
      doc/_build/html/semantic_options.html
  60. 0 284
      doc/_build/html/sockets.html
  61. 0 111
      doc/_build/html/statecharts_core_int.html

+ 1 - 0
.gitignore

@@ -10,3 +10,4 @@ csharp_tests/bin
 src/build
 **/*target*
 **/*.lprof
+doc/_build

二進制
doc/_build/doctrees/compiler.doctree


二進制
doc/_build/doctrees/environment.pickle


二進制
doc/_build/doctrees/examples.doctree


二進制
doc/_build/doctrees/index.doctree


二進制
doc/_build/doctrees/installation.doctree


二進制
doc/_build/doctrees/internal_documentation.doctree


二進制
doc/_build/doctrees/language_features.doctree


二進制
doc/_build/doctrees/runtime_platforms.doctree


二進制
doc/_build/doctrees/semantic_options.doctree


二進制
doc/_build/doctrees/sockets.doctree


二進制
doc/_build/doctrees/statecharts_core_int.doctree


+ 0 - 4
doc/_build/html/.buildinfo

@@ -1,4 +0,0 @@
-# Sphinx build info version 1
-# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 94209c36c1caa1b2fe8cc6e8c9bcba05
-tags: 645f666f9bcd5a90fca523b33c5a78b7

+ 0 - 28
doc/_build/html/_sources/compiler.txt

@@ -1,28 +0,0 @@
-Compiler
-========
-To compile a conforming SCCDXML file, the provided Python compiler can be used. The compiler can compile conforming SCCD models to two languages: Python and Javascript. Three platforms are supported, for more information see :ref:`runtime_platforms`.
-
-The compiler can be used from the command line as follows::
-
-    $python -m sccd.compiler.sccdc --help
-    usage: python -m sccd.compiler.sccdc [-h] [-o OUTPUT] [-v VERBOSE]
-                                         [-p PLATFORM] [-l LANGUAGE]
-                                         input
-
-    positional arguments:
-      input                 The path to the XML file to be compiled.
-
-    optional arguments:
-      -h, --help            show this help message and exit
-      -o OUTPUT, --output OUTPUT
-                            The path to the generated code. Defaults to the same
-                            name as the input file but with matching extension.
-      -v VERBOSE, --verbose VERBOSE
-                            2 = all output; 1 = only warnings and errors; 0 = only
-                            errors; -1 = no output. Defaults to 2.
-      -p PLATFORM, --platform PLATFORM
-                            Let the compiled code run on top of threads, gameloop
-                            or eventloop. The default is eventloop.
-      -l LANGUAGE, --language LANGUAGE
-                            Target language, either "javascript" or "python".
-                            Defaults to the latter.

+ 0 - 635
doc/_build/html/_sources/examples.txt

@@ -1,635 +0,0 @@
-Examples
-========
-
-Timer
------
-This example demonstrates the timed behavior of SCCD. It does not have dynamic structure.
-
-We model a clock which prints the current time every 0.05 seconds. Two clocks are printed: the current wall-clock time and the current simulated time. We expect both to (almost) be the same. The user can interrupt the clock by sending an "interrupt" event. The user can resume the clock by sending a "resume" event.
-
-Threads (Python)
-^^^^^^^^^^^^^^^^
-In this version, the model sends the current times to an output port, on which the user listens, to print out these times. *self.getSimulatedTime()* and *time()* return the current time in milliseconds, which we have to convert to seconds.
-
-The SCCD model::
-
-    <?xml version="1.0" ?>
-    <diagram author="Simon Van Mierlo" name="Timer (Threaded Version)">
-        <top>
-            from sccd.runtime.accurate_time import time
-        </top>
-        
-        <inport name="input" />        
-        <outport name="output" />
-
-        <class name="MainApp" default="true">
-            <scxml initial="running">
-                <state id="running">
-                    <transition target="." after="0.05">
-                        <raise event="time_update" port="output">
-                            <parameter expr="self.getSimulatedTime()" />
-                            <parameter expr="time()" />
-                        </raise>
-                    </transition>
-                    <transition target="../interrupted" event="interrupt" port="input">
-                        <raise event="time_update" port="output">
-                            <parameter expr="self.getSimulatedTime()" />
-                            <parameter expr="time()" />
-                        </raise>
-                    </transition>
-                </state>
-                <state id="interrupted">
-                    <transition target="." event="interrupt" port="input">
-                        <raise event="time_update" port="output">
-                            <parameter expr="self.getSimulatedTime()" />
-                            <parameter expr="time()" />
-                        </raise>
-                    </transition>
-                    <transition target="../running" event="continue" port="input">
-                        <raise event="time_update" port="output">
-                            <parameter expr="self.getSimulatedTime()" />
-                            <parameter expr="time()" />
-                        </raise>
-                    </transition>
-                </state>
-            </scxml>
-        </class>
-    </diagram>
-    
-To compile, save this in a file called ``timer.xml`` and run ``python -m sccd.compiler.sccdc -p threads -l python timer.xml``
-
-Then, the following file will run the model::
-
-    import timer
-    from sccd.runtime.statecharts_core import Event
-    import threading
-
-    if __name__ == '__main__':
-        controller = timer.Controller()
-        
-        def raw_inputter():
-            while 1:
-                controller.addInput(Event(raw_input(), "input", []))
-        input_thread = threading.Thread(target=raw_inputter)
-        input_thread.daemon = True
-        input_thread.start()
-        
-        output_listener = controller.addOutputListener(["output"])
-        def outputter():
-            while 1:
-                event = output_listener.fetch(-1)
-                print "SIMTIME: %.2fs" % (event.getParameters()[0] / 1000.0)
-                print "ACTTIME: %.2fs" % (event.getParameters()[1] / 1000.0)
-        output_thread = threading.Thread(target=outputter)
-        output_thread.daemon = True
-        output_thread.start()
-        
-        controller.start()
-        
-The time will be printed to the console. The user can send events by typing the string "interrupt" or "continue" in the console.
-
-Eventloop (Python)
-^^^^^^^^^^^^^^^^^^
-The SCCD model::
-
-    <?xml version="1.0" ?>
-    <diagram author="Simon Van Mierlo" name="Timer (Eventloop Version)">
-        <top>
-            from sccd.runtime.libs.ui import ui
-            from sccd.runtime.accurate_time import time
-        </top>
-        
-        <inport name="ui" />
-
-        <class name="MainApp" default="true">
-            <method name="MainApp">
-                <body>
-                    <![CDATA[
-                    self.canvas = ui.append_canvas(ui.window,100,100,{'background':'#eee'})
-                    self.clock_text = self.canvas.element.create_text(25,25,{'text':'0.0'})
-                    self.actual_clock_text = self.canvas.element.create_text(25,50,{'text':'0.0'})
-                    interrupt_button = ui.append_button(ui.window, 'INTERRUPT');
-                    continue_button = ui.append_button(ui.window, 'CONTINUE');
-                    ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, 'interrupt_clicked');
-                    ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, 'continue_clicked');
-                    ]]>
-                </body>        
-            </method>
-            <method name="update_timers">
-                <body>
-                    self.canvas.element.itemconfigure(self.clock_text, text=str('%.2f' % (self.getSimulatedTime() / 1000.0)))
-                    self.canvas.element.itemconfigure(self.actual_clock_text, text='%.2f' % (time() / 1000.0))
-                </body>
-            </method>
-            <scxml initial="running">
-                <state id="running">
-                    <transition target="." after="0.05">
-                        <script>
-                            self.update_timers()
-                        </script>
-                    </transition>
-                    <transition target="../interrupted" event="interrupt_clicked" port="ui">
-                        <script>
-                            self.update_timers()
-                        </script>
-                    </transition>
-                </state>
-                <state id="interrupted">
-                    <transition target="." event="interrupt_clicked" port="ui">
-                        <script>
-                            self.update_timers()
-                        </script>
-                    </transition>
-                    <transition target="../running" event="continue_clicked" port="ui">
-                        <script>
-                            self.update_timers()
-                        </script>
-                    </transition>
-                </state>
-            </scxml>
-        </class>
-    </diagram>
-    
-To compile, save this in a file called ``timer.xml`` and run ``python -m sccd.compiler.sccdc -p eventloop -l python timer.xml``
-
-Then, the following file will run the model::
-
-    import Tkinter as tk
-    import timer
-    from sccd.runtime.libs.ui import ui
-    from sccd.runtime.statecharts_core import Event
-    from sccd.runtime.tkinter_eventloop import *
-
-    if __name__ == '__main__':
-        ui.window = tk.Tk()
-
-        controller = timer.Controller(TkEventLoop(ui.window))
-        controller.start()
-        ui.window.mainloop()
-        
-Eventloop (Javascript)
-^^^^^^^^^^^^^^^^^^^^^^
-The SCCD model::
-
-    <?xml version="1.0" ?>
-    <diagram author="Simon Van Mierlo" name="Timer">
-        <inport name="ui" />
-
-        <class name="MainApp" default="true">
-            <method name="MainApp">
-                <body>
-                    <![CDATA[
-                    this.canvas = ui.append_canvas(ui.window,400,150,{'background':'#eee'})
-                    this.clock_text = this.canvas.add_text(25,25,'0.0')
-                    this.actual_clock_text = this.canvas.add_text(25,50,'0.0')
-                    var interrupt_button = ui.append_button(ui.window, 'INTERRUPT');
-                    var continue_button = ui.append_button(ui.window, 'CONTINUE');
-                    ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'interrupt_clicked');
-                    ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'continue_clicked');
-                    ]]>
-                </body>
-            </method>
-            <method name="update_timers">
-                <body>
-                    this.clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
-                    this.actual_clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
-                </body>
-            </method>
-            <scxml initial="running">
-                <state id="running">
-                    <transition target="." after="0.05">
-                        <script>
-                            this.update_timers();
-                        </script>
-                    </transition>
-                    <transition target="../interrupted" event="interrupt_clicked" port="ui">
-                        <script>
-                            this.update_timers();
-                        </script>
-                    </transition>
-                </state>
-                <state id="interrupted">
-                    <transition target="." event="interrupt_clicked" port="ui">
-                        <script>
-                            this.update_timers();
-                        </script>
-                    </transition>
-                    <transition target="../running" event="continue_clicked" port="ui">
-                        <script>
-                            this.update_timers();
-                        </script>
-                    </transition>
-                </state>
-            </scxml>
-        </class>
-    </diagram>
-    
-To compile, save this in a file called ``timer.xml`` and run ``python -m sccd.compiler.sccdc -p eventloop -l javascript timer.xml``
-
-Then, the following file will run the model::
-
-    <div>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/HackTimer.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/statecharts_core.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/utils.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/svg.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/ui.js"></script>
-        <script src="timer.js"></script>
-        <script>
-            controller = new Timer.Controller(new JsEventLoop());
-            controller.start();
-        </script> 
-    </div>
-    
-Traffic Lights
---------------
-The traffic lights example demonstrates most functionality of SCCD. There are three lights (green, yellow, and red). The traffic light autonomously switches between them, but also listens for a police interrupt, which will flash the yellow light. When a second interrupt comes in, the light returns to its last configuration (using a history state).
-
-Python
-^^^^^^
-The SCCD model::
-
-    <?xml version="1.0" ?>
-    <diagram author="Raphael Mannadiar" name="Traffic_Light_Python_Version">
-        <top>
-            from sccd.runtime.libs.ui import ui
-        </top>
-        
-        <inport name="ui" />
-
-        <class name="MainApp" default="true">
-            <relationships>
-                <association name="trafficlight" class="TrafficLight" />
-            </relationships>
-            <method name="MainApp">
-                <body>
-                    <![CDATA[
-                    self.canvas   = ui.append_canvas(ui.window,100,310,{'background':'#eee'});
-                    police_button = ui.append_button(ui.window, 'Police interrupt');
-                    quit_button   = ui.append_button(ui.window, 'Quit');
-                    ui.bind_event(police_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, 'police_interrupt_clicked');
-                    ui.bind_event(quit_button.element,      ui.EVENTS.MOUSE_CLICK, self.controller, 'quit_clicked');
-                    ]]>
-                </body>        
-            </method>
-            <scxml initial="initializing">
-                <state id="initializing">
-                    <transition target="../creating">
-                        <raise scope="cd" event="create_instance">
-                            <parameter expr='"trafficlight"' />
-                            <parameter expr='"TrafficLight"' />
-                            <parameter expr="self.canvas" />
-                        </raise>
-                    </transition>
-                </state>
-                <state id="creating">
-                    <transition event="instance_created" target="../initialized">
-                        <parameter name="association_name" type="string"/>
-                        <raise scope="cd" event="start_instance">
-                            <parameter expr="association_name" />
-                        </raise>
-                        <raise scope="narrow" event="set_association_name" target="association_name">
-                            <parameter expr="association_name" />
-                        </raise>
-                    </transition>
-                </state>
-                <state id="initialized">
-                </state>
-            </scxml>
-        </class>
-
-        <class name="TrafficLight">
-            <relationships>
-            </relationships>
-            <method name="TrafficLight">
-                <parameter name="canvas" />
-                <body>
-                    <![CDATA[
-                    size        = 100;
-                    offset      = size+5;
-                    self.RED    = 0;
-                    self.YELLOW = 1;
-                    self.GREEN  = 2;
-                    self.colors = ['#f00','#ff0','#0f0']
-                    self.lights = [
-                        canvas.add_rectangle(size/2, size/2, size, size, {'fill':'#000'}),
-                        canvas.add_rectangle(size/2, size/2+offset,     size, size, {'fill':'#000'}),
-                        canvas.add_rectangle(size/2, size/2+2*offset, size, size, {'fill':'#000'})];
-                    ]]>
-                </body>
-            </method>
-            <method name="clear">
-                <body>
-                    <![CDATA[
-                    self.lights[self.RED].set_color('#000');
-                    self.lights[self.YELLOW].set_color('#000');
-                    self.lights[self.GREEN].set_color('#000');
-                    ]]>
-                </body>
-            </method>
-            <method name="setGreen">
-                <body>
-                    <![CDATA[
-                    self.clear();
-                    self.lights[self.GREEN].set_color(self.colors[self.GREEN]);
-                    ]]>
-                </body>
-            </method>
-            <method name="setYellow">
-                <body>
-                    <![CDATA[
-                    self.clear();
-                    self.lights[self.YELLOW].set_color(self.colors[self.YELLOW]);
-                    ]]>
-                </body>
-            </method>
-            <method name="setRed">
-                <body>
-                    <![CDATA[
-                    self.clear();
-                    self.lights[self.RED].set_color(self.colors[self.RED]);
-                    ]]>
-                </body>
-            </method>
-            <scxml initial="on">
-                <state id="on" initial="normal">
-                    <state id="normal" initial="red">
-                        <state id="red">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    self.setRed();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='3' target='../green'/>
-                        </state>
-                        <state id="green">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    self.setGreen();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='2' target='../yellow'/>
-                        </state>
-                        <state id="yellow">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    self.setYellow();
-                                    ]]>
-                                </script>
-                            </onentry>
-                        <transition after='1' target='../red'/>
-                        </state>
-                        <transition event='police_interrupt_clicked' port='ui' target='../interrupted'/>
-                        <history id="history"/>
-                    </state>
-                    <state id="interrupted" initial="yellow">
-                        <state id="yellow">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    self.setYellow();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='.5' target='../black'/>
-                        </state>
-                        <state id="black">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    self.clear();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='.5' target='../yellow'/>
-                        </state>
-                        <transition event='police_interrupt_clicked' port='ui' target='../normal/history'/>
-                    </state>
-                    <transition event='quit_clicked' port='ui' target='../off'/>
-                </state>
-                <state id="off">
-                    <onentry>
-                        <script>
-                            <![CDATA[
-                            self.clear();
-                            ]]>
-                        </script>
-                    </onentry>
-                </state>
-            </scxml>
-        </class>
-    </diagram>
-    
-To compile, save this in a file called ``trafficlight.xml`` and run ``python -m sccd.compiler.sccdc -p eventloop -l python trafficlight.xml``
-
-Then, the following file will run the model::
-
-    import Tkinter as tk
-    import trafficlight
-    from sccd.runtime.libs.ui import ui
-    from sccd.runtime.statecharts_core import Event
-    from sccd.runtime.tkinter_eventloop import *
-
-    if __name__ == '__main__':
-        ui.window = tk.Tk()
-
-        controller = trafficlight.Controller(TkEventLoop(ui.window))
-        controller.start()
-        ui.window.mainloop()
-        
-Javascript
-^^^^^^^^^^
-The SCCD model::
-
-    <?xml version="1.0" ?>
-    <diagram author="Raphael Mannadiar" name="Traffic_Light_JavaScript_Version">
-        <inport name="ui" />
-
-        <class name="MainApp" default="true">
-            <relationships>
-                <association name="trafficlight" class="TrafficLight" />
-            </relationships>
-            <method name="MainApp">
-                <body>
-                    <![CDATA[
-                    this.canvas	= ui.append_canvas(ui.window,100,310,{'background':'#eee'});
-                    var police_button = ui.append_button(ui.window, 'Police interrupt');
-                    var quit_button	= ui.append_button(ui.window, 'Quit');
-                    ui.bind_event(police_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'police_interrupt_clicked');
-                    ui.bind_event(quit_button.element, 	 ui.EVENTS.MOUSE_CLICK, this.controller, 'quit_clicked');
-                    ]]>
-                </body>		
-            </method>
-            <scxml initial="initializing">
-                <state id="initializing">
-                    <transition target="../creating">
-                        <raise scope="cd" event="create_instance">
-                            <parameter expr='"trafficlight"' />
-                            <parameter expr='"TrafficLight"' />
-                            <parameter expr="this.canvas" />
-                        </raise>
-                    </transition>
-                </state>
-                <state id="creating">
-                    <transition event="instance_created" target="../initialized">
-                        <parameter name="association_name" type="string"/>
-                        <raise scope="cd" event="start_instance">
-                            <parameter expr="association_name" />
-                        </raise>
-                        <raise scope="narrow" event="set_association_name" target="association_name">
-                            <parameter expr="association_name" />
-                        </raise>
-                    </transition>
-                </state>
-                <state id="initialized">
-                </state>
-            </scxml>
-        </class>
-
-        <class name="TrafficLight">
-            <relationships>
-            </relationships>
-            <method name="TrafficLight">
-                <parameter name="canvas" />
-                <body>
-                    <![CDATA[
-                    var size 	= 100;
-                    var offset 	= size+5;
-                    this.RED 	= 0;
-                    this.YELLOW = 1;
-                    this.GREEN 	= 2;
-                    this.colors	= ['#f00','#ff0','#0f0']
-                    this.lights = [canvas.add_rectangle(size/2, size/2, 		 	 size, size, {'fill':'#000'}),
-                                        canvas.add_rectangle(size/2, size/2+offset,	 size, size, {'fill':'#000'}),
-                                        canvas.add_rectangle(size/2, size/2+2*offset, size, size, {'fill':'#000'})];
-                    ]]>
-                </body>
-            </method>
-            <method name="clear">
-                <body>
-                    <![CDATA[
-                    this.lights[this.RED].set_color('#000');
-                    this.lights[this.YELLOW].set_color('#000');
-                    this.lights[this.GREEN].set_color('#000');
-                    ]]>
-                </body>
-            </method>
-            <method name="setGreen">
-                <body>
-                    <![CDATA[
-                    this.clear();
-                    this.lights[this.GREEN].set_color(this.colors[this.GREEN]);
-                    ]]>
-                </body>
-            </method>
-            <method name="setYellow">
-                <body>
-                    <![CDATA[
-                    this.clear();
-                    this.lights[this.YELLOW].set_color(this.colors[this.YELLOW]);
-                    ]]>
-                </body>
-            </method>
-            <method name="setRed">
-                <body>
-                    <![CDATA[
-                    this.clear();
-                    this.lights[this.RED].set_color(this.colors[this.RED]);
-                    ]]>
-                </body>
-            </method>
-            <scxml initial="on">
-                <state id="on" initial="normal">
-                    <state id="normal" initial="red">
-                        <state id="red">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    this.setRed();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='3' target='../green'/>
-                        </state>
-                        <state id="green">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    this.setGreen();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='2' target='../yellow'/>
-                        </state>
-                        <state id="yellow">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    this.setYellow();
-                                    ]]>
-                                </script>
-                            </onentry>
-                        <transition after='1' target='../red'/>
-                        </state>
-                        <transition event='police_interrupt_clicked' port='ui' target='../interrupted'/>
-                        <history id="history"/>
-                    </state>
-                    <state id="interrupted" initial="yellow">
-                        <state id="yellow">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    this.setYellow();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='.5' target='../black'/>
-                        </state>
-                        <state id="black">
-                            <onentry>
-                                <script>
-                                    <![CDATA[
-                                    this.clear();
-                                    ]]>
-                                </script>
-                            </onentry>
-                            <transition after='.5' target='../yellow'/>
-                        </state>
-                        <transition event='police_interrupt_clicked' port='ui' target='../normal/history'/>
-                    </state>
-                    <transition event='quit_clicked' port='ui' target='../off'/>
-                </state>
-                <state id="off">
-                    <onentry>
-                        <script>
-                            <![CDATA[
-                            this.clear();
-                            ]]>
-                        </script>
-                    </onentry>
-                </state>
-            </scxml>
-        </class>
-    </diagram>
-    
-To compile, save this in a file called ``trafficlight.xml`` and run ``python -m sccd.compiler.sccdc -p eventloop -l javascript trafficlight.xml``
-
-Then, the following file will run the model::
-
-    <div>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/HackTimer.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/statecharts_core.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/utils.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/svg.js"></script>
-        <script src="https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/ui.js"></script>
-        <script src="trafficlight.js"></script>
-        <script>
-        controller = new Traffic_Light_JavaScript_Version.Controller(new JsEventLoop());
-        controller.start();
-        </script> 
-    </div>

+ 0 - 34
doc/_build/html/_sources/index.txt

@@ -1,34 +0,0 @@
-.. SCCD documentation master file, created by
-   sphinx-quickstart on Tue Aug 16 10:17:10 2016.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
-SCCD Documentation
-==================
-
-SCCD [SCCD]_ is a language that combines the Statecharts [Statecharts]_ language with Class Diagrams. It allows users to model complex, timed, autonomous, reactive, dynamic-structure systems.
-
-The concrete syntax of SCCD is an XML-format loosely based on the `W3C SCXML recommendation <https://www.w3.org/TR/scxml/>`_. A conforming model can be compiled to a number of programming languages, as well as a number of runtime platforms implemented in those languages. This maximizes the number of applications that can be modelled using SCCD, such as user interfaces, the artificial intelligence of game characters, controller software, and much more.
-
-This documentation serves as an introduction to the SCCD language, its compiler, and the different supported runtime platforms.
-
-Contents
---------
-
-.. toctree::
-   :maxdepth: 2
-
-    Installation <installation>
-    Language Features <language_features>
-    Compiler <compiler>
-    Runtime Platforms <runtime_platforms>
-    Examples <examples>
-    Semantic Options <semantic_options>
-    Socket Communication <sockets>
-    Internal Documentation <internal_documentation>
-    
-References
-----------
-    
-.. [SCCD] Simon Van Mierlo, Yentl Van Tendeloo, Bart Meyers, Joeri Exelmans, and Hans Vangheluwe. SCCD: SCXML extended with class diagrams. In *3rd Workshop on Engineering Interactive Systems with SCXML, part of EICS 2016*, 2016. [`LINK <http://www.scxmlworkshop.de/eics2016/submissions/SCCD%20SCXML%20Extended%20with%20Class%20Diagrams.pdf>`_]
-.. [Statecharts] David Harel. Statecharts: A visual formalism for complex systems. *Sci. Comput. Program. 8*, 3 (1987), 231–274. [`LINK <http://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf>`_]

+ 0 - 25
doc/_build/html/_sources/installation.txt

@@ -1,25 +0,0 @@
-Installation
-============
-This section describes the necessary steps for installing SCCD.
-
-Download
---------
-The current version of SCCD is v0.9. You can download it using this link: https://msdl.uantwerpen.be/git/simon/SCCD/archive/v0.9.zip
-
-Unzip the contents of the archive to a folder of your choice.
-
-Dependencies
-------------
-SCCD depends on Python 2.7, which you can download from https://www.python.org/download/releases/2.7/
-
-SCCD Installation
---------------------
-Execute the following command inside the *src* folder::
-
-    python setup.py install --user
-    
-Afterwards, SCCD should be installed. This can easily be checked with the command::
-
-    python -c "import sccd"
-    
-If this returns without errors, SCCD is sucessfully installed.

+ 0 - 6
doc/_build/html/_sources/internal_documentation.txt

@@ -1,6 +0,0 @@
-Internal Documentation
-======================
-
-.. toctree::
-
-    Statecharts Core <statecharts_core_int>

+ 0 - 436
doc/_build/html/_sources/language_features.txt

@@ -1,436 +0,0 @@
-Language Features
-=================
-SCCD(XML)'s notation is loosely based on the `W3C SCXML recommendation <https://www.w3.org/TR/scxml/>`_. It adds concepts of Class Diagrams. In essence, an SCCD model consists of a number of classes that are related to each other through associations. Each class has a Statechart, defining its runtime behavior.
-
-One class is the default class. When the system is run, the runtime creates and starts one instance of that class. Instances can create, start, and delete instances of classes (if it's allowed by the constraints modelled on the class diagram). They can also create and delete instances of associations (*i.e.* links between instances). These links are used for one instance to communicate with (an)other instance(s).
-
-Top-Level Elements
-------------------
-
-.. _diagram:
-
-<diagram>
-^^^^^^^^^
-The top-level element of an SCCD model is a ``<diagram>``. It has two attributes:
-
-* *name* specifies the name of the diagram. For models compiled to Python, this is purely informative, while in Javascript this is the name of the namespace to which the compiled classes belong.
-* *author* specifies who authored the model
-
-Children:
-
-* ``[0..1]`` :ref:`description`
-* ``[0..1]`` :ref:`top`
-* ``[0..n]`` :ref:`inport_outport`
-* ``[1..n]`` :ref:`class`
-
-.. _description:
-
-<description>
-^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`diagram`.
-
-The ``<description>`` element contains a description of the diagram and optionally occurs once. It will be placed as a comment at the top of the compiled file.
-
-.. _top:
-
-<top>
-^^^^^
-.. note:: This is a child element of :ref:`diagram`.
-.. warning:: Python only!
-
-The ``<top>`` element can be used to import additional library modules to be used by the classes modelled in the diagram. It can optionally occur once.
-
-.. _inport_outport:
-
-<inport> and <outport>
-^^^^^^^^^^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`diagram` or :ref:`class`.
-
-An ``<inport>`` models a communication channel which can receive events from the outside world. An ``<outport>`` models a communication channel with which instances can send event to the outside world.
-
-Ports have one attribute: a *name*. This name can be referenced either in :ref:`transition` (for input ports) or :ref:`raise` (for output ports).
-
-In case the port is a child of a class, the port is local to that class. Each instance of the class will receive a private instance of the port, on which only they can receive events or can send events to.
-
-Class Diagram Concepts
-----------------------
-
-.. _class:
-
-<class>
-^^^^^^^
-Classes are the basic building block of an SCCD diagram. They model structure in the form of attributes and relations with other classes, and behavior in the form of methods (which can change the value of attributes) and a Statecharts model (which governs the runtime behavior of the class).
-
-A ``<class>`` element has three attributes:
-
-* *name*: the name of the class
-* *default*: true if this is the default class (of which one instance is created and started at the start of executing the compiled code)
-* *src*: the location of a separate XML file (relative to the location in which the main diagram is compiled), containing the definition of the class. If this attribute is set, the *name* attribute cannot be set, nor can the class element have any children.
-
-Children:
-
-* ``[0..1]`` :ref:`relationships`
-* ``[0..n]`` :ref:`attribute`
-* ``[0..1]`` :ref:`constructor`
-* ``[0..1]`` :ref:`destructor`
-* ``[0..n]`` :ref:`method`
-
-.. _relationships:
-
-<relationships>
-^^^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-Models a number of relationships between its parent class and other classes of the diagram.
-
-Children:
-
-* ``[0..n]`` :ref:`association`
-* ``[0..n]`` :ref:`inheritance`
-
-.. _association:
-
-<association>
-^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`relationships`.
-
-An association relation can be insantiated in order to link two instances at runtime, and those instances to exchange messages over that link. An association has two attributes:
-
-* *name*: the name of the association
-* *class*: the name of the target class
-* *min*: the minimal cardinality of the association (defaults to 0)
-* *max*: the maximum cardinality of the association (defaults to infinity)
-
-.. _inheritance:
-
-<inheritance>
-^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`relationships`.
-
-An inhertiance relation allows one class to inherit all methods and attribute from another class. Behaviour (*i.e.*, the :ref:`scxml` element) of the parent is not inherited. An inheritance relation has four attributes:
-
-* *class*: the name of the target class
-* *priority*: allows to specify in which order classes need to be inherited (in case of multiple inheritance). Inheritance relations with higher priority are inherited from first.
-
-.. _attribute:
-
-<attribute>
-^^^^^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-An :ref:`attribute` element has two attributes:
-
-* *name*: the name of the attribute
-* *type*: the type of the attribute
-
-.. _constructor:
-
-<constructor>
-^^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-The constructor is called when an object is instantiated. It is used to initialize the instance's attribute values.
-
-Children:
-
-* ``[0..n]`` :ref:`parameter`
-* ``[1..1]`` :ref:`body`
-
-.. _destructor:
-
-<destructor>
-^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-The destructor is called just before an object is deleted.
-
-Children:
-
-* ``[1..1]`` :ref:`body`
-
-.. _method:
-
-<method>
-^^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-A method is a block of action code that can be called repeatedly in other code blocks that belong to the same class definition. It has two attributes:
-
-* *name*: the name of the method
-* *type*: the type of the return value (optional)
-
-Children:
-
-* ``[0..n]`` :ref:`parameter`
-* ``[1..1]`` :ref:`body` 
-
-.. _body:
-
-<body>
-^^^^^^
-.. note:: This is a child element of :ref:`method`, :ref:`constructor`, or :ref:`destructor`.
-
-A :ref:`body` element is a block of action code in a programming language (depending on the target language to which the model is compiled). It allows to call other functions and change the values of instance variables. If any parameters were defined as children of this element's parent, they can be referenced by name.
-
-Statechart Concepts
--------------------
-
-.. _scxml:
-
-<scxml>
-^^^^^^^
-.. note:: This is a child element of :ref:`class`.
-
-The top-level element containing the Statecharts definition of its parent class. It has one attribute:
-
-* *initial*: specifies the initial child state of the Statechart (optional). If omitted, the first child in document order is the initial state.
-* *big_step_maximality*: (optional). See :ref:`big_step_maximality`. Allowed values are "take_many" (default), "take_one".
-* *internal_event_lifeline*: (optional). See :ref:`internal_event_lifeline`. Allowed values are "queue" (default), "next_small_step", "next_combo_step".
-* *input_event_lifeline*: (optional). See :ref:`input_event_lifeline`. Allowed values are "first_combo_step" (default), "first_small_step", "whole".
-* *priority*: (optional). See :ref:`priority`. Allowed values are "source_parent" (default), "source_child".
-* *concurrency*: (optional). See :ref:`concurrency`. Allowed values are "single" (default), "many".
-
-Children:
-
-* ``[0..n]`` :ref:`state`.
-* ``[0..n]`` :ref:`parallel`.
-
-.. _state:
-
-<state>
-^^^^^^^
-.. note:: This is a child element of :ref:`scxml`, :ref:`state`, or :ref:`parallel`.
-
-A state is the basic building block of a Statechart. It represents a "mode" the system can be in. A state can be entered (which executes an optional block of executable content) and exited (which executes an optional block of executable content) using transitions (which execute an optional block of executable content). States can be hierarchical (*i.e.*, one state can contain other states). A state has two attributes:
-
-* *id*: the identifier of the state. Needs to be unique with respect to other state ids on the same level (*i.e.*, the parent state cannot have two children with identical ids).
-* *initial*: Specifies the initial child state, if this state is a composite state (optional). If omitted, the first child in document order is the initial state.
-
-Children:
-
-* ``[0..n]`` :ref:`transition`.
-* ``[0..n]`` :ref:`state`.
-* ``[0..n]`` :ref:`parallel`.
-* ``[0..n]`` :ref:`history`.
-* ``[0..1]`` :ref:`onentry`.
-* ``[0..1]`` :ref:`onexit`.
-
-.. _parallel:
-
-<parallel>
-^^^^^^^^^^
-.. note:: This is a child element of :ref:`scxml`, :ref:`state`, or :ref:`parallel`.
-
-A parallel state's children run, as the name reveals, in parallel. This means that each child of the parallel state is able to execute a transition *at the same time*. This is useful to naturally model concurrent behavior, such as animating elements on a canvas while also listening for user input. A paralle state has one attribute:
-
-* *id*: the identifier of the parallel state. Needs to be unique with respect to other state ids on the same level (*i.e.*, the parent state cannot have two children with identical ids).
-
-Children:
-
-* ``[0..n]`` :ref:`transition`.
-* ``[0..n]`` :ref:`state`. These children **must** be composite.
-* ``[0..n]`` :ref:`parallel`.
-* ``[0..n]`` :ref:`history`.
-* ``[0..1]`` :ref:`onentry`.
-* ``[0..1]`` :ref:`onexit`.
-
-.. warning:: A transition from a child state cannot exit the parallel region, as this breaks encapsulation and can interfere with the behavior of other children of the parallel state. Only transitions directly from the parallel state can exit the parallel region (which will automatically exit its children as well).
-
-.. _transition:
-
-<transition>
-^^^^^^^^^^^^
-.. note:: This is a child element of :ref:`scxml`, :ref:`state`, or :ref:`parallel`.
-
-A transition allows the system to change state (*i.e.*, go from one "mode" to the next). Transitions are *triggered* by an event or a timeout, or can be spontaneous. They can optionally specify a condition that additionally needs to evaluate to true. A transition can have five attributes:
-
-* *target*: the target state of the transition. See :ref:`state_referencing` for more details.
-* *after*: (optional) an amount of seconds that need to pass before this transition is triggered. Cannot occur together with *event*. Note that the timer starts counting when the parent state is entered. The timer is cancelled when the state is exited.
-* *event*: (optional) the name of the event that triggers this transitions. Cannot occur together with *after*.
-* *port*: (optional) specifies the name of the port on which the event that triggers this transition will arrive. Needs to occur together with *event*, and cannot occur together with *after*.
-* *cond*: (optional) a condition that evaluates to a boolean value. Can make use of instance variables, and names of parameters passed to the transition.
-
-Children:
-
-* ``[0..n]`` :ref:`parameter`
-* ``[0..n]`` :ref:`raise`
-* ``[0..n]`` :ref:`script`
-* ``[0..n]`` :ref:`log`
-
-The semantics of executing a transition are as follows:
-
-#. The exit set consists of the active descendants of the least-common ancestor state of the transition's source and target state. All states in the exit set are exited in order ("youngest" child first), executing their exit actions.
-#. All executable content of the transition is executed in document order.
-#. The enter set consists of the transition's target state, its children, and its ancestors that are not an ancestor of the source state. They are entered in order ("oldest" state first), executing their enter actions.
-
-.. _history:
-
-<history>
-^^^^^^^^^
-.. note:: This is a child element of :ref:`state`, or :ref:`parallel`.
-
-A history state keeps track of the current configuration when its parent state is exited. If a transition has the history state as a target, the configuration that was saved is restored. If no configuration was saved yet, the default state is entered instead. A history state has two attributes:
-
-* *id*: the identifier of the state. Needs to be unique with respect to other state ids on the same level (*i.e.*, the parent state cannot have two children with identical ids).
-* *type*: (optional) either "shallow" (default) or "deep". A shallow history state only saves the active states on its level (not the active children of those states). A deep history state saves the active states on its level, and all active states on lower levels.
-
-A history state cannot have children.
-
-.. _onentry:
-
-<onentry>
-^^^^^^^^^
-.. note:: This is a child element of :ref:`state`, or :ref:`parallel`.
-
-An entry action is executed when a state is entered. Executable content is executed in document order.
-
-Children:
-
-* ``[0..n]`` :ref:`raise`
-* ``[0..n]`` :ref:`script`
-* ``[0..n]`` :ref:`log`
-
-.. _onexit:
-
-<onexit>
-^^^^^^^^^
-.. note:: This is a child element of :ref:`state`, or :ref:`parallel`.
-
-An exit action is executed when a state is exited. Executable content is executed in document order.
-
-Children:
-
-* ``[0..n]`` :ref:`raise`
-* ``[0..n]`` :ref:`script`
-* ``[0..n]`` :ref:`log`
-
-.. _state_referencing:
-
-State Referencing
-^^^^^^^^^^^^^^^^^
-
-States need to be referenced when they are the target of a :ref:`transition` or appear in INSTATE :ref:`macros`. SCCD identifies states hierarchically and evaluates state references in the context of the state where the state reference occurs.
-
-* ``.`` is the state itself
-* ``<empty string>`` is the root (*i.e.*, the :ref:`scxml` element)
-* ``..`` goes up one level (to the parent state)
-* ``a`` is the child with id 'a'
-* ``a/b`` with *a* and *b* arbitrary state expressions evaluates state expression *b* in the context of the state found with state expression *a*.
-
-Examples:
-
-* ``../A`` will look for a state with id 'A' in the parent state
-* ``/A`` will look for a state with id 'A' in the root
-* ``A/B`` will look for a state with id 'B' in child with id 'A'
-
-
-Executable Content
-------------------
-
-Actions are executed when a :ref:`transition` is executed. There are three types of actions: event raises (which can in turn trigger other transitions), scripts (which can call functions and update instance variables) and log statements.
-
-.. _raise:
-
-<raise>
-^^^^^^^
-.. note:: This is a child element of :ref:`transition`, :ref:`onentry`, or ref:`onexit`.
-
-Raising an event allows to notify the outside world, the Statechart, or another instance. An event has a name, and optionally parameter values that are sent along with the event. As a result, a :ref:`transition` can be triggered elsewhere in the Statechart or in the receiving instance.
-
-A ref:`raise` element can have three attributes: *scope*, *port*, and *target*. They are used to explicitly define the scope of the raised event. Either the event is local to the Statechart, it is broadcast to all instances in the diagram, it is narrowcast to a specific instance, to the :ref:`object_manager`, or to an output port.
-
-The table bellow summarizes how the different scopes are specified.
-
-.. rst-class:: table-with-borders
-
-+-------------+-------+-----------+-------------+-----------------+-------------+
-| attr/scope  | local | broadcast | narrowcast  | object manager  | output      |
-+=============+=======+===========+=============+=================+=============+
-| *scope*     |\-\-\- | "broad"   | "narrow"    | "cd"            | "output"    |
-+-------------+-------+-----------+-------------+-----------------+-------------+
-| *port*      |\-\-\- |\-\-\-\-\- |\-\-\-\-\-\- |\-\-\-\-\-\-\-\- | port_name   |
-+-------------+-------+-----------+-------------+-----------------+-------------+
-| *target*    |\-\-\- |\-\-\-\-\- | link_name   |\-\-\-\-\-\-\-\- |\-\-\-\-\-\- |
-+-------------+-------+-----------+-------------+-----------------+-------------+
-
-A "link name" identifies a specific (set of) connected instance(s) of the instance that raised the event. For example, if class "A" and "B" are connected via an association "A_to_B", valid values for "link_name could be:
-
-* "'A_to_B'" to send to all instances of B with which the instance of A that raises the event is connected
-* "'A_to_B[idx]'" where *idx* is a valid link index, which is sent by the :ref:`object_manager` as a reply to a *create_instance* request.
-* "self.the_link_name" if this evaluates to a legal link name.
-
-.. _script:
-
-<script>
-^^^^^^^^
-.. note:: This is a child element of :ref:`transition`, :ref:`onentry`, or ref:`onexit`.
-
-A :ref:`script` element is similar to a :ref:`body` element: a block of action code in a programming language (depending on the target language to which the model is compiled). It allows to call other functions and change the values of instance variables. If any parameters were defined as children of this element's parent (in the case of a :ref:`transition`), they can be referenced by name.
-
-.. _log:
-
-<log>
-^^^^^
-.. note:: This is a child element of :ref:`transition`, :ref:`onentry`, or ref:`onexit`.
-
-Allows to log a string.
-
-.. _parameter:
-
-<parameter>
-^^^^^^^^^^^
-.. note:: This is a child element of :ref:`transition`, :ref:`raise`, :ref:`method`, or :ref:`constructor`.
-
-Depending on where the :ref:`parameter` element is placed, it is either a formal parameter, or an actual parameter value.
-
-In the case it is a child of a :ref:`transition`, :ref:`method`, or :ref:`constructor`, it is a formal parameter. It then has three attributes:
-
-* *name*: the name of the parameter
-* *type*: (optional) the type of the parameter
-* *default*: (optional) the default value of the parameter
-
-.. note:: Parameters are positional.
-
-In the case it is a child of a :ref:`raise`, it is an actual parameter value. It then has one attribute:
-
-* *expr*: an expression that evaluates to the actual parameter value.
-
-.. _macros:
-
-Macros
-------
-Two macros are defined that can be used in the *cond* attribute of :ref:`transition` and the *expr* attribute of :ref:`parameter`:
-
-* *INSTATE(state_reference)* returns true if the system is currently in the referenced state (see :ref:`state_referencing`).
-* *SELF* returns the current object. This is useful to write platform-independent expressions. 
-
-.. _object_manager:
-
-Object Manager
---------------
-
-The object manager is responsible for managing objects and links while the application is running. The instances can communicate with the object manager by raising events using the *cd* scope (see :ref:`raise`).
-
-The object manager accepts four events:
-
-* **create_instance**
-    * Parameters:
-        * *association_name*: an expression that evaluates to the name of the association that needs to be instantiated
-        * *class_name*: (optional) an expression that evaluates to the name of the class to instantiate. If omitted, the target class of the association is instantiated.
-        * *parameters*: (optional) the actual constructor parameter values
-    * Returns Event:
-        * **instance_created**\(*link_id*)
-* **start_instance**
-    * Parameters:
-        * *link_id*: the identifier of the link with which the instance to be started is connected to the requesting instance
-    * Returns Event:
-        * **instance_started**\(*link_id*)
-* **delete_instance**
-    * Parameters:
-        * *link_id*: the identifier of the link with which the instance to be deleted is connected to the requesting instance
-    * Returns Event:
-        * **instance_deleted**\(*link_id*)
-* **associate_instance**
-    * Parameters:
-        * *link_expression_dst*: an expression evaluating to a set of links, of which the targets need to be associated
-        * *link_expression_src*: an expression evaluating to an association, which needs to be instantiated to connect the source of the association to the targets that were evaluated in the expression above

文件差異過大導致無法顯示
+ 0 - 75
doc/_build/html/_sources/runtime_platforms.txt


+ 0 - 31
doc/_build/html/_sources/semantic_options.txt

@@ -1,31 +0,0 @@
-Semantic Options
-================
-
-Please see [SemanticOptions]_ for more information on the several semantic options.
-
-.. _big_step_maximality:
-
-Big Step Maximality
--------------------
-
-.. _internal_event_lifeline:
-
-Internal Event Lifeline
------------------------
-
-.. _input_event_lifeline:
-
-Input Event Lifeline
---------------------
-
-.. _priority:
-
-Priority
---------
-
-.. _concurrency:
-
-Concurrency
------------
-
-.. [SemanticOptions] Esmaeilsabzali, S., Day, N. A., Atlee, J. M., and Niu, J. *Deconstructing the semantics of big-step modelling languages*. Requirements Engineering 15, 2 (2010), 235–265. [`LINK <https://cs.uwaterloo.ca/~sesmaeil/publications/2010/REJ10.pdf>`_] 

+ 0 - 101
doc/_build/html/_sources/sockets.txt

@@ -1,101 +0,0 @@
-Socket Communication
-====================
-
-Sockets, for network communication, are an oftenly needed capability for many complex system.
-By default, however, Statecharts, and SCCD in particular, do not handle socket communication at all.
-Shifting all socket communication into action code is not an option either, as it is potentially a blocking operation.
-Additionally, the code wraps different socket implementations and socket configuration.
-
-This module will, after starting the translation service, translate all events on the *socket_in* and *socket_out* port to socket operations.
-Blocking then happens on another thread, while the statechart can continue its usual execution.
-When the socket operation returns, the result will be raised in the statechart as an event.
-
-Initialization
---------------
-
-To use the translation service, several steps should be followed:
-
-    1. Import sccd.sccd_runtime.socket2event as socket2event;
-    2. Write your model with a *socket_in* and *socket_out* port;
-    3. Before starting the controller, invoke *socket2event.boot_translation_service(controller)* with the controller as its first argument;
-    4. Now raise and catch events as specified here, to communicate with sockets.
-
-Input Events
-------------
-
-+-------------------+-----------------------------------+-------------------------------+
-| Event             | Parameters                        | Meaning                       |
-+===================+===================================+===============================+
-| accept_socket     | socket                            | socket.accept()               |
-+-------------------+-----------------------------------+-------------------------------+
-| recv_socket       | socket                            | socket.recv(2**16)            |
-+-------------------+-----------------------------------+-------------------------------+
-| connect_socket    | socket, address                   | socket.connect(address)       |
-+-------------------+-----------------------------------+-------------------------------+
-| create_socket     |                                   | new Socket()                  |
-+-------------------+-----------------------------------+-------------------------------+
-| close_socket      | socket                            | socket.close()                |
-+-------------------+-----------------------------------+-------------------------------+
-| send_socket       | socket, data                      | socket.send(data)             |
-+-------------------+-----------------------------------+-------------------------------+
-| bind_socket       | socket, address                   | socket.bind(address)          |
-+-------------------+-----------------------------------+-------------------------------+
-| listen_socket     | socket                            | socket.listen()               |
-+-------------------+-----------------------------------+-------------------------------+
-| stop              | socket                            | stops translator service      |
-+-------------------+-----------------------------------+-------------------------------+
-
-Output Events
--------------
-
-+-----------------------+-----------------------------------+-------------------------------+
-| Event                 | Arguments                         | Response to                   |
-+=======================+===================================+===============================+
-| received_socket       | socket, data                      | recv_socket                   |
-+-----------------------+-----------------------------------+-------------------------------+
-| sent_socket           | socket, bytes                     | send_socket                   |
-+-----------------------+-----------------------------------+-------------------------------+
-| accepted_socket       | socket, connection                | accept_socket                 |
-+-----------------------+-----------------------------------+-------------------------------+
-| connected_socket      | socket                            | connect_socket                |
-+-----------------------+-----------------------------------+-------------------------------+
-| closed_socket         | socket                            | close_socket                  |
-+-----------------------+-----------------------------------+-------------------------------+
-| bound_socket          | socket                            | bind_socket                   |
-+-----------------------+-----------------------------------+-------------------------------+
-| listened_socket       | socket                            | listen_socket                 |
-+-----------------------+-----------------------------------+-------------------------------+
-| error_socket          | socket, error                     | Socket error occurs           |
-+-----------------------+-----------------------------------+-------------------------------+
-| unknown_error_socket  | socket, error                     | Python error occurs           |
-+-----------------------+-----------------------------------+-------------------------------+
-
-HTTP client/server
-------------------
-
-Using this library, an HTTP echo client and server are implemented.
-The server echoes all data received from the client.
-The client connects to the server and sends some data.
-These are included in the examples directory
-
-Compile the server using::
-
-   python python_sccd_compiler/sccdc.py -p threads server.xml
-
-and the client using::
-
-   python python_sccd_compiler/sccdc.py -p threads client.xml
-
-Afterwards, you can run the server as::
-
-   python run_server.py
-
-which will start up a simple HTTP echo server on port 8080
-(configurable in constructor).
-Then you can start up several clients using::
-
-   python run_client.py
-
-The client will send out a counter to the server and print out the
-reply. The server is able to connect to multiple clients simultaneously,
-so can handle multiple open connections without getting confused.

+ 0 - 5
doc/_build/html/_sources/statecharts_core_int.txt

@@ -1,5 +0,0 @@
-Statecharts Core
-================
-
-.. automodule:: sccd.runtime.statecharts_core
-    :members:

二進制
doc/_build/html/_static/ajax-loader.gif


+ 0 - 604
doc/_build/html/_static/basic.css

@@ -1,604 +0,0 @@
-/*
- * basic.css
- * ~~~~~~~~~
- *
- * Sphinx stylesheet -- basic theme.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
-    clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
-    width: 100%;
-    font-size: 90%;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    margin: 0;
-    padding: 0 0 0 10px;
-    list-style: none;
-}
-
-div.related li {
-    display: inline;
-}
-
-div.related li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
-    padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
-    float: left;
-    width: 230px;
-    margin-left: -100%;
-    font-size: 90%;
-    word-wrap: break-word;
-    overflow-wrap : break-word;
-}
-
-div.sphinxsidebar ul {
-    list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
-    margin-left: 20px;
-    list-style: square;
-}
-
-div.sphinxsidebar ul ul {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
-    margin-top: 10px;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-div.sphinxsidebar #searchbox input[type="text"] {
-    width: 170px;
-}
-
-img {
-    border: 0;
-    max-width: 100%;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.3em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-    font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable {
-    width: 100%;
-}
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-div.modindex-jumpbox {
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-    margin: 1em 0 1em 0;
-    padding: 0.4em;
-}
-
-div.genindex-jumpbox {
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-    margin: 1em 0 1em 0;
-    padding: 0.4em;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-div.body p, div.body dd, div.body li, div.body blockquote {
-    -moz-hyphens: auto;
-    -ms-hyphens: auto;
-    -webkit-hyphens: auto;
-    hyphens: auto;
-}
-
-a.headerlink {
-    visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink,
-caption:hover > a.headerlink,
-p.caption:hover > a.headerlink,
-div.code-block-caption:hover > a.headerlink {
-    visibility: visible;
-}
-
-div.body p.caption {
-    text-align: inherit;
-}
-
-div.body td {
-    text-align: left;
-}
-
-.field-list ul {
-    padding-left: 1em;
-}
-
-.first {
-    margin-top: 0 !important;
-}
-
-p.rubric {
-    margin-top: 30px;
-    font-weight: bold;
-}
-
-img.align-left, .figure.align-left, object.align-left {
-    clear: left;
-    float: left;
-    margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
-    clear: right;
-    float: right;
-    margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.align-left {
-    text-align: left;
-}
-
-.align-center {
-    text-align: center;
-}
-
-.align-right {
-    text-align: right;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
-    margin: 0 0 0.5em 1em;
-    border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
-    background-color: #ffe;
-    width: 40%;
-    float: right;
-}
-
-p.sidebar-title {
-    font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
-    border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-    margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    padding: 7px;
-}
-
-div.admonition dt {
-    font-weight: bold;
-}
-
-div.admonition dl {
-    margin-bottom: 0;
-}
-
-p.admonition-title {
-    margin: 0px 10px 5px 0px;
-    font-weight: bold;
-}
-
-div.body p.centered {
-    text-align: center;
-    margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
-    border: 0;
-    border-collapse: collapse;
-}
-
-table caption span.caption-number {
-    font-style: italic;
-}
-
-table caption span.caption-text {
-}
-
-table.docutils td, table.docutils th {
-    padding: 1px 8px 1px 5px;
-    border-top: 0;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
-    border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
-th {
-    text-align: left;
-    padding-right: 5px;
-}
-
-table.citation {
-    border-left: solid 1px gray;
-    margin-left: 1px;
-}
-
-table.citation td {
-    border-bottom: none;
-}
-
-/* -- figures --------------------------------------------------------------- */
-
-div.figure {
-    margin: 0.5em;
-    padding: 0.5em;
-}
-
-div.figure p.caption {
-    padding: 0.3em;
-}
-
-div.figure p.caption span.caption-number {
-    font-style: italic;
-}
-
-div.figure p.caption span.caption-text {
-}
-
-
-/* -- other body styles ----------------------------------------------------- */
-
-ol.arabic {
-    list-style: decimal;
-}
-
-ol.loweralpha {
-    list-style: lower-alpha;
-}
-
-ol.upperalpha {
-    list-style: upper-alpha;
-}
-
-ol.lowerroman {
-    list-style: lower-roman;
-}
-
-ol.upperroman {
-    list-style: upper-roman;
-}
-
-dl {
-    margin-bottom: 15px;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-dt:target, .highlighted {
-    background-color: #fbe54e;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-.field-list ul {
-    margin: 0;
-    padding-left: 1em;
-}
-
-.field-list p {
-    margin: 0;
-}
-
-.optional {
-    font-size: 1.3em;
-}
-
-.sig-paren {
-    font-size: larger;
-}
-
-.versionmodified {
-    font-style: italic;
-}
-
-.system-message {
-    background-color: #fda;
-    padding: 5px;
-    border: 3px solid red;
-}
-
-.footnote:target  {
-    background-color: #ffa;
-}
-
-.line-block {
-    display: block;
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-
-.line-block .line-block {
-    margin-top: 0;
-    margin-bottom: 0;
-    margin-left: 1.5em;
-}
-
-.guilabel, .menuselection {
-    font-family: sans-serif;
-}
-
-.accelerator {
-    text-decoration: underline;
-}
-
-.classifier {
-    font-style: oblique;
-}
-
-abbr, acronym {
-    border-bottom: dotted 1px;
-    cursor: help;
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
-    overflow: auto;
-    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
-}
-
-td.linenos pre {
-    padding: 5px 0px;
-    border: 0;
-    background-color: transparent;
-    color: #aaa;
-}
-
-table.highlighttable {
-    margin-left: 0.5em;
-}
-
-table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
-}
-
-div.code-block-caption {
-    padding: 2px 5px;
-    font-size: small;
-}
-
-div.code-block-caption code {
-    background-color: transparent;
-}
-
-div.code-block-caption + div > div.highlight > pre {
-    margin-top: 0;
-}
-
-div.code-block-caption span.caption-number {
-    padding: 0.1em 0.3em;
-    font-style: italic;
-}
-
-div.code-block-caption span.caption-text {
-}
-
-div.literal-block-wrapper {
-    padding: 1em 1em 0;
-}
-
-div.literal-block-wrapper div.highlight {
-    margin: 0;
-}
-
-code.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-code.descclassname {
-    background-color: transparent;
-}
-
-code.xref, a code {
-    background-color: transparent;
-    font-weight: bold;
-}
-
-h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
-    background-color: transparent;
-}
-
-.viewcode-link {
-    float: right;
-}
-
-.viewcode-back {
-    float: right;
-    font-family: sans-serif;
-}
-
-div.viewcode-block:target {
-    margin: -1px -10px;
-    padding: 0 10px;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
-    vertical-align: middle;
-}
-
-div.body div.math p {
-    text-align: center;
-}
-
-span.eqno {
-    float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
-    div.document,
-    div.documentwrapper,
-    div.bodywrapper {
-        margin: 0 !important;
-        width: 100%;
-    }
-
-    div.sphinxsidebar,
-    div.related,
-    div.footer,
-    #top-link {
-        display: none;
-    }
-}

+ 0 - 261
doc/_build/html/_static/classic.css

@@ -1,261 +0,0 @@
-/*
- * default.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- default theme.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
-    font-family: sans-serif;
-    font-size: 100%;
-    background-color: #11303d;
-    color: #000;
-    margin: 0;
-    padding: 0;
-}
-
-div.document {
-    background-color: #1c4e63;
-}
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 0 0 230px;
-}
-
-div.body {
-    background-color: #ffffff;
-    color: #000000;
-    padding: 0 20px 30px 20px;
-}
-
-div.footer {
-    color: #ffffff;
-    width: 100%;
-    padding: 9px 0 9px 0;
-    text-align: center;
-    font-size: 75%;
-}
-
-div.footer a {
-    color: #ffffff;
-    text-decoration: underline;
-}
-
-div.related {
-    background-color: #133f52;
-    line-height: 30px;
-    color: #ffffff;
-}
-
-div.related a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.4em;
-    font-weight: normal;
-    margin: 0;
-    padding: 0;
-}
-
-div.sphinxsidebar h3 a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.3em;
-    font-weight: normal;
-    margin: 5px 0 0 0;
-    padding: 0;
-}
-
-div.sphinxsidebar p {
-    color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
-    margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px;
-    padding: 0;
-    color: #ffffff;
-}
-
-div.sphinxsidebar a {
-    color: #98dbcc;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-
-
-/* -- hyperlink styles ------------------------------------------------------ */
-
-a {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:visited {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-
-
-/* -- body styles ----------------------------------------------------------- */
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: 'Trebuchet MS', sans-serif;
-    background-color: #f2f2f2;
-    font-weight: normal;
-    color: #20435c;
-    border-bottom: 1px solid #ccc;
-    margin: 20px -20px 10px -20px;
-    padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
-    color: #c60f0f;
-    font-size: 0.8em;
-    padding: 0 4px 0 4px;
-    text-decoration: none;
-}
-
-a.headerlink:hover {
-    background-color: #c60f0f;
-    color: white;
-}
-
-div.body p, div.body dd, div.body li, div.body blockquote {
-    text-align: justify;
-    line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
-    display: inline;
-}
-
-div.admonition p {
-    margin-bottom: 5px;
-}
-
-div.admonition pre {
-    margin-bottom: 5px;
-}
-
-div.admonition ul, div.admonition ol {
-    margin-bottom: 5px;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.topic {
-    background-color: #eee;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-p.admonition-title {
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-pre {
-    padding: 5px;
-    background-color: #eeffcc;
-    color: #333333;
-    line-height: 120%;
-    border: 1px solid #ac9;
-    border-left: none;
-    border-right: none;
-}
-
-code {
-    background-color: #ecf0f3;
-    padding: 0 1px 0 1px;
-    font-size: 0.95em;
-}
-
-th {
-    background-color: #ede;
-}
-
-.warning code {
-    background: #efc2c2;
-}
-
-.note code {
-    background: #d6d6d6;
-}
-
-.viewcode-back {
-    font-family: sans-serif;
-}
-
-div.viewcode-block:target {
-    background-color: #f4debf;
-    border-top: 1px solid #ac9;
-    border-bottom: 1px solid #ac9;
-}
-
-div.code-block-caption {
-    color: #efefef;
-    background-color: #1c4e63;
-}

二進制
doc/_build/html/_static/comment-bright.png


二進制
doc/_build/html/_static/comment-close.png


二進制
doc/_build/html/_static/comment.png


+ 0 - 287
doc/_build/html/_static/doctools.js

@@ -1,287 +0,0 @@
-/*
- * doctools.js
- * ~~~~~~~~~~~
- *
- * Sphinx JavaScript utilities for all documentation.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
-if (!window.console || !console.firebug) {
-  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
-    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
-    "profile", "profileEnd"];
-  window.console = {};
-  for (var i = 0; i < names.length; ++i)
-    window.console[names[i]] = function() {};
-}
- */
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
-  return decodeURIComponent(x).replace(/\+/g, ' ');
-};
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
-  if (typeof s == 'undefined')
-    s = document.location.search;
-  var parts = s.substr(s.indexOf('?') + 1).split('&');
-  var result = {};
-  for (var i = 0; i < parts.length; i++) {
-    var tmp = parts[i].split('=', 2);
-    var key = jQuery.urldecode(tmp[0]);
-    var value = jQuery.urldecode(tmp[1]);
-    if (key in result)
-      result[key].push(value);
-    else
-      result[key] = [value];
-  }
-  return result;
-};
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
-  function highlight(node) {
-    if (node.nodeType == 3) {
-      var val = node.nodeValue;
-      var pos = val.toLowerCase().indexOf(text);
-      if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
-        var span = document.createElement("span");
-        span.className = className;
-        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
-        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
-          document.createTextNode(val.substr(pos + text.length)),
-          node.nextSibling));
-        node.nodeValue = val.substr(0, pos);
-      }
-    }
-    else if (!jQuery(node).is("button, select, textarea")) {
-      jQuery.each(node.childNodes, function() {
-        highlight(this);
-      });
-    }
-  }
-  return this.each(function() {
-    highlight(this);
-  });
-};
-
-/*
- * backward compatibility for jQuery.browser
- * This will be supported until firefox bug is fixed.
- */
-if (!jQuery.browser) {
-  jQuery.uaMatch = function(ua) {
-    ua = ua.toLowerCase();
-
-    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
-      /(webkit)[ \/]([\w.]+)/.exec(ua) ||
-      /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
-      /(msie) ([\w.]+)/.exec(ua) ||
-      ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
-      [];
-
-    return {
-      browser: match[ 1 ] || "",
-      version: match[ 2 ] || "0"
-    };
-  };
-  jQuery.browser = {};
-  jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
-}
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
-  init : function() {
-    this.fixFirefoxAnchorBug();
-    this.highlightSearchWords();
-    this.initIndexTable();
-    
-  },
-
-  /**
-   * i18n support
-   */
-  TRANSLATIONS : {},
-  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
-  LOCALE : 'unknown',
-
-  // gettext and ngettext don't access this so that the functions
-  // can safely bound to a different name (_ = Documentation.gettext)
-  gettext : function(string) {
-    var translated = Documentation.TRANSLATIONS[string];
-    if (typeof translated == 'undefined')
-      return string;
-    return (typeof translated == 'string') ? translated : translated[0];
-  },
-
-  ngettext : function(singular, plural, n) {
-    var translated = Documentation.TRANSLATIONS[singular];
-    if (typeof translated == 'undefined')
-      return (n == 1) ? singular : plural;
-    return translated[Documentation.PLURALEXPR(n)];
-  },
-
-  addTranslations : function(catalog) {
-    for (var key in catalog.messages)
-      this.TRANSLATIONS[key] = catalog.messages[key];
-    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
-    this.LOCALE = catalog.locale;
-  },
-
-  /**
-   * add context elements like header anchor links
-   */
-  addContextElements : function() {
-    $('div[id] > :header:first').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this headline')).
-      appendTo(this);
-    });
-    $('dt[id]').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this definition')).
-      appendTo(this);
-    });
-  },
-
-  /**
-   * workaround a firefox stupidity
-   * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
-   */
-  fixFirefoxAnchorBug : function() {
-    if (document.location.hash)
-      window.setTimeout(function() {
-        document.location.href += '';
-      }, 10);
-  },
-
-  /**
-   * highlight the search words provided in the url in the text
-   */
-  highlightSearchWords : function() {
-    var params = $.getQueryParameters();
-    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
-    if (terms.length) {
-      var body = $('div.body');
-      if (!body.length) {
-        body = $('body');
-      }
-      window.setTimeout(function() {
-        $.each(terms, function() {
-          body.highlightText(this.toLowerCase(), 'highlighted');
-        });
-      }, 10);
-      $('<p class="highlight-link"><a href="javascript:Documentation.' +
-        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
-          .appendTo($('#searchbox'));
-    }
-  },
-
-  /**
-   * init the domain index toggle buttons
-   */
-  initIndexTable : function() {
-    var togglers = $('img.toggler').click(function() {
-      var src = $(this).attr('src');
-      var idnum = $(this).attr('id').substr(7);
-      $('tr.cg-' + idnum).toggle();
-      if (src.substr(-9) == 'minus.png')
-        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
-      else
-        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
-    }).css('display', '');
-    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
-        togglers.click();
-    }
-  },
-
-  /**
-   * helper function to hide the search marks again
-   */
-  hideSearchWords : function() {
-    $('#searchbox .highlight-link').fadeOut(300);
-    $('span.highlighted').removeClass('highlighted');
-  },
-
-  /**
-   * make the url absolute
-   */
-  makeURL : function(relativeURL) {
-    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
-  },
-
-  /**
-   * get the current relative url
-   */
-  getCurrentURL : function() {
-    var path = document.location.pathname;
-    var parts = path.split(/\//);
-    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
-      if (this == '..')
-        parts.pop();
-    });
-    var url = parts.join('/');
-    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
-  },
-
-  initOnKeyListeners: function() {
-    $(document).keyup(function(event) {
-      var activeElementType = document.activeElement.tagName;
-      // don't navigate when in search box or textarea
-      if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
-        switch (event.keyCode) {
-          case 37: // left
-            var prevHref = $('link[rel="prev"]').prop('href');
-            if (prevHref) {
-              window.location.href = prevHref;
-              return false;
-            }
-          case 39: // right
-            var nextHref = $('link[rel="next"]').prop('href');
-            if (nextHref) {
-              window.location.href = nextHref;
-              return false;
-            }
-        }
-      }
-    });
-  }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
-  Documentation.init();
-});

二進制
doc/_build/html/_static/down-pressed.png


二進制
doc/_build/html/_static/down.png


二進制
doc/_build/html/_static/file.png


文件差異過大導致無法顯示
+ 0 - 10308
doc/_build/html/_static/jquery-1.11.1.js


文件差異過大導致無法顯示
+ 0 - 4
doc/_build/html/_static/jquery.js


二進制
doc/_build/html/_static/minus.png


+ 0 - 11
doc/_build/html/_static/mystyle.css

@@ -1,11 +0,0 @@
-table.table-with-borders td, table.table-with-borders th {
-    padding: 1px 8px 1px 5px;
-    border-top: 1px solid #aaa;
-    border-left: 1px solid #aaa;
-    border-right: 1px solid #aaa;
-    border-bottom: 1px solid #aaa;
-}
-
-table.table-with-borders td:blank {
-    background-color: grey;
-}

二進制
doc/_build/html/_static/plus.png


+ 0 - 63
doc/_build/html/_static/pygments.css

@@ -1,63 +0,0 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight  { background: #eeffcc; }
-.highlight .c { color: #408090; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #007020; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #007020 } /* Comment.Preproc */
-.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #333333 } /* Generic.Output */
-.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
-.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #007020 } /* Keyword.Pseudo */
-.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #902000 } /* Keyword.Type */
-.highlight .m { color: #208050 } /* Literal.Number */
-.highlight .s { color: #4070a0 } /* Literal.String */
-.highlight .na { color: #4070a0 } /* Name.Attribute */
-.highlight .nb { color: #007020 } /* Name.Builtin */
-.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.highlight .no { color: #60add5 } /* Name.Constant */
-.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #007020 } /* Name.Exception */
-.highlight .nf { color: #06287e } /* Name.Function */
-.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
-.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #bb60d5 } /* Name.Variable */
-.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mb { color: #208050 } /* Literal.Number.Bin */
-.highlight .mf { color: #208050 } /* Literal.Number.Float */
-.highlight .mh { color: #208050 } /* Literal.Number.Hex */
-.highlight .mi { color: #208050 } /* Literal.Number.Integer */
-.highlight .mo { color: #208050 } /* Literal.Number.Oct */
-.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
-.highlight .sc { color: #4070a0 } /* Literal.String.Char */
-.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
-.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
-.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.highlight .sx { color: #c65d09 } /* Literal.String.Other */
-.highlight .sr { color: #235388 } /* Literal.String.Regex */
-.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
-.highlight .ss { color: #517918 } /* Literal.String.Symbol */
-.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
-.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
-.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
-.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */

+ 0 - 651
doc/_build/html/_static/searchtools.js

@@ -1,651 +0,0 @@
-/*
- * searchtools.js_t
- * ~~~~~~~~~~~~~~~~
- *
- * Sphinx JavaScript utilities for the full-text search.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-
-/* Non-minified version JS is _stemmer.js if file is provided */ 
-/**
- * Porter Stemmer
- */
-var Stemmer = function() {
-
-  var step2list = {
-    ational: 'ate',
-    tional: 'tion',
-    enci: 'ence',
-    anci: 'ance',
-    izer: 'ize',
-    bli: 'ble',
-    alli: 'al',
-    entli: 'ent',
-    eli: 'e',
-    ousli: 'ous',
-    ization: 'ize',
-    ation: 'ate',
-    ator: 'ate',
-    alism: 'al',
-    iveness: 'ive',
-    fulness: 'ful',
-    ousness: 'ous',
-    aliti: 'al',
-    iviti: 'ive',
-    biliti: 'ble',
-    logi: 'log'
-  };
-
-  var step3list = {
-    icate: 'ic',
-    ative: '',
-    alize: 'al',
-    iciti: 'ic',
-    ical: 'ic',
-    ful: '',
-    ness: ''
-  };
-
-  var c = "[^aeiou]";          // consonant
-  var v = "[aeiouy]";          // vowel
-  var C = c + "[^aeiouy]*";    // consonant sequence
-  var V = v + "[aeiou]*";      // vowel sequence
-
-  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
-  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
-  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
-  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
-
-  this.stemWord = function (w) {
-    var stem;
-    var suffix;
-    var firstch;
-    var origword = w;
-
-    if (w.length < 3)
-      return w;
-
-    var re;
-    var re2;
-    var re3;
-    var re4;
-
-    firstch = w.substr(0,1);
-    if (firstch == "y")
-      w = firstch.toUpperCase() + w.substr(1);
-
-    // Step 1a
-    re = /^(.+?)(ss|i)es$/;
-    re2 = /^(.+?)([^s])s$/;
-
-    if (re.test(w))
-      w = w.replace(re,"$1$2");
-    else if (re2.test(w))
-      w = w.replace(re2,"$1$2");
-
-    // Step 1b
-    re = /^(.+?)eed$/;
-    re2 = /^(.+?)(ed|ing)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      re = new RegExp(mgr0);
-      if (re.test(fp[1])) {
-        re = /.$/;
-        w = w.replace(re,"");
-      }
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1];
-      re2 = new RegExp(s_v);
-      if (re2.test(stem)) {
-        w = stem;
-        re2 = /(at|bl|iz)$/;
-        re3 = new RegExp("([^aeiouylsz])\\1$");
-        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-        if (re2.test(w))
-          w = w + "e";
-        else if (re3.test(w)) {
-          re = /.$/;
-          w = w.replace(re,"");
-        }
-        else if (re4.test(w))
-          w = w + "e";
-      }
-    }
-
-    // Step 1c
-    re = /^(.+?)y$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(s_v);
-      if (re.test(stem))
-        w = stem + "i";
-    }
-
-    // Step 2
-    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step2list[suffix];
-    }
-
-    // Step 3
-    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step3list[suffix];
-    }
-
-    // Step 4
-    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
-    re2 = /^(.+?)(s|t)(ion)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      if (re.test(stem))
-        w = stem;
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1] + fp[2];
-      re2 = new RegExp(mgr1);
-      if (re2.test(stem))
-        w = stem;
-    }
-
-    // Step 5
-    re = /^(.+?)e$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      re2 = new RegExp(meq1);
-      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
-        w = stem;
-    }
-    re = /ll$/;
-    re2 = new RegExp(mgr1);
-    if (re.test(w) && re2.test(w)) {
-      re = /.$/;
-      w = w.replace(re,"");
-    }
-
-    // and turn initial Y back to y
-    if (firstch == "y")
-      w = firstch.toLowerCase() + w.substr(1);
-    return w;
-  }
-}
-
-
-
-/**
- * Simple result scoring code.
- */
-var Scorer = {
-  // Implement the following function to further tweak the score for each result
-  // The function takes a result array [filename, title, anchor, descr, score]
-  // and returns the new score.
-  /*
-  score: function(result) {
-    return result[4];
-  },
-  */
-
-  // query matches the full name of an object
-  objNameMatch: 11,
-  // or matches in the last dotted part of the object name
-  objPartialMatch: 6,
-  // Additive scores depending on the priority of the object
-  objPrio: {0:  15,   // used to be importantResults
-            1:  5,   // used to be objectResults
-            2: -5},  // used to be unimportantResults
-  //  Used when the priority is not in the mapping.
-  objPrioDefault: 0,
-
-  // query found in title
-  title: 15,
-  // query found in terms
-  term: 5
-};
-
-
-/**
- * Search Module
- */
-var Search = {
-
-  _index : null,
-  _queued_query : null,
-  _pulse_status : -1,
-
-  init : function() {
-      var params = $.getQueryParameters();
-      if (params.q) {
-          var query = params.q[0];
-          $('input[name="q"]')[0].value = query;
-          this.performSearch(query);
-      }
-  },
-
-  loadIndex : function(url) {
-    $.ajax({type: "GET", url: url, data: null,
-            dataType: "script", cache: true,
-            complete: function(jqxhr, textstatus) {
-              if (textstatus != "success") {
-                document.getElementById("searchindexloader").src = url;
-              }
-            }});
-  },
-
-  setIndex : function(index) {
-    var q;
-    this._index = index;
-    if ((q = this._queued_query) !== null) {
-      this._queued_query = null;
-      Search.query(q);
-    }
-  },
-
-  hasIndex : function() {
-      return this._index !== null;
-  },
-
-  deferQuery : function(query) {
-      this._queued_query = query;
-  },
-
-  stopPulse : function() {
-      this._pulse_status = 0;
-  },
-
-  startPulse : function() {
-    if (this._pulse_status >= 0)
-        return;
-    function pulse() {
-      var i;
-      Search._pulse_status = (Search._pulse_status + 1) % 4;
-      var dotString = '';
-      for (i = 0; i < Search._pulse_status; i++)
-        dotString += '.';
-      Search.dots.text(dotString);
-      if (Search._pulse_status > -1)
-        window.setTimeout(pulse, 500);
-    }
-    pulse();
-  },
-
-  /**
-   * perform a search for something (or wait until index is loaded)
-   */
-  performSearch : function(query) {
-    // create the required interface elements
-    this.out = $('#search-results');
-    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
-    this.dots = $('<span></span>').appendTo(this.title);
-    this.status = $('<p style="display: none"></p>').appendTo(this.out);
-    this.output = $('<ul class="search"/>').appendTo(this.out);
-
-    $('#search-progress').text(_('Preparing search...'));
-    this.startPulse();
-
-    // index already loaded, the browser was quick!
-    if (this.hasIndex())
-      this.query(query);
-    else
-      this.deferQuery(query);
-  },
-
-  /**
-   * execute search (requires search index to be loaded)
-   */
-  query : function(query) {
-    var i;
-    var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
-
-    // stem the searchterms and add them to the correct list
-    var stemmer = new Stemmer();
-    var searchterms = [];
-    var excluded = [];
-    var hlterms = [];
-    var tmp = query.split(/\s+/);
-    var objectterms = [];
-    for (i = 0; i < tmp.length; i++) {
-      if (tmp[i] !== "") {
-          objectterms.push(tmp[i].toLowerCase());
-      }
-
-      if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
-          tmp[i] === "") {
-        // skip this "word"
-        continue;
-      }
-      // stem the word
-      var word = stemmer.stemWord(tmp[i].toLowerCase());
-      var toAppend;
-      // select the correct list
-      if (word[0] == '-') {
-        toAppend = excluded;
-        word = word.substr(1);
-      }
-      else {
-        toAppend = searchterms;
-        hlterms.push(tmp[i].toLowerCase());
-      }
-      // only add if not already in the list
-      if (!$u.contains(toAppend, word))
-        toAppend.push(word);
-    }
-    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
-
-    // console.debug('SEARCH: searching for:');
-    // console.info('required: ', searchterms);
-    // console.info('excluded: ', excluded);
-
-    // prepare search
-    var terms = this._index.terms;
-    var titleterms = this._index.titleterms;
-
-    // array of [filename, title, anchor, descr, score]
-    var results = [];
-    $('#search-progress').empty();
-
-    // lookup as object
-    for (i = 0; i < objectterms.length; i++) {
-      var others = [].concat(objectterms.slice(0, i),
-                             objectterms.slice(i+1, objectterms.length));
-      results = results.concat(this.performObjectSearch(objectterms[i], others));
-    }
-
-    // lookup as search terms in fulltext
-    results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
-
-    // let the scorer override scores with a custom scoring function
-    if (Scorer.score) {
-      for (i = 0; i < results.length; i++)
-        results[i][4] = Scorer.score(results[i]);
-    }
-
-    // now sort the results by score (in opposite order of appearance, since the
-    // display function below uses pop() to retrieve items) and then
-    // alphabetically
-    results.sort(function(a, b) {
-      var left = a[4];
-      var right = b[4];
-      if (left > right) {
-        return 1;
-      } else if (left < right) {
-        return -1;
-      } else {
-        // same score: sort alphabetically
-        left = a[1].toLowerCase();
-        right = b[1].toLowerCase();
-        return (left > right) ? -1 : ((left < right) ? 1 : 0);
-      }
-    });
-
-    // for debugging
-    //Search.lastresults = results.slice();  // a copy
-    //console.info('search results:', Search.lastresults);
-
-    // print the results
-    var resultCount = results.length;
-    function displayNextItem() {
-      // results left, load the summary and display it
-      if (results.length) {
-        var item = results.pop();
-        var listItem = $('<li style="display:none"></li>');
-        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
-          // dirhtml builder
-          var dirname = item[0] + '/';
-          if (dirname.match(/\/index\/$/)) {
-            dirname = dirname.substring(0, dirname.length-6);
-          } else if (dirname == 'index/') {
-            dirname = '';
-          }
-          listItem.append($('<a/>').attr('href',
-            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
-            highlightstring + item[2]).html(item[1]));
-        } else {
-          // normal html builders
-          listItem.append($('<a/>').attr('href',
-            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
-            highlightstring + item[2]).html(item[1]));
-        }
-        if (item[3]) {
-          listItem.append($('<span> (' + item[3] + ')</span>'));
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
-                  dataType: "text",
-                  complete: function(jqxhr, textstatus) {
-                    var data = jqxhr.responseText;
-                    if (data !== '' && data !== undefined) {
-                      listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
-                    }
-                    Search.output.append(listItem);
-                    listItem.slideDown(5, function() {
-                      displayNextItem();
-                    });
-                  }});
-        } else {
-          // no source available, just display title
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        }
-      }
-      // search finished, update title and status message
-      else {
-        Search.stopPulse();
-        Search.title.text(_('Search Results'));
-        if (!resultCount)
-          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
-        else
-            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
-        Search.status.fadeIn(500);
-      }
-    }
-    displayNextItem();
-  },
-
-  /**
-   * search for object names
-   */
-  performObjectSearch : function(object, otherterms) {
-    var filenames = this._index.filenames;
-    var objects = this._index.objects;
-    var objnames = this._index.objnames;
-    var titles = this._index.titles;
-
-    var i;
-    var results = [];
-
-    for (var prefix in objects) {
-      for (var name in objects[prefix]) {
-        var fullname = (prefix ? prefix + '.' : '') + name;
-        if (fullname.toLowerCase().indexOf(object) > -1) {
-          var score = 0;
-          var parts = fullname.split('.');
-          // check for different match types: exact matches of full name or
-          // "last name" (i.e. last dotted part)
-          if (fullname == object || parts[parts.length - 1] == object) {
-            score += Scorer.objNameMatch;
-          // matches in last name
-          } else if (parts[parts.length - 1].indexOf(object) > -1) {
-            score += Scorer.objPartialMatch;
-          }
-          var match = objects[prefix][name];
-          var objname = objnames[match[1]][2];
-          var title = titles[match[0]];
-          // If more than one term searched for, we require other words to be
-          // found in the name/title/description
-          if (otherterms.length > 0) {
-            var haystack = (prefix + ' ' + name + ' ' +
-                            objname + ' ' + title).toLowerCase();
-            var allfound = true;
-            for (i = 0; i < otherterms.length; i++) {
-              if (haystack.indexOf(otherterms[i]) == -1) {
-                allfound = false;
-                break;
-              }
-            }
-            if (!allfound) {
-              continue;
-            }
-          }
-          var descr = objname + _(', in ') + title;
-
-          var anchor = match[3];
-          if (anchor === '')
-            anchor = fullname;
-          else if (anchor == '-')
-            anchor = objnames[match[1]][1] + '-' + fullname;
-          // add custom score for some objects according to scorer
-          if (Scorer.objPrio.hasOwnProperty(match[2])) {
-            score += Scorer.objPrio[match[2]];
-          } else {
-            score += Scorer.objPrioDefault;
-          }
-          results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]);
-        }
-      }
-    }
-
-    return results;
-  },
-
-  /**
-   * search for full-text terms in the index
-   */
-  performTermsSearch : function(searchterms, excluded, terms, titleterms) {
-    var filenames = this._index.filenames;
-    var titles = this._index.titles;
-
-    var i, j, file;
-    var fileMap = {};
-    var scoreMap = {};
-    var results = [];
-
-    // perform the search on the required terms
-    for (i = 0; i < searchterms.length; i++) {
-      var word = searchterms[i];
-      var files = [];
-      var _o = [
-        {files: terms[word], score: Scorer.term},
-        {files: titleterms[word], score: Scorer.title}
-      ];
-
-      // no match but word was a required one
-      if ($u.every(_o, function(o){return o.files === undefined;})) {
-        break;
-      }
-      // found search word in contents
-      $u.each(_o, function(o) {
-        var _files = o.files;
-        if (_files === undefined)
-          return
-
-        if (_files.length === undefined)
-          _files = [_files];
-        files = files.concat(_files);
-
-        // set score for the word in each file to Scorer.term
-        for (j = 0; j < _files.length; j++) {
-          file = _files[j];
-          if (!(file in scoreMap))
-            scoreMap[file] = {}
-          scoreMap[file][word] = o.score;
-        }
-      });
-
-      // create the mapping
-      for (j = 0; j < files.length; j++) {
-        file = files[j];
-        if (file in fileMap)
-          fileMap[file].push(word);
-        else
-          fileMap[file] = [word];
-      }
-    }
-
-    // now check if the files don't contain excluded terms
-    for (file in fileMap) {
-      var valid = true;
-
-      // check if all requirements are matched
-      if (fileMap[file].length != searchterms.length)
-          continue;
-
-      // ensure that none of the excluded terms is in the search result
-      for (i = 0; i < excluded.length; i++) {
-        if (terms[excluded[i]] == file ||
-            titleterms[excluded[i]] == file ||
-            $u.contains(terms[excluded[i]] || [], file) ||
-            $u.contains(titleterms[excluded[i]] || [], file)) {
-          valid = false;
-          break;
-        }
-      }
-
-      // if we have still a valid result we can add it to the result list
-      if (valid) {
-        // select one (max) score for the file.
-        // for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
-        var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
-        results.push([filenames[file], titles[file], '', null, score]);
-      }
-    }
-    return results;
-  },
-
-  /**
-   * helper function to return a node containing the
-   * search summary for a given text. keywords is a list
-   * of stemmed words, hlwords is the list of normal, unstemmed
-   * words. the first one is used to find the occurrence, the
-   * latter for highlighting it.
-   */
-  makeSearchSummary : function(text, keywords, hlwords) {
-    var textLower = text.toLowerCase();
-    var start = 0;
-    $.each(keywords, function() {
-      var i = textLower.indexOf(this.toLowerCase());
-      if (i > -1)
-        start = i;
-    });
-    start = Math.max(start - 120, 0);
-    var excerpt = ((start > 0) ? '...' : '') +
-      $.trim(text.substr(start, 240)) +
-      ((start + 240 - text.length) ? '...' : '');
-    var rv = $('<div class="context"></div>').text(excerpt);
-    $.each(hlwords, function() {
-      rv = rv.highlightText(this, 'highlighted');
-    });
-    return rv;
-  }
-};
-
-$(document).ready(function() {
-  Search.init();
-});

+ 0 - 159
doc/_build/html/_static/sidebar.js

@@ -1,159 +0,0 @@
-/*
- * sidebar.js
- * ~~~~~~~~~~
- *
- * This script makes the Sphinx sidebar collapsible.
- *
- * .sphinxsidebar contains .sphinxsidebarwrapper.  This script adds
- * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
- * used to collapse and expand the sidebar.
- *
- * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
- * and the width of the sidebar and the margin-left of the document
- * are decreased. When the sidebar is expanded the opposite happens.
- * This script saves a per-browser/per-session cookie used to
- * remember the position of the sidebar among the pages.
- * Once the browser is closed the cookie is deleted and the position
- * reset to the default (expanded).
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-$(function() {
-  
-  
-  
-  
-  
-  
-  
-
-  // global elements used by the functions.
-  // the 'sidebarbutton' element is defined as global after its
-  // creation, in the add_sidebar_button function
-  var bodywrapper = $('.bodywrapper');
-  var sidebar = $('.sphinxsidebar');
-  var sidebarwrapper = $('.sphinxsidebarwrapper');
-
-  // for some reason, the document has no sidebar; do not run into errors
-  if (!sidebar.length) return;
-
-  // original margin-left of the bodywrapper and width of the sidebar
-  // with the sidebar expanded
-  var bw_margin_expanded = bodywrapper.css('margin-left');
-  var ssb_width_expanded = sidebar.width();
-
-  // margin-left of the bodywrapper and width of the sidebar
-  // with the sidebar collapsed
-  var bw_margin_collapsed = '.8em';
-  var ssb_width_collapsed = '.8em';
-
-  // colors used by the current theme
-  var dark_color = $('.related').css('background-color');
-  var light_color = $('.document').css('background-color');
-
-  function sidebar_is_collapsed() {
-    return sidebarwrapper.is(':not(:visible)');
-  }
-
-  function toggle_sidebar() {
-    if (sidebar_is_collapsed())
-      expand_sidebar();
-    else
-      collapse_sidebar();
-  }
-
-  function collapse_sidebar() {
-    sidebarwrapper.hide();
-    sidebar.css('width', ssb_width_collapsed);
-    bodywrapper.css('margin-left', bw_margin_collapsed);
-    sidebarbutton.css({
-        'margin-left': '0',
-        'height': bodywrapper.height()
-    });
-    sidebarbutton.find('span').text('»');
-    sidebarbutton.attr('title', _('Expand sidebar'));
-    document.cookie = 'sidebar=collapsed';
-  }
-
-  function expand_sidebar() {
-    bodywrapper.css('margin-left', bw_margin_expanded);
-    sidebar.css('width', ssb_width_expanded);
-    sidebarwrapper.show();
-    sidebarbutton.css({
-        'margin-left': ssb_width_expanded-12,
-        'height': bodywrapper.height()
-    });
-    sidebarbutton.find('span').text('«');
-    sidebarbutton.attr('title', _('Collapse sidebar'));
-    document.cookie = 'sidebar=expanded';
-  }
-
-  function add_sidebar_button() {
-    sidebarwrapper.css({
-        'float': 'left',
-        'margin-right': '0',
-        'width': ssb_width_expanded - 28
-    });
-    // create the button
-    sidebar.append(
-        '<div id="sidebarbutton"><span>&laquo;</span></div>'
-    );
-    var sidebarbutton = $('#sidebarbutton');
-    light_color = sidebarbutton.css('background-color');
-    // find the height of the viewport to center the '<<' in the page
-    var viewport_height;
-    if (window.innerHeight)
- 	  viewport_height = window.innerHeight;
-    else
-	  viewport_height = $(window).height();
-    sidebarbutton.find('span').css({
-        'display': 'block',
-        'margin-top': (viewport_height - sidebar.position().top - 20) / 2
-    });
-
-    sidebarbutton.click(toggle_sidebar);
-    sidebarbutton.attr('title', _('Collapse sidebar'));
-    sidebarbutton.css({
-        'color': '#FFFFFF',
-        'border-left': '1px solid ' + dark_color,
-        'font-size': '1.2em',
-        'cursor': 'pointer',
-        'height': bodywrapper.height(),
-        'padding-top': '1px',
-        'margin-left': ssb_width_expanded - 12
-    });
-
-    sidebarbutton.hover(
-      function () {
-          $(this).css('background-color', dark_color);
-      },
-      function () {
-          $(this).css('background-color', light_color);
-      }
-    );
-  }
-
-  function set_position_from_cookie() {
-    if (!document.cookie)
-      return;
-    var items = document.cookie.split(';');
-    for(var k=0; k<items.length; k++) {
-      var key_val = items[k].split('=');
-      var key = key_val[0].replace(/ /, "");  // strip leading spaces
-      if (key == 'sidebar') {
-        var value = key_val[1];
-        if ((value == 'collapsed') && (!sidebar_is_collapsed()))
-          collapse_sidebar();
-        else if ((value == 'expanded') && (sidebar_is_collapsed()))
-          expand_sidebar();
-      }
-    }
-  }
-
-  add_sidebar_button();
-  var sidebarbutton = $('#sidebarbutton');
-  set_position_from_cookie();
-});

文件差異過大導致無法顯示
+ 0 - 999
doc/_build/html/_static/underscore-1.3.1.js


文件差異過大導致無法顯示
+ 0 - 31
doc/_build/html/_static/underscore.js


二進制
doc/_build/html/_static/up-pressed.png


二進制
doc/_build/html/_static/up.png


+ 0 - 808
doc/_build/html/_static/websupport.js

@@ -1,808 +0,0 @@
-/*
- * websupport.js
- * ~~~~~~~~~~~~~
- *
- * sphinx.websupport utilities for all documentation.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-(function($) {
-  $.fn.autogrow = function() {
-    return this.each(function() {
-    var textarea = this;
-
-    $.fn.autogrow.resize(textarea);
-
-    $(textarea)
-      .focus(function() {
-        textarea.interval = setInterval(function() {
-          $.fn.autogrow.resize(textarea);
-        }, 500);
-      })
-      .blur(function() {
-        clearInterval(textarea.interval);
-      });
-    });
-  };
-
-  $.fn.autogrow.resize = function(textarea) {
-    var lineHeight = parseInt($(textarea).css('line-height'), 10);
-    var lines = textarea.value.split('\n');
-    var columns = textarea.cols;
-    var lineCount = 0;
-    $.each(lines, function() {
-      lineCount += Math.ceil(this.length / columns) || 1;
-    });
-    var height = lineHeight * (lineCount + 1);
-    $(textarea).css('height', height);
-  };
-})(jQuery);
-
-(function($) {
-  var comp, by;
-
-  function init() {
-    initEvents();
-    initComparator();
-  }
-
-  function initEvents() {
-    $(document).on("click", 'a.comment-close', function(event) {
-      event.preventDefault();
-      hide($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.vote', function(event) {
-      event.preventDefault();
-      handleVote($(this));
-    });
-    $(document).on("click", 'a.reply', function(event) {
-      event.preventDefault();
-      openReply($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.close-reply', function(event) {
-      event.preventDefault();
-      closeReply($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.sort-option', function(event) {
-      event.preventDefault();
-      handleReSort($(this));
-    });
-    $(document).on("click", 'a.show-proposal', function(event) {
-      event.preventDefault();
-      showProposal($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.hide-proposal', function(event) {
-      event.preventDefault();
-      hideProposal($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.show-propose-change', function(event) {
-      event.preventDefault();
-      showProposeChange($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.hide-propose-change', function(event) {
-      event.preventDefault();
-      hideProposeChange($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.accept-comment', function(event) {
-      event.preventDefault();
-      acceptComment($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.delete-comment', function(event) {
-      event.preventDefault();
-      deleteComment($(this).attr('id').substring(2));
-    });
-    $(document).on("click", 'a.comment-markup', function(event) {
-      event.preventDefault();
-      toggleCommentMarkupBox($(this).attr('id').substring(2));
-    });
-  }
-
-  /**
-   * Set comp, which is a comparator function used for sorting and
-   * inserting comments into the list.
-   */
-  function setComparator() {
-    // If the first three letters are "asc", sort in ascending order
-    // and remove the prefix.
-    if (by.substring(0,3) == 'asc') {
-      var i = by.substring(3);
-      comp = function(a, b) { return a[i] - b[i]; };
-    } else {
-      // Otherwise sort in descending order.
-      comp = function(a, b) { return b[by] - a[by]; };
-    }
-
-    // Reset link styles and format the selected sort option.
-    $('a.sel').attr('href', '#').removeClass('sel');
-    $('a.by' + by).removeAttr('href').addClass('sel');
-  }
-
-  /**
-   * Create a comp function. If the user has preferences stored in
-   * the sortBy cookie, use those, otherwise use the default.
-   */
-  function initComparator() {
-    by = 'rating'; // Default to sort by rating.
-    // If the sortBy cookie is set, use that instead.
-    if (document.cookie.length > 0) {
-      var start = document.cookie.indexOf('sortBy=');
-      if (start != -1) {
-        start = start + 7;
-        var end = document.cookie.indexOf(";", start);
-        if (end == -1) {
-          end = document.cookie.length;
-          by = unescape(document.cookie.substring(start, end));
-        }
-      }
-    }
-    setComparator();
-  }
-
-  /**
-   * Show a comment div.
-   */
-  function show(id) {
-    $('#ao' + id).hide();
-    $('#ah' + id).show();
-    var context = $.extend({id: id}, opts);
-    var popup = $(renderTemplate(popupTemplate, context)).hide();
-    popup.find('textarea[name="proposal"]').hide();
-    popup.find('a.by' + by).addClass('sel');
-    var form = popup.find('#cf' + id);
-    form.submit(function(event) {
-      event.preventDefault();
-      addComment(form);
-    });
-    $('#s' + id).after(popup);
-    popup.slideDown('fast', function() {
-      getComments(id);
-    });
-  }
-
-  /**
-   * Hide a comment div.
-   */
-  function hide(id) {
-    $('#ah' + id).hide();
-    $('#ao' + id).show();
-    var div = $('#sc' + id);
-    div.slideUp('fast', function() {
-      div.remove();
-    });
-  }
-
-  /**
-   * Perform an ajax request to get comments for a node
-   * and insert the comments into the comments tree.
-   */
-  function getComments(id) {
-    $.ajax({
-     type: 'GET',
-     url: opts.getCommentsURL,
-     data: {node: id},
-     success: function(data, textStatus, request) {
-       var ul = $('#cl' + id);
-       var speed = 100;
-       $('#cf' + id)
-         .find('textarea[name="proposal"]')
-         .data('source', data.source);
-
-       if (data.comments.length === 0) {
-         ul.html('<li>No comments yet.</li>');
-         ul.data('empty', true);
-       } else {
-         // If there are comments, sort them and put them in the list.
-         var comments = sortComments(data.comments);
-         speed = data.comments.length * 100;
-         appendComments(comments, ul);
-         ul.data('empty', false);
-       }
-       $('#cn' + id).slideUp(speed + 200);
-       ul.slideDown(speed);
-     },
-     error: function(request, textStatus, error) {
-       showError('Oops, there was a problem retrieving the comments.');
-     },
-     dataType: 'json'
-    });
-  }
-
-  /**
-   * Add a comment via ajax and insert the comment into the comment tree.
-   */
-  function addComment(form) {
-    var node_id = form.find('input[name="node"]').val();
-    var parent_id = form.find('input[name="parent"]').val();
-    var text = form.find('textarea[name="comment"]').val();
-    var proposal = form.find('textarea[name="proposal"]').val();
-
-    if (text == '') {
-      showError('Please enter a comment.');
-      return;
-    }
-
-    // Disable the form that is being submitted.
-    form.find('textarea,input').attr('disabled', 'disabled');
-
-    // Send the comment to the server.
-    $.ajax({
-      type: "POST",
-      url: opts.addCommentURL,
-      dataType: 'json',
-      data: {
-        node: node_id,
-        parent: parent_id,
-        text: text,
-        proposal: proposal
-      },
-      success: function(data, textStatus, error) {
-        // Reset the form.
-        if (node_id) {
-          hideProposeChange(node_id);
-        }
-        form.find('textarea')
-          .val('')
-          .add(form.find('input'))
-          .removeAttr('disabled');
-	var ul = $('#cl' + (node_id || parent_id));
-        if (ul.data('empty')) {
-          $(ul).empty();
-          ul.data('empty', false);
-        }
-        insertComment(data.comment);
-        var ao = $('#ao' + node_id);
-        ao.find('img').attr({'src': opts.commentBrightImage});
-        if (node_id) {
-          // if this was a "root" comment, remove the commenting box
-          // (the user can get it back by reopening the comment popup)
-          $('#ca' + node_id).slideUp();
-        }
-      },
-      error: function(request, textStatus, error) {
-        form.find('textarea,input').removeAttr('disabled');
-        showError('Oops, there was a problem adding the comment.');
-      }
-    });
-  }
-
-  /**
-   * Recursively append comments to the main comment list and children
-   * lists, creating the comment tree.
-   */
-  function appendComments(comments, ul) {
-    $.each(comments, function() {
-      var div = createCommentDiv(this);
-      ul.append($(document.createElement('li')).html(div));
-      appendComments(this.children, div.find('ul.comment-children'));
-      // To avoid stagnating data, don't store the comments children in data.
-      this.children = null;
-      div.data('comment', this);
-    });
-  }
-
-  /**
-   * After adding a new comment, it must be inserted in the correct
-   * location in the comment tree.
-   */
-  function insertComment(comment) {
-    var div = createCommentDiv(comment);
-
-    // To avoid stagnating data, don't store the comments children in data.
-    comment.children = null;
-    div.data('comment', comment);
-
-    var ul = $('#cl' + (comment.node || comment.parent));
-    var siblings = getChildren(ul);
-
-    var li = $(document.createElement('li'));
-    li.hide();
-
-    // Determine where in the parents children list to insert this comment.
-    for(i=0; i < siblings.length; i++) {
-      if (comp(comment, siblings[i]) <= 0) {
-        $('#cd' + siblings[i].id)
-          .parent()
-          .before(li.html(div));
-        li.slideDown('fast');
-        return;
-      }
-    }
-
-    // If we get here, this comment rates lower than all the others,
-    // or it is the only comment in the list.
-    ul.append(li.html(div));
-    li.slideDown('fast');
-  }
-
-  function acceptComment(id) {
-    $.ajax({
-      type: 'POST',
-      url: opts.acceptCommentURL,
-      data: {id: id},
-      success: function(data, textStatus, request) {
-        $('#cm' + id).fadeOut('fast');
-        $('#cd' + id).removeClass('moderate');
-      },
-      error: function(request, textStatus, error) {
-        showError('Oops, there was a problem accepting the comment.');
-      }
-    });
-  }
-
-  function deleteComment(id) {
-    $.ajax({
-      type: 'POST',
-      url: opts.deleteCommentURL,
-      data: {id: id},
-      success: function(data, textStatus, request) {
-        var div = $('#cd' + id);
-        if (data == 'delete') {
-          // Moderator mode: remove the comment and all children immediately
-          div.slideUp('fast', function() {
-            div.remove();
-          });
-          return;
-        }
-        // User mode: only mark the comment as deleted
-        div
-          .find('span.user-id:first')
-          .text('[deleted]').end()
-          .find('div.comment-text:first')
-          .text('[deleted]').end()
-          .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
-                ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
-          .remove();
-        var comment = div.data('comment');
-        comment.username = '[deleted]';
-        comment.text = '[deleted]';
-        div.data('comment', comment);
-      },
-      error: function(request, textStatus, error) {
-        showError('Oops, there was a problem deleting the comment.');
-      }
-    });
-  }
-
-  function showProposal(id) {
-    $('#sp' + id).hide();
-    $('#hp' + id).show();
-    $('#pr' + id).slideDown('fast');
-  }
-
-  function hideProposal(id) {
-    $('#hp' + id).hide();
-    $('#sp' + id).show();
-    $('#pr' + id).slideUp('fast');
-  }
-
-  function showProposeChange(id) {
-    $('#pc' + id).hide();
-    $('#hc' + id).show();
-    var textarea = $('#pt' + id);
-    textarea.val(textarea.data('source'));
-    $.fn.autogrow.resize(textarea[0]);
-    textarea.slideDown('fast');
-  }
-
-  function hideProposeChange(id) {
-    $('#hc' + id).hide();
-    $('#pc' + id).show();
-    var textarea = $('#pt' + id);
-    textarea.val('').removeAttr('disabled');
-    textarea.slideUp('fast');
-  }
-
-  function toggleCommentMarkupBox(id) {
-    $('#mb' + id).toggle();
-  }
-
-  /** Handle when the user clicks on a sort by link. */
-  function handleReSort(link) {
-    var classes = link.attr('class').split(/\s+/);
-    for (var i=0; i<classes.length; i++) {
-      if (classes[i] != 'sort-option') {
-	by = classes[i].substring(2);
-      }
-    }
-    setComparator();
-    // Save/update the sortBy cookie.
-    var expiration = new Date();
-    expiration.setDate(expiration.getDate() + 365);
-    document.cookie= 'sortBy=' + escape(by) +
-                     ';expires=' + expiration.toUTCString();
-    $('ul.comment-ul').each(function(index, ul) {
-      var comments = getChildren($(ul), true);
-      comments = sortComments(comments);
-      appendComments(comments, $(ul).empty());
-    });
-  }
-
-  /**
-   * Function to process a vote when a user clicks an arrow.
-   */
-  function handleVote(link) {
-    if (!opts.voting) {
-      showError("You'll need to login to vote.");
-      return;
-    }
-
-    var id = link.attr('id');
-    if (!id) {
-      // Didn't click on one of the voting arrows.
-      return;
-    }
-    // If it is an unvote, the new vote value is 0,
-    // Otherwise it's 1 for an upvote, or -1 for a downvote.
-    var value = 0;
-    if (id.charAt(1) != 'u') {
-      value = id.charAt(0) == 'u' ? 1 : -1;
-    }
-    // The data to be sent to the server.
-    var d = {
-      comment_id: id.substring(2),
-      value: value
-    };
-
-    // Swap the vote and unvote links.
-    link.hide();
-    $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
-      .show();
-
-    // The div the comment is displayed in.
-    var div = $('div#cd' + d.comment_id);
-    var data = div.data('comment');
-
-    // If this is not an unvote, and the other vote arrow has
-    // already been pressed, unpress it.
-    if ((d.value !== 0) && (data.vote === d.value * -1)) {
-      $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
-      $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
-    }
-
-    // Update the comments rating in the local data.
-    data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
-    data.vote = d.value;
-    div.data('comment', data);
-
-    // Change the rating text.
-    div.find('.rating:first')
-      .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
-
-    // Send the vote information to the server.
-    $.ajax({
-      type: "POST",
-      url: opts.processVoteURL,
-      data: d,
-      error: function(request, textStatus, error) {
-        showError('Oops, there was a problem casting that vote.');
-      }
-    });
-  }
-
-  /**
-   * Open a reply form used to reply to an existing comment.
-   */
-  function openReply(id) {
-    // Swap out the reply link for the hide link
-    $('#rl' + id).hide();
-    $('#cr' + id).show();
-
-    // Add the reply li to the children ul.
-    var div = $(renderTemplate(replyTemplate, {id: id})).hide();
-    $('#cl' + id)
-      .prepend(div)
-      // Setup the submit handler for the reply form.
-      .find('#rf' + id)
-      .submit(function(event) {
-        event.preventDefault();
-        addComment($('#rf' + id));
-        closeReply(id);
-      })
-      .find('input[type=button]')
-      .click(function() {
-        closeReply(id);
-      });
-    div.slideDown('fast', function() {
-      $('#rf' + id).find('textarea').focus();
-    });
-  }
-
-  /**
-   * Close the reply form opened with openReply.
-   */
-  function closeReply(id) {
-    // Remove the reply div from the DOM.
-    $('#rd' + id).slideUp('fast', function() {
-      $(this).remove();
-    });
-
-    // Swap out the hide link for the reply link
-    $('#cr' + id).hide();
-    $('#rl' + id).show();
-  }
-
-  /**
-   * Recursively sort a tree of comments using the comp comparator.
-   */
-  function sortComments(comments) {
-    comments.sort(comp);
-    $.each(comments, function() {
-      this.children = sortComments(this.children);
-    });
-    return comments;
-  }
-
-  /**
-   * Get the children comments from a ul. If recursive is true,
-   * recursively include childrens' children.
-   */
-  function getChildren(ul, recursive) {
-    var children = [];
-    ul.children().children("[id^='cd']")
-      .each(function() {
-        var comment = $(this).data('comment');
-        if (recursive)
-          comment.children = getChildren($(this).find('#cl' + comment.id), true);
-        children.push(comment);
-      });
-    return children;
-  }
-
-  /** Create a div to display a comment in. */
-  function createCommentDiv(comment) {
-    if (!comment.displayed && !opts.moderator) {
-      return $('<div class="moderate">Thank you!  Your comment will show up '
-               + 'once it is has been approved by a moderator.</div>');
-    }
-    // Prettify the comment rating.
-    comment.pretty_rating = comment.rating + ' point' +
-      (comment.rating == 1 ? '' : 's');
-    // Make a class (for displaying not yet moderated comments differently)
-    comment.css_class = comment.displayed ? '' : ' moderate';
-    // Create a div for this comment.
-    var context = $.extend({}, opts, comment);
-    var div = $(renderTemplate(commentTemplate, context));
-
-    // If the user has voted on this comment, highlight the correct arrow.
-    if (comment.vote) {
-      var direction = (comment.vote == 1) ? 'u' : 'd';
-      div.find('#' + direction + 'v' + comment.id).hide();
-      div.find('#' + direction + 'u' + comment.id).show();
-    }
-
-    if (opts.moderator || comment.text != '[deleted]') {
-      div.find('a.reply').show();
-      if (comment.proposal_diff)
-        div.find('#sp' + comment.id).show();
-      if (opts.moderator && !comment.displayed)
-        div.find('#cm' + comment.id).show();
-      if (opts.moderator || (opts.username == comment.username))
-        div.find('#dc' + comment.id).show();
-    }
-    return div;
-  }
-
-  /**
-   * A simple template renderer. Placeholders such as <%id%> are replaced
-   * by context['id'] with items being escaped. Placeholders such as <#id#>
-   * are not escaped.
-   */
-  function renderTemplate(template, context) {
-    var esc = $(document.createElement('div'));
-
-    function handle(ph, escape) {
-      var cur = context;
-      $.each(ph.split('.'), function() {
-        cur = cur[this];
-      });
-      return escape ? esc.text(cur || "").html() : cur;
-    }
-
-    return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
-      return handle(arguments[2], arguments[1] == '%' ? true : false);
-    });
-  }
-
-  /** Flash an error message briefly. */
-  function showError(message) {
-    $(document.createElement('div')).attr({'class': 'popup-error'})
-      .append($(document.createElement('div'))
-               .attr({'class': 'error-message'}).text(message))
-      .appendTo('body')
-      .fadeIn("slow")
-      .delay(2000)
-      .fadeOut("slow");
-  }
-
-  /** Add a link the user uses to open the comments popup. */
-  $.fn.comment = function() {
-    return this.each(function() {
-      var id = $(this).attr('id').substring(1);
-      var count = COMMENT_METADATA[id];
-      var title = count + ' comment' + (count == 1 ? '' : 's');
-      var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
-      var addcls = count == 0 ? ' nocomment' : '';
-      $(this)
-        .append(
-          $(document.createElement('a')).attr({
-            href: '#',
-            'class': 'sphinx-comment-open' + addcls,
-            id: 'ao' + id
-          })
-            .append($(document.createElement('img')).attr({
-              src: image,
-              alt: 'comment',
-              title: title
-            }))
-            .click(function(event) {
-              event.preventDefault();
-              show($(this).attr('id').substring(2));
-            })
-        )
-        .append(
-          $(document.createElement('a')).attr({
-            href: '#',
-            'class': 'sphinx-comment-close hidden',
-            id: 'ah' + id
-          })
-            .append($(document.createElement('img')).attr({
-              src: opts.closeCommentImage,
-              alt: 'close',
-              title: 'close'
-            }))
-            .click(function(event) {
-              event.preventDefault();
-              hide($(this).attr('id').substring(2));
-            })
-        );
-    });
-  };
-
-  var opts = {
-    processVoteURL: '/_process_vote',
-    addCommentURL: '/_add_comment',
-    getCommentsURL: '/_get_comments',
-    acceptCommentURL: '/_accept_comment',
-    deleteCommentURL: '/_delete_comment',
-    commentImage: '/static/_static/comment.png',
-    closeCommentImage: '/static/_static/comment-close.png',
-    loadingImage: '/static/_static/ajax-loader.gif',
-    commentBrightImage: '/static/_static/comment-bright.png',
-    upArrow: '/static/_static/up.png',
-    downArrow: '/static/_static/down.png',
-    upArrowPressed: '/static/_static/up-pressed.png',
-    downArrowPressed: '/static/_static/down-pressed.png',
-    voting: false,
-    moderator: false
-  };
-
-  if (typeof COMMENT_OPTIONS != "undefined") {
-    opts = jQuery.extend(opts, COMMENT_OPTIONS);
-  }
-
-  var popupTemplate = '\
-    <div class="sphinx-comments" id="sc<%id%>">\
-      <p class="sort-options">\
-        Sort by:\
-        <a href="#" class="sort-option byrating">best rated</a>\
-        <a href="#" class="sort-option byascage">newest</a>\
-        <a href="#" class="sort-option byage">oldest</a>\
-      </p>\
-      <div class="comment-header">Comments</div>\
-      <div class="comment-loading" id="cn<%id%>">\
-        loading comments... <img src="<%loadingImage%>" alt="" /></div>\
-      <ul id="cl<%id%>" class="comment-ul"></ul>\
-      <div id="ca<%id%>">\
-      <p class="add-a-comment">Add a comment\
-        (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
-      <div class="comment-markup-box" id="mb<%id%>">\
-        reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
-        <code>``code``</code>, \
-        code blocks: <code>::</code> and an indented block after blank line</div>\
-      <form method="post" id="cf<%id%>" class="comment-form" action="">\
-        <textarea name="comment" cols="80"></textarea>\
-        <p class="propose-button">\
-          <a href="#" id="pc<%id%>" class="show-propose-change">\
-            Propose a change &#9657;\
-          </a>\
-          <a href="#" id="hc<%id%>" class="hide-propose-change">\
-            Propose a change &#9663;\
-          </a>\
-        </p>\
-        <textarea name="proposal" id="pt<%id%>" cols="80"\
-                  spellcheck="false"></textarea>\
-        <input type="submit" value="Add comment" />\
-        <input type="hidden" name="node" value="<%id%>" />\
-        <input type="hidden" name="parent" value="" />\
-      </form>\
-      </div>\
-    </div>';
-
-  var commentTemplate = '\
-    <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
-      <div class="vote">\
-        <div class="arrow">\
-          <a href="#" id="uv<%id%>" class="vote" title="vote up">\
-            <img src="<%upArrow%>" />\
-          </a>\
-          <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
-            <img src="<%upArrowPressed%>" />\
-          </a>\
-        </div>\
-        <div class="arrow">\
-          <a href="#" id="dv<%id%>" class="vote" title="vote down">\
-            <img src="<%downArrow%>" id="da<%id%>" />\
-          </a>\
-          <a href="#" id="du<%id%>" class="un vote" title="vote down">\
-            <img src="<%downArrowPressed%>" />\
-          </a>\
-        </div>\
-      </div>\
-      <div class="comment-content">\
-        <p class="tagline comment">\
-          <span class="user-id"><%username%></span>\
-          <span class="rating"><%pretty_rating%></span>\
-          <span class="delta"><%time.delta%></span>\
-        </p>\
-        <div class="comment-text comment"><#text#></div>\
-        <p class="comment-opts comment">\
-          <a href="#" class="reply hidden" id="rl<%id%>">reply &#9657;</a>\
-          <a href="#" class="close-reply" id="cr<%id%>">reply &#9663;</a>\
-          <a href="#" id="sp<%id%>" class="show-proposal">proposal &#9657;</a>\
-          <a href="#" id="hp<%id%>" class="hide-proposal">proposal &#9663;</a>\
-          <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
-          <span id="cm<%id%>" class="moderation hidden">\
-            <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
-          </span>\
-        </p>\
-        <pre class="proposal" id="pr<%id%>">\
-<#proposal_diff#>\
-        </pre>\
-          <ul class="comment-children" id="cl<%id%>"></ul>\
-        </div>\
-        <div class="clearleft"></div>\
-      </div>\
-    </div>';
-
-  var replyTemplate = '\
-    <li>\
-      <div class="reply-div" id="rd<%id%>">\
-        <form id="rf<%id%>">\
-          <textarea name="comment" cols="80"></textarea>\
-          <input type="submit" value="Add reply" />\
-          <input type="button" value="Cancel" />\
-          <input type="hidden" name="parent" value="<%id%>" />\
-          <input type="hidden" name="node" value="" />\
-        </form>\
-      </div>\
-    </li>';
-
-  $(document).ready(function() {
-    init();
-  });
-})(jQuery);
-
-$(document).ready(function() {
-  // add comment anchors for all paragraphs that are commentable
-  $('.sphinx-has-comment').comment();
-
-  // highlight search words in search results
-  $("div.context").each(function() {
-    var params = $.getQueryParameters();
-    var terms = (params.q) ? params.q[0].split(/\s+/) : [];
-    var result = $(this);
-    $.each(terms, function() {
-      result.highlightText(this.toLowerCase(), 'highlighted');
-    });
-  });
-
-  // directly open comment window if requested
-  var anchor = document.location.hash;
-  if (anchor.substring(0, 9) == '#comment-') {
-    $('#ao' + anchor.substring(9)).click();
-    document.location.hash = '#s' + anchor.substring(9);
-  }
-});

+ 0 - 144
doc/_build/html/compiler.html

@@ -1,144 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Compiler &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Runtime Platforms" href="runtime_platforms.html" />
-    <link rel="prev" title="Language Features" href="language_features.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="runtime_platforms.html" title="Runtime Platforms"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="language_features.html" title="Language Features"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="compiler">
-<h1>Compiler<a class="headerlink" href="#compiler" title="Permalink to this headline">¶</a></h1>
-<p>To compile a conforming SCCDXML file, the provided Python compiler can be used. The compiler can compile conforming SCCD models to two languages: Python and Javascript. Three platforms are supported, for more information see <a class="reference internal" href="runtime_platforms.html#runtime-platforms"><span class="std std-ref">Runtime Platforms</span></a>.</p>
-<p>The compiler can be used from the command line as follows:</p>
-<div class="highlight-default"><div class="highlight"><pre>$python -m sccd.compiler.sccdc --help
-usage: python -m sccd.compiler.sccdc [-h] [-o OUTPUT] [-v VERBOSE]
-                                     [-p PLATFORM] [-l LANGUAGE]
-                                     input
-
-positional arguments:
-  input                 The path to the XML file to be compiled.
-
-optional arguments:
-  -h, --help            show this help message and exit
-  -o OUTPUT, --output OUTPUT
-                        The path to the generated code. Defaults to the same
-                        name as the input file but with matching extension.
-  -v VERBOSE, --verbose VERBOSE
-                        2 = all output; 1 = only warnings and errors; 0 = only
-                        errors; -1 = no output. Defaults to 2.
-  -p PLATFORM, --platform PLATFORM
-                        Let the compiled code run on top of threads, gameloop
-                        or eventloop. The default is eventloop.
-  -l LANGUAGE, --language LANGUAGE
-                        Target language, either &quot;javascript&quot; or &quot;python&quot;.
-                        Defaults to the latter.
-</pre></div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="language_features.html"
-                        title="previous chapter">Language Features</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="runtime_platforms.html"
-                        title="next chapter">Runtime Platforms</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/compiler.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="runtime_platforms.html" title="Runtime Platforms"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="language_features.html" title="Language Features"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 766
doc/_build/html/examples.html

@@ -1,766 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Examples &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Semantic Options" href="semantic_options.html" />
-    <link rel="prev" title="Runtime Platforms" href="runtime_platforms.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="semantic_options.html" title="Semantic Options"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="runtime_platforms.html" title="Runtime Platforms"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="examples">
-<h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="timer">
-<h2>Timer<a class="headerlink" href="#timer" title="Permalink to this headline">¶</a></h2>
-<p>This example demonstrates the timed behavior of SCCD. It does not have dynamic structure.</p>
-<p>We model a clock which prints the current time every 0.05 seconds. Two clocks are printed: the current wall-clock time and the current simulated time. We expect both to (almost) be the same. The user can interrupt the clock by sending an &#8220;interrupt&#8221; event. The user can resume the clock by sending a &#8220;resume&#8221; event.</p>
-<div class="section" id="threads-python">
-<h3>Threads (Python)<a class="headerlink" href="#threads-python" title="Permalink to this headline">¶</a></h3>
-<p>In this version, the model sends the current times to an output port, on which the user listens, to print out these times. <em>self.getSimulatedTime()</em> and <em>time()</em> return the current time in milliseconds, which we have to convert to seconds.</p>
-<p>The SCCD model:</p>
-<div class="highlight-default"><div class="highlight"><pre>&lt;?xml version=&quot;1.0&quot; ?&gt;
-&lt;diagram author=&quot;Simon Van Mierlo&quot; name=&quot;Timer (Threaded Version)&quot;&gt;
-    &lt;top&gt;
-        from sccd.runtime.accurate_time import time
-    &lt;/top&gt;
-
-    &lt;inport name=&quot;input&quot; /&gt;
-    &lt;outport name=&quot;output&quot; /&gt;
-
-    &lt;class name=&quot;MainApp&quot; default=&quot;true&quot;&gt;
-        &lt;scxml initial=&quot;running&quot;&gt;
-            &lt;state id=&quot;running&quot;&gt;
-                &lt;transition target=&quot;.&quot; after=&quot;0.05&quot;&gt;
-                    &lt;raise event=&quot;time_update&quot; port=&quot;output&quot;&gt;
-                        &lt;parameter expr=&quot;self.getSimulatedTime()&quot; /&gt;
-                        &lt;parameter expr=&quot;time()&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../interrupted&quot; event=&quot;interrupt&quot; port=&quot;input&quot;&gt;
-                    &lt;raise event=&quot;time_update&quot; port=&quot;output&quot;&gt;
-                        &lt;parameter expr=&quot;self.getSimulatedTime()&quot; /&gt;
-                        &lt;parameter expr=&quot;time()&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;interrupted&quot;&gt;
-                &lt;transition target=&quot;.&quot; event=&quot;interrupt&quot; port=&quot;input&quot;&gt;
-                    &lt;raise event=&quot;time_update&quot; port=&quot;output&quot;&gt;
-                        &lt;parameter expr=&quot;self.getSimulatedTime()&quot; /&gt;
-                        &lt;parameter expr=&quot;time()&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../running&quot; event=&quot;continue&quot; port=&quot;input&quot;&gt;
-                    &lt;raise event=&quot;time_update&quot; port=&quot;output&quot;&gt;
-                        &lt;parameter expr=&quot;self.getSimulatedTime()&quot; /&gt;
-                        &lt;parameter expr=&quot;time()&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-&lt;/diagram&gt;
-</pre></div>
-</div>
-<p>To compile, save this in a file called <code class="docutils literal"><span class="pre">timer.xml</span></code> and run <code class="docutils literal"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sccd.compiler.sccdc</span> <span class="pre">-p</span> <span class="pre">threads</span> <span class="pre">-l</span> <span class="pre">python</span> <span class="pre">timer.xml</span></code></p>
-<p>Then, the following file will run the model:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">timer</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.statecharts_core</span> <span class="k">import</span> <span class="n">Event</span>
-<span class="kn">import</span> <span class="nn">threading</span>
-
-<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
-    <span class="n">controller</span> <span class="o">=</span> <span class="n">timer</span><span class="o">.</span><span class="n">Controller</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">raw_inputter</span><span class="p">():</span>
-        <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
-            <span class="n">controller</span><span class="o">.</span><span class="n">addInput</span><span class="p">(</span><span class="n">Event</span><span class="p">(</span><span class="n">raw_input</span><span class="p">(),</span> <span class="s">&quot;input&quot;</span><span class="p">,</span> <span class="p">[]))</span>
-    <span class="n">input_thread</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">raw_inputter</span><span class="p">)</span>
-    <span class="n">input_thread</span><span class="o">.</span><span class="n">daemon</span> <span class="o">=</span> <span class="k">True</span>
-    <span class="n">input_thread</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-
-    <span class="n">output_listener</span> <span class="o">=</span> <span class="n">controller</span><span class="o">.</span><span class="n">addOutputListener</span><span class="p">([</span><span class="s">&quot;output&quot;</span><span class="p">])</span>
-    <span class="k">def</span> <span class="nf">outputter</span><span class="p">():</span>
-        <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
-            <span class="n">event</span> <span class="o">=</span> <span class="n">output_listener</span><span class="o">.</span><span class="n">fetch</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
-            <span class="nb">print</span> <span class="s">&quot;SIMTIME: %.2fs&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">getParameters</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1000.0</span><span class="p">)</span>
-            <span class="nb">print</span> <span class="s">&quot;ACTTIME: %.2fs&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">getParameters</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1000.0</span><span class="p">)</span>
-    <span class="n">output_thread</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">outputter</span><span class="p">)</span>
-    <span class="n">output_thread</span><span class="o">.</span><span class="n">daemon</span> <span class="o">=</span> <span class="k">True</span>
-    <span class="n">output_thread</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-
-    <span class="n">controller</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-</pre></div>
-</div>
-<p>The time will be printed to the console. The user can send events by typing the string &#8220;interrupt&#8221; or &#8220;continue&#8221; in the console.</p>
-</div>
-<div class="section" id="eventloop-python">
-<h3>Eventloop (Python)<a class="headerlink" href="#eventloop-python" title="Permalink to this headline">¶</a></h3>
-<p>The SCCD model:</p>
-<div class="highlight-default"><div class="highlight"><pre>&lt;?xml version=&quot;1.0&quot; ?&gt;
-&lt;diagram author=&quot;Simon Van Mierlo&quot; name=&quot;Timer (Eventloop Version)&quot;&gt;
-    &lt;top&gt;
-        from sccd.runtime.libs.ui import ui
-        from sccd.runtime.accurate_time import time
-    &lt;/top&gt;
-
-    &lt;inport name=&quot;ui&quot; /&gt;
-
-    &lt;class name=&quot;MainApp&quot; default=&quot;true&quot;&gt;
-        &lt;method name=&quot;MainApp&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.canvas = ui.append_canvas(ui.window,100,100,{&#39;background&#39;:&#39;#eee&#39;})
-                self.clock_text = self.canvas.element.create_text(25,25,{&#39;text&#39;:&#39;0.0&#39;})
-                self.actual_clock_text = self.canvas.element.create_text(25,50,{&#39;text&#39;:&#39;0.0&#39;})
-                interrupt_button = ui.append_button(ui.window, &#39;INTERRUPT&#39;);
-                continue_button = ui.append_button(ui.window, &#39;CONTINUE&#39;);
-                ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, &#39;interrupt_clicked&#39;);
-                ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, &#39;continue_clicked&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;update_timers&quot;&gt;
-            &lt;body&gt;
-                self.canvas.element.itemconfigure(self.clock_text, text=str(&#39;%.2f&#39; % (self.getSimulatedTime() / 1000.0)))
-                self.canvas.element.itemconfigure(self.actual_clock_text, text=&#39;%.2f&#39; % (time() / 1000.0))
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;running&quot;&gt;
-            &lt;state id=&quot;running&quot;&gt;
-                &lt;transition target=&quot;.&quot; after=&quot;0.05&quot;&gt;
-                    &lt;script&gt;
-                        self.update_timers()
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../interrupted&quot; event=&quot;interrupt_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        self.update_timers()
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;interrupted&quot;&gt;
-                &lt;transition target=&quot;.&quot; event=&quot;interrupt_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        self.update_timers()
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../running&quot; event=&quot;continue_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        self.update_timers()
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-&lt;/diagram&gt;
-</pre></div>
-</div>
-<p>To compile, save this in a file called <code class="docutils literal"><span class="pre">timer.xml</span></code> and run <code class="docutils literal"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sccd.compiler.sccdc</span> <span class="pre">-p</span> <span class="pre">eventloop</span> <span class="pre">-l</span> <span class="pre">python</span> <span class="pre">timer.xml</span></code></p>
-<p>Then, the following file will run the model:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">Tkinter</span> <span class="k">as</span> <span class="nn">tk</span>
-<span class="kn">import</span> <span class="nn">timer</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.libs.ui</span> <span class="k">import</span> <span class="n">ui</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.statecharts_core</span> <span class="k">import</span> <span class="n">Event</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.tkinter_eventloop</span> <span class="k">import</span> <span class="o">*</span>
-
-<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
-    <span class="n">ui</span><span class="o">.</span><span class="n">window</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
-
-    <span class="n">controller</span> <span class="o">=</span> <span class="n">timer</span><span class="o">.</span><span class="n">Controller</span><span class="p">(</span><span class="n">TkEventLoop</span><span class="p">(</span><span class="n">ui</span><span class="o">.</span><span class="n">window</span><span class="p">))</span>
-    <span class="n">controller</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-    <span class="n">ui</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="eventloop-javascript">
-<h3>Eventloop (Javascript)<a class="headerlink" href="#eventloop-javascript" title="Permalink to this headline">¶</a></h3>
-<p>The SCCD model:</p>
-<div class="highlight-default"><div class="highlight"><pre>&lt;?xml version=&quot;1.0&quot; ?&gt;
-&lt;diagram author=&quot;Simon Van Mierlo&quot; name=&quot;Timer&quot;&gt;
-    &lt;inport name=&quot;ui&quot; /&gt;
-
-    &lt;class name=&quot;MainApp&quot; default=&quot;true&quot;&gt;
-        &lt;method name=&quot;MainApp&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.canvas = ui.append_canvas(ui.window,400,150,{&#39;background&#39;:&#39;#eee&#39;})
-                this.clock_text = this.canvas.add_text(25,25,&#39;0.0&#39;)
-                this.actual_clock_text = this.canvas.add_text(25,50,&#39;0.0&#39;)
-                var interrupt_button = ui.append_button(ui.window, &#39;INTERRUPT&#39;);
-                var continue_button = ui.append_button(ui.window, &#39;CONTINUE&#39;);
-                ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, &#39;interrupt_clicked&#39;);
-                ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, &#39;continue_clicked&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;update_timers&quot;&gt;
-            &lt;body&gt;
-                this.clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
-                this.actual_clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;running&quot;&gt;
-            &lt;state id=&quot;running&quot;&gt;
-                &lt;transition target=&quot;.&quot; after=&quot;0.05&quot;&gt;
-                    &lt;script&gt;
-                        this.update_timers();
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../interrupted&quot; event=&quot;interrupt_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        this.update_timers();
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;interrupted&quot;&gt;
-                &lt;transition target=&quot;.&quot; event=&quot;interrupt_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        this.update_timers();
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-                &lt;transition target=&quot;../running&quot; event=&quot;continue_clicked&quot; port=&quot;ui&quot;&gt;
-                    &lt;script&gt;
-                        this.update_timers();
-                    &lt;/script&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-&lt;/diagram&gt;
-</pre></div>
-</div>
-<p>To compile, save this in a file called <code class="docutils literal"><span class="pre">timer.xml</span></code> and run <code class="docutils literal"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sccd.compiler.sccdc</span> <span class="pre">-p</span> <span class="pre">eventloop</span> <span class="pre">-l</span> <span class="pre">javascript</span> <span class="pre">timer.xml</span></code></p>
-<p>Then, the following file will run the model:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="o">&lt;</span><span class="n">div</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/HackTimer.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/statecharts_core.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/utils.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/svg.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/ui.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;timer.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span>
-        <span class="n">controller</span> <span class="o">=</span> <span class="n">new</span> <span class="n">Timer</span><span class="o">.</span><span class="n">Controller</span><span class="p">(</span><span class="n">new</span> <span class="n">JsEventLoop</span><span class="p">());</span>
-        <span class="n">controller</span><span class="o">.</span><span class="n">start</span><span class="p">();</span>
-    <span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
-</pre></div>
-</div>
-</div>
-</div>
-<div class="section" id="traffic-lights">
-<h2>Traffic Lights<a class="headerlink" href="#traffic-lights" title="Permalink to this headline">¶</a></h2>
-<p>The traffic lights example demonstrates most functionality of SCCD. There are three lights (green, yellow, and red). The traffic light autonomously switches between them, but also listens for a police interrupt, which will flash the yellow light. When a second interrupt comes in, the light returns to its last configuration (using a history state).</p>
-<div class="section" id="python">
-<h3>Python<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h3>
-<p>The SCCD model:</p>
-<div class="highlight-default"><div class="highlight"><pre>&lt;?xml version=&quot;1.0&quot; ?&gt;
-&lt;diagram author=&quot;Raphael Mannadiar&quot; name=&quot;Traffic_Light_Python_Version&quot;&gt;
-    &lt;top&gt;
-        from sccd.runtime.libs.ui import ui
-    &lt;/top&gt;
-
-    &lt;inport name=&quot;ui&quot; /&gt;
-
-    &lt;class name=&quot;MainApp&quot; default=&quot;true&quot;&gt;
-        &lt;relationships&gt;
-            &lt;association name=&quot;trafficlight&quot; class=&quot;TrafficLight&quot; /&gt;
-        &lt;/relationships&gt;
-        &lt;method name=&quot;MainApp&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.canvas   = ui.append_canvas(ui.window,100,310,{&#39;background&#39;:&#39;#eee&#39;});
-                police_button = ui.append_button(ui.window, &#39;Police interrupt&#39;);
-                quit_button   = ui.append_button(ui.window, &#39;Quit&#39;);
-                ui.bind_event(police_button.element, ui.EVENTS.MOUSE_CLICK, self.controller, &#39;police_interrupt_clicked&#39;);
-                ui.bind_event(quit_button.element,      ui.EVENTS.MOUSE_CLICK, self.controller, &#39;quit_clicked&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;initializing&quot;&gt;
-            &lt;state id=&quot;initializing&quot;&gt;
-                &lt;transition target=&quot;../creating&quot;&gt;
-                    &lt;raise scope=&quot;cd&quot; event=&quot;create_instance&quot;&gt;
-                        &lt;parameter expr=&#39;&quot;trafficlight&quot;&#39; /&gt;
-                        &lt;parameter expr=&#39;&quot;TrafficLight&quot;&#39; /&gt;
-                        &lt;parameter expr=&quot;self.canvas&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;creating&quot;&gt;
-                &lt;transition event=&quot;instance_created&quot; target=&quot;../initialized&quot;&gt;
-                    &lt;parameter name=&quot;association_name&quot; type=&quot;string&quot;/&gt;
-                    &lt;raise scope=&quot;cd&quot; event=&quot;start_instance&quot;&gt;
-                        &lt;parameter expr=&quot;association_name&quot; /&gt;
-                    &lt;/raise&gt;
-                    &lt;raise scope=&quot;narrow&quot; event=&quot;set_association_name&quot; target=&quot;association_name&quot;&gt;
-                        &lt;parameter expr=&quot;association_name&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;initialized&quot;&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-
-    &lt;class name=&quot;TrafficLight&quot;&gt;
-        &lt;relationships&gt;
-        &lt;/relationships&gt;
-        &lt;method name=&quot;TrafficLight&quot;&gt;
-            &lt;parameter name=&quot;canvas&quot; /&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                size        = 100;
-                offset      = size+5;
-                self.RED    = 0;
-                self.YELLOW = 1;
-                self.GREEN  = 2;
-                self.colors = [&#39;#f00&#39;,&#39;#ff0&#39;,&#39;#0f0&#39;]
-                self.lights = [
-                    canvas.add_rectangle(size/2, size/2, size, size, {&#39;fill&#39;:&#39;#000&#39;}),
-                    canvas.add_rectangle(size/2, size/2+offset,     size, size, {&#39;fill&#39;:&#39;#000&#39;}),
-                    canvas.add_rectangle(size/2, size/2+2*offset, size, size, {&#39;fill&#39;:&#39;#000&#39;})];
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;clear&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.lights[self.RED].set_color(&#39;#000&#39;);
-                self.lights[self.YELLOW].set_color(&#39;#000&#39;);
-                self.lights[self.GREEN].set_color(&#39;#000&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setGreen&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.clear();
-                self.lights[self.GREEN].set_color(self.colors[self.GREEN]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setYellow&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.clear();
-                self.lights[self.YELLOW].set_color(self.colors[self.YELLOW]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setRed&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                self.clear();
-                self.lights[self.RED].set_color(self.colors[self.RED]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;on&quot;&gt;
-            &lt;state id=&quot;on&quot; initial=&quot;normal&quot;&gt;
-                &lt;state id=&quot;normal&quot; initial=&quot;red&quot;&gt;
-                    &lt;state id=&quot;red&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                self.setRed();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;3&#39; target=&#39;../green&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;green&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                self.setGreen();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;2&#39; target=&#39;../yellow&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;yellow&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                self.setYellow();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                    &lt;transition after=&#39;1&#39; target=&#39;../red&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;transition event=&#39;police_interrupt_clicked&#39; port=&#39;ui&#39; target=&#39;../interrupted&#39;/&gt;
-                    &lt;history id=&quot;history&quot;/&gt;
-                &lt;/state&gt;
-                &lt;state id=&quot;interrupted&quot; initial=&quot;yellow&quot;&gt;
-                    &lt;state id=&quot;yellow&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                self.setYellow();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;.5&#39; target=&#39;../black&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;black&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                self.clear();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;.5&#39; target=&#39;../yellow&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;transition event=&#39;police_interrupt_clicked&#39; port=&#39;ui&#39; target=&#39;../normal/history&#39;/&gt;
-                &lt;/state&gt;
-                &lt;transition event=&#39;quit_clicked&#39; port=&#39;ui&#39; target=&#39;../off&#39;/&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;off&quot;&gt;
-                &lt;onentry&gt;
-                    &lt;script&gt;
-                        &lt;![CDATA[
-                        self.clear();
-                        ]]&gt;
-                    &lt;/script&gt;
-                &lt;/onentry&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-&lt;/diagram&gt;
-</pre></div>
-</div>
-<p>To compile, save this in a file called <code class="docutils literal"><span class="pre">trafficlight.xml</span></code> and run <code class="docutils literal"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sccd.compiler.sccdc</span> <span class="pre">-p</span> <span class="pre">eventloop</span> <span class="pre">-l</span> <span class="pre">python</span> <span class="pre">trafficlight.xml</span></code></p>
-<p>Then, the following file will run the model:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">Tkinter</span> <span class="k">as</span> <span class="nn">tk</span>
-<span class="kn">import</span> <span class="nn">trafficlight</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.libs.ui</span> <span class="k">import</span> <span class="n">ui</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.statecharts_core</span> <span class="k">import</span> <span class="n">Event</span>
-<span class="kn">from</span> <span class="nn">sccd.runtime.tkinter_eventloop</span> <span class="k">import</span> <span class="o">*</span>
-
-<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
-    <span class="n">ui</span><span class="o">.</span><span class="n">window</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
-
-    <span class="n">controller</span> <span class="o">=</span> <span class="n">trafficlight</span><span class="o">.</span><span class="n">Controller</span><span class="p">(</span><span class="n">TkEventLoop</span><span class="p">(</span><span class="n">ui</span><span class="o">.</span><span class="n">window</span><span class="p">))</span>
-    <span class="n">controller</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
-    <span class="n">ui</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="javascript">
-<h3>Javascript<a class="headerlink" href="#javascript" title="Permalink to this headline">¶</a></h3>
-<p>The SCCD model:</p>
-<div class="highlight-default"><div class="highlight"><pre>&lt;?xml version=&quot;1.0&quot; ?&gt;
-&lt;diagram author=&quot;Raphael Mannadiar&quot; name=&quot;Traffic_Light_JavaScript_Version&quot;&gt;
-    &lt;inport name=&quot;ui&quot; /&gt;
-
-    &lt;class name=&quot;MainApp&quot; default=&quot;true&quot;&gt;
-        &lt;relationships&gt;
-            &lt;association name=&quot;trafficlight&quot; class=&quot;TrafficLight&quot; /&gt;
-        &lt;/relationships&gt;
-        &lt;method name=&quot;MainApp&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.canvas = ui.append_canvas(ui.window,100,310,{&#39;background&#39;:&#39;#eee&#39;});
-                var police_button = ui.append_button(ui.window, &#39;Police interrupt&#39;);
-                var quit_button     = ui.append_button(ui.window, &#39;Quit&#39;);
-                ui.bind_event(police_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, &#39;police_interrupt_clicked&#39;);
-                ui.bind_event(quit_button.element,   ui.EVENTS.MOUSE_CLICK, this.controller, &#39;quit_clicked&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;initializing&quot;&gt;
-            &lt;state id=&quot;initializing&quot;&gt;
-                &lt;transition target=&quot;../creating&quot;&gt;
-                    &lt;raise scope=&quot;cd&quot; event=&quot;create_instance&quot;&gt;
-                        &lt;parameter expr=&#39;&quot;trafficlight&quot;&#39; /&gt;
-                        &lt;parameter expr=&#39;&quot;TrafficLight&quot;&#39; /&gt;
-                        &lt;parameter expr=&quot;this.canvas&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;creating&quot;&gt;
-                &lt;transition event=&quot;instance_created&quot; target=&quot;../initialized&quot;&gt;
-                    &lt;parameter name=&quot;association_name&quot; type=&quot;string&quot;/&gt;
-                    &lt;raise scope=&quot;cd&quot; event=&quot;start_instance&quot;&gt;
-                        &lt;parameter expr=&quot;association_name&quot; /&gt;
-                    &lt;/raise&gt;
-                    &lt;raise scope=&quot;narrow&quot; event=&quot;set_association_name&quot; target=&quot;association_name&quot;&gt;
-                        &lt;parameter expr=&quot;association_name&quot; /&gt;
-                    &lt;/raise&gt;
-                &lt;/transition&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;initialized&quot;&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-
-    &lt;class name=&quot;TrafficLight&quot;&gt;
-        &lt;relationships&gt;
-        &lt;/relationships&gt;
-        &lt;method name=&quot;TrafficLight&quot;&gt;
-            &lt;parameter name=&quot;canvas&quot; /&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                var size    = 100;
-                var offset  = size+5;
-                this.RED    = 0;
-                this.YELLOW = 1;
-                this.GREEN  = 2;
-                this.colors = [&#39;#f00&#39;,&#39;#ff0&#39;,&#39;#0f0&#39;]
-                this.lights = [canvas.add_rectangle(size/2, size/2,                          size, size, {&#39;fill&#39;:&#39;#000&#39;}),
-                                    canvas.add_rectangle(size/2, size/2+offset,      size, size, {&#39;fill&#39;:&#39;#000&#39;}),
-                                    canvas.add_rectangle(size/2, size/2+2*offset, size, size, {&#39;fill&#39;:&#39;#000&#39;})];
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;clear&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.lights[this.RED].set_color(&#39;#000&#39;);
-                this.lights[this.YELLOW].set_color(&#39;#000&#39;);
-                this.lights[this.GREEN].set_color(&#39;#000&#39;);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setGreen&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.clear();
-                this.lights[this.GREEN].set_color(this.colors[this.GREEN]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setYellow&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.clear();
-                this.lights[this.YELLOW].set_color(this.colors[this.YELLOW]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;method name=&quot;setRed&quot;&gt;
-            &lt;body&gt;
-                &lt;![CDATA[
-                this.clear();
-                this.lights[this.RED].set_color(this.colors[this.RED]);
-                ]]&gt;
-            &lt;/body&gt;
-        &lt;/method&gt;
-        &lt;scxml initial=&quot;on&quot;&gt;
-            &lt;state id=&quot;on&quot; initial=&quot;normal&quot;&gt;
-                &lt;state id=&quot;normal&quot; initial=&quot;red&quot;&gt;
-                    &lt;state id=&quot;red&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                this.setRed();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;3&#39; target=&#39;../green&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;green&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                this.setGreen();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;2&#39; target=&#39;../yellow&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;yellow&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                this.setYellow();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                    &lt;transition after=&#39;1&#39; target=&#39;../red&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;transition event=&#39;police_interrupt_clicked&#39; port=&#39;ui&#39; target=&#39;../interrupted&#39;/&gt;
-                    &lt;history id=&quot;history&quot;/&gt;
-                &lt;/state&gt;
-                &lt;state id=&quot;interrupted&quot; initial=&quot;yellow&quot;&gt;
-                    &lt;state id=&quot;yellow&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                this.setYellow();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;.5&#39; target=&#39;../black&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;state id=&quot;black&quot;&gt;
-                        &lt;onentry&gt;
-                            &lt;script&gt;
-                                &lt;![CDATA[
-                                this.clear();
-                                ]]&gt;
-                            &lt;/script&gt;
-                        &lt;/onentry&gt;
-                        &lt;transition after=&#39;.5&#39; target=&#39;../yellow&#39;/&gt;
-                    &lt;/state&gt;
-                    &lt;transition event=&#39;police_interrupt_clicked&#39; port=&#39;ui&#39; target=&#39;../normal/history&#39;/&gt;
-                &lt;/state&gt;
-                &lt;transition event=&#39;quit_clicked&#39; port=&#39;ui&#39; target=&#39;../off&#39;/&gt;
-            &lt;/state&gt;
-            &lt;state id=&quot;off&quot;&gt;
-                &lt;onentry&gt;
-                    &lt;script&gt;
-                        &lt;![CDATA[
-                        this.clear();
-                        ]]&gt;
-                    &lt;/script&gt;
-                &lt;/onentry&gt;
-            &lt;/state&gt;
-        &lt;/scxml&gt;
-    &lt;/class&gt;
-&lt;/diagram&gt;
-</pre></div>
-</div>
-<p>To compile, save this in a file called <code class="docutils literal"><span class="pre">trafficlight.xml</span></code> and run <code class="docutils literal"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sccd.compiler.sccdc</span> <span class="pre">-p</span> <span class="pre">eventloop</span> <span class="pre">-l</span> <span class="pre">javascript</span> <span class="pre">trafficlight.xml</span></code></p>
-<p>Then, the following file will run the model:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="o">&lt;</span><span class="n">div</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/HackTimer.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/statecharts_core.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/utils.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/svg.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;https://msdl.uantwerpen.be/git/simon/SCCD/raw/v0.9/src/javascript_sccd_runtime/libs/ui.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span> <span class="n">src</span><span class="o">=</span><span class="s">&quot;trafficlight.js&quot;</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span>
-    <span class="n">controller</span> <span class="o">=</span> <span class="n">new</span> <span class="n">Traffic_Light_JavaScript_Version</span><span class="o">.</span><span class="n">Controller</span><span class="p">(</span><span class="n">new</span> <span class="n">JsEventLoop</span><span class="p">());</span>
-    <span class="n">controller</span><span class="o">.</span><span class="n">start</span><span class="p">();</span>
-    <span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
-<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
-</pre></div>
-</div>
-</div>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h3><a href="index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Examples</a><ul>
-<li><a class="reference internal" href="#timer">Timer</a><ul>
-<li><a class="reference internal" href="#threads-python">Threads (Python)</a></li>
-<li><a class="reference internal" href="#eventloop-python">Eventloop (Python)</a></li>
-<li><a class="reference internal" href="#eventloop-javascript">Eventloop (Javascript)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#traffic-lights">Traffic Lights</a><ul>
-<li><a class="reference internal" href="#python">Python</a></li>
-<li><a class="reference internal" href="#javascript">Javascript</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="runtime_platforms.html"
-                        title="previous chapter">Runtime Platforms</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="semantic_options.html"
-                        title="next chapter">Semantic Options</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/examples.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="semantic_options.html" title="Semantic Options"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="runtime_platforms.html" title="Runtime Platforms"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 109
doc/_build/html/genindex.html

@@ -1,109 +0,0 @@
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Index &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="#" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-
-<h1 id="index">Index</h1>
-
-<div class="genindex-jumpbox">
- <a href="#S"><strong>S</strong></a>
- 
-</div>
-<h2 id="S">S</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
-      
-  <dt><a href="statecharts_core_int.html#module-sccd.runtime.statecharts_core">sccd.runtime.statecharts_core (module)</a>
-  </dt>
-
-  </dl></td>
-</tr></table>
-
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-
-   
-
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="#" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 188
doc/_build/html/index.html

@@ -1,188 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>SCCD Documentation &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="#" />
-    <link rel="next" title="Installation" href="installation.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="installation.html" title="Installation"
-             accesskey="N">next</a> |</li>
-        <li class="nav-item nav-item-0"><a href="#">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="sccd-documentation">
-<h1>SCCD Documentation<a class="headerlink" href="#sccd-documentation" title="Permalink to this headline">¶</a></h1>
-<p>SCCD <a class="reference internal" href="#sccd" id="id1">[SCCD]</a> is a language that combines the Statecharts <a class="reference internal" href="#statecharts" id="id2">[Statecharts]</a> language with Class Diagrams. It allows users to model complex, timed, autonomous, reactive, dynamic-structure systems.</p>
-<p>The concrete syntax of SCCD is an XML-format loosely based on the <a class="reference external" href="https://www.w3.org/TR/scxml/">W3C SCXML recommendation</a>. A conforming model can be compiled to a number of programming languages, as well as a number of runtime platforms implemented in those languages. This maximizes the number of applications that can be modelled using SCCD, such as user interfaces, the artificial intelligence of game characters, controller software, and much more.</p>
-<p>This documentation serves as an introduction to the SCCD language, its compiler, and the different supported runtime platforms.</p>
-<div class="section" id="contents">
-<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h2>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="installation.html"> Installation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="installation.html#download">Download</a></li>
-<li class="toctree-l2"><a class="reference internal" href="installation.html#dependencies">Dependencies</a></li>
-<li class="toctree-l2"><a class="reference internal" href="installation.html#sccd-installation">SCCD Installation</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="language_features.html"> Language Features</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#top-level-elements">Top-Level Elements</a></li>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#class-diagram-concepts">Class Diagram Concepts</a></li>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#statechart-concepts">Statechart Concepts</a></li>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#executable-content">Executable Content</a></li>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#macros">Macros</a></li>
-<li class="toctree-l2"><a class="reference internal" href="language_features.html#object-manager">Object Manager</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="compiler.html"> Compiler</a></li>
-<li class="toctree-l1"><a class="reference internal" href="runtime_platforms.html"> Runtime Platforms</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="runtime_platforms.html#threads">Threads</a></li>
-<li class="toctree-l2"><a class="reference internal" href="runtime_platforms.html#eventloop">Eventloop</a></li>
-<li class="toctree-l2"><a class="reference internal" href="runtime_platforms.html#gameloop">Gameloop</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="examples.html"> Examples</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="examples.html#timer">Timer</a></li>
-<li class="toctree-l2"><a class="reference internal" href="examples.html#traffic-lights">Traffic Lights</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="semantic_options.html"> Semantic Options</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="semantic_options.html#big-step-maximality">Big Step Maximality</a></li>
-<li class="toctree-l2"><a class="reference internal" href="semantic_options.html#internal-event-lifeline">Internal Event Lifeline</a></li>
-<li class="toctree-l2"><a class="reference internal" href="semantic_options.html#input-event-lifeline">Input Event Lifeline</a></li>
-<li class="toctree-l2"><a class="reference internal" href="semantic_options.html#priority">Priority</a></li>
-<li class="toctree-l2"><a class="reference internal" href="semantic_options.html#concurrency">Concurrency</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="sockets.html"> Socket Communication</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="sockets.html#initialization">Initialization</a></li>
-<li class="toctree-l2"><a class="reference internal" href="sockets.html#input-events">Input Events</a></li>
-<li class="toctree-l2"><a class="reference internal" href="sockets.html#output-events">Output Events</a></li>
-<li class="toctree-l2"><a class="reference internal" href="sockets.html#http-client-server">HTTP client/server</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="internal_documentation.html"> Internal Documentation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="statecharts_core_int.html">Statecharts Core</a></li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="references">
-<h2>References<a class="headerlink" href="#references" title="Permalink to this headline">¶</a></h2>
-<table class="docutils citation" frame="void" id="sccd" rules="none">
-<colgroup><col class="label" /><col /></colgroup>
-<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id1">[SCCD]</a></td><td>Simon Van Mierlo, Yentl Van Tendeloo, Bart Meyers, Joeri Exelmans, and Hans Vangheluwe. SCCD: SCXML extended with class diagrams. In <em>3rd Workshop on Engineering Interactive Systems with SCXML, part of EICS 2016</em>, 2016. [<a class="reference external" href="http://www.scxmlworkshop.de/eics2016/submissions/SCCD%20SCXML%20Extended%20with%20Class%20Diagrams.pdf">LINK</a>]</td></tr>
-</tbody>
-</table>
-<table class="docutils citation" frame="void" id="statecharts" rules="none">
-<colgroup><col class="label" /><col /></colgroup>
-<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id2">[Statecharts]</a></td><td>David Harel. Statecharts: A visual formalism for complex systems. <em>Sci. Comput. Program. 8</em>, 3 (1987), 231–274. [<a class="reference external" href="http://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf">LINK</a>]</td></tr>
-</tbody>
-</table>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h3><a href="#">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">SCCD Documentation</a><ul>
-<li><a class="reference internal" href="#contents">Contents</a></li>
-<li><a class="reference internal" href="#references">References</a></li>
-</ul>
-</li>
-</ul>
-
-  <h4>Next topic</h4>
-  <p class="topless"><a href="installation.html"
-                        title="next chapter">Installation</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/index.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="installation.html" title="Installation"
-             >next</a> |</li>
-        <li class="nav-item nav-item-0"><a href="#">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 150
doc/_build/html/installation.html

@@ -1,150 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Installation &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Language Features" href="language_features.html" />
-    <link rel="prev" title="SCCD Documentation" href="index.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="language_features.html" title="Language Features"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="index.html" title="SCCD Documentation"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="installation">
-<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
-<p>This section describes the necessary steps for installing SCCD.</p>
-<div class="section" id="download">
-<h2>Download<a class="headerlink" href="#download" title="Permalink to this headline">¶</a></h2>
-<p>The current version of SCCD is v0.9. You can download it using this link: <a class="reference external" href="https://msdl.uantwerpen.be/git/simon/SCCD/archive/v0.9.zip">https://msdl.uantwerpen.be/git/simon/SCCD/archive/v0.9.zip</a></p>
-<p>Unzip the contents of the archive to a folder of your choice.</p>
-</div>
-<div class="section" id="dependencies">
-<h2>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline">¶</a></h2>
-<p>SCCD depends on Python 2.7, which you can download from <a class="reference external" href="https://www.python.org/download/releases/2.7/">https://www.python.org/download/releases/2.7/</a></p>
-</div>
-<div class="section" id="sccd-installation">
-<h2>SCCD Installation<a class="headerlink" href="#sccd-installation" title="Permalink to this headline">¶</a></h2>
-<p>Execute the following command inside the <em>src</em> folder:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">install</span> <span class="o">--</span><span class="n">user</span>
-</pre></div>
-</div>
-<p>Afterwards, SCCD should be installed. This can easily be checked with the command:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="o">-</span><span class="n">c</span> <span class="s">&quot;import sccd&quot;</span>
-</pre></div>
-</div>
-<p>If this returns without errors, SCCD is sucessfully installed.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h3><a href="index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Installation</a><ul>
-<li><a class="reference internal" href="#download">Download</a></li>
-<li><a class="reference internal" href="#dependencies">Dependencies</a></li>
-<li><a class="reference internal" href="#sccd-installation">SCCD Installation</a></li>
-</ul>
-</li>
-</ul>
-
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="index.html"
-                        title="previous chapter">SCCD Documentation</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="language_features.html"
-                        title="next chapter">Language Features</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/installation.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="language_features.html" title="Language Features"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="index.html" title="SCCD Documentation"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 123
doc/_build/html/internal_documentation.html

@@ -1,123 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Internal Documentation &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Statecharts Core" href="statecharts_core_int.html" />
-    <link rel="prev" title="Socket Communication" href="sockets.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="statecharts_core_int.html" title="Statecharts Core"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="sockets.html" title="Socket Communication"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="internal-documentation">
-<h1>Internal Documentation<a class="headerlink" href="#internal-documentation" title="Permalink to this headline">¶</a></h1>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="statecharts_core_int.html">Statecharts Core</a></li>
-</ul>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="sockets.html"
-                        title="previous chapter">Socket Communication</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="statecharts_core_int.html"
-                        title="next chapter">Statecharts Core</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/internal_documentation.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="statecharts_core_int.html" title="Statecharts Core"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="sockets.html" title="Socket Communication"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

文件差異過大導致無法顯示
+ 0 - 693
doc/_build/html/language_features.html


二進制
doc/_build/html/objects.inv


+ 0 - 114
doc/_build/html/py-modindex.html

@@ -1,114 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Python Module Index &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
- 
-
-
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="#" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-
-   <h1>Python Module Index</h1>
-
-   <div class="modindex-jumpbox">
-   <a href="#cap-s"><strong>s</strong></a>
-   </div>
-
-   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
-     <tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
-     <tr class="cap" id="cap-s"><td></td><td>
-       <strong>s</strong></td><td></td></tr>
-     <tr>
-       <td><img src="_static/minus.png" class="toggler"
-              id="toggle-1" style="display: none" alt="-" /></td>
-       <td>
-       <code class="xref">sccd</code></td><td>
-       <em></em></td></tr>
-     <tr class="cg-1">
-       <td></td>
-       <td>&#160;&#160;&#160;
-       <a href="statecharts_core_int.html#module-sccd.runtime.statecharts_core"><code class="xref">sccd.runtime.statecharts_core</code></a></td><td>
-       <em></em></td></tr>
-   </table>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="#" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

文件差異過大導致無法顯示
+ 0 - 202
doc/_build/html/runtime_platforms.html


+ 0 - 108
doc/_build/html/search.html

@@ -1,108 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Search &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <script type="text/javascript" src="_static/searchtools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-  <script type="text/javascript">
-    jQuery(function() { Search.loadIndex("searchindex.js"); });
-  </script>
-  
-  <script type="text/javascript" id="searchindexloader"></script>
-   
-
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <h1 id="search-documentation">Search</h1>
-  <div id="fallback" class="admonition warning">
-  <script type="text/javascript">$('#fallback').hide();</script>
-  <p>
-    Please activate JavaScript to enable the search
-    functionality.
-  </p>
-  </div>
-  <p>
-    From here you can search these documents. Enter your search
-    words into the box below and click "search". Note that the search
-    function will automatically search for all of the words. Pages
-    containing fewer words won't appear in the result list.
-  </p>
-  <form action="" method="get">
-    <input type="text" name="q" value="" />
-    <input type="submit" value="search" />
-    <span id="search-progress" style="padding-left: 10px"></span>
-  </form>
-  
-  <div id="search-results">
-  
-  </div>
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

文件差異過大導致無法顯示
+ 0 - 1
doc/_build/html/searchindex.js


+ 0 - 152
doc/_build/html/semantic_options.html

@@ -1,152 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Semantic Options &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Socket Communication" href="sockets.html" />
-    <link rel="prev" title="Examples" href="examples.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="sockets.html" title="Socket Communication"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="examples.html" title="Examples"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="semantic-options">
-<h1>Semantic Options<a class="headerlink" href="#semantic-options" title="Permalink to this headline">¶</a></h1>
-<p>Please see <a class="reference internal" href="#semanticoptions" id="id1">[SemanticOptions]</a> for more information on the several semantic options.</p>
-<div class="section" id="big-step-maximality">
-<span id="id2"></span><h2>Big Step Maximality<a class="headerlink" href="#big-step-maximality" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="internal-event-lifeline">
-<span id="id3"></span><h2>Internal Event Lifeline<a class="headerlink" href="#internal-event-lifeline" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="input-event-lifeline">
-<span id="id4"></span><h2>Input Event Lifeline<a class="headerlink" href="#input-event-lifeline" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="priority">
-<span id="id5"></span><h2>Priority<a class="headerlink" href="#priority" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="concurrency">
-<span id="id6"></span><h2>Concurrency<a class="headerlink" href="#concurrency" title="Permalink to this headline">¶</a></h2>
-<table class="docutils citation" frame="void" id="semanticoptions" rules="none">
-<colgroup><col class="label" /><col /></colgroup>
-<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id1">[SemanticOptions]</a></td><td>Esmaeilsabzali, S., Day, N. A., Atlee, J. M., and Niu, J. <em>Deconstructing the semantics of big-step modelling languages</em>. Requirements Engineering 15, 2 (2010), 235–265. [<a class="reference external" href="https://cs.uwaterloo.ca/~sesmaeil/publications/2010/REJ10.pdf">LINK</a>]</td></tr>
-</tbody>
-</table>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h3><a href="index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Semantic Options</a><ul>
-<li><a class="reference internal" href="#big-step-maximality">Big Step Maximality</a></li>
-<li><a class="reference internal" href="#internal-event-lifeline">Internal Event Lifeline</a></li>
-<li><a class="reference internal" href="#input-event-lifeline">Input Event Lifeline</a></li>
-<li><a class="reference internal" href="#priority">Priority</a></li>
-<li><a class="reference internal" href="#concurrency">Concurrency</a></li>
-</ul>
-</li>
-</ul>
-
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="examples.html"
-                        title="previous chapter">Examples</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="sockets.html"
-                        title="next chapter">Socket Communication</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/semantic_options.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="sockets.html" title="Socket Communication"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="examples.html" title="Examples"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 284
doc/_build/html/sockets.html

@@ -1,284 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Socket Communication &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="next" title="Internal Documentation" href="internal_documentation.html" />
-    <link rel="prev" title="Semantic Options" href="semantic_options.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="internal_documentation.html" title="Internal Documentation"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="semantic_options.html" title="Semantic Options"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="socket-communication">
-<h1>Socket Communication<a class="headerlink" href="#socket-communication" title="Permalink to this headline">¶</a></h1>
-<p>Sockets, for network communication, are an oftenly needed capability for many complex system.
-By default, however, Statecharts, and SCCD in particular, do not handle socket communication at all.
-Shifting all socket communication into action code is not an option either, as it is potentially a blocking operation.
-Additionally, the code wraps different socket implementations and socket configuration.</p>
-<p>This module will, after starting the translation service, translate all events on the <em>socket_in</em> and <em>socket_out</em> port to socket operations.
-Blocking then happens on another thread, while the statechart can continue its usual execution.
-When the socket operation returns, the result will be raised in the statechart as an event.</p>
-<div class="section" id="initialization">
-<h2>Initialization<a class="headerlink" href="#initialization" title="Permalink to this headline">¶</a></h2>
-<p>To use the translation service, several steps should be followed:</p>
-<blockquote>
-<div><ol class="arabic simple">
-<li>Import sccd.sccd_runtime.socket2event as socket2event;</li>
-<li>Write your model with a <em>socket_in</em> and <em>socket_out</em> port;</li>
-<li>Before starting the controller, invoke <em>socket2event.boot_translation_service(controller)</em> with the controller as its first argument;</li>
-<li>Now raise and catch events as specified here, to communicate with sockets.</li>
-</ol>
-</div></blockquote>
-</div>
-<div class="section" id="input-events">
-<h2>Input Events<a class="headerlink" href="#input-events" title="Permalink to this headline">¶</a></h2>
-<table border="1" class="docutils">
-<colgroup>
-<col width="22%" />
-<col width="41%" />
-<col width="36%" />
-</colgroup>
-<thead valign="bottom">
-<tr class="row-odd"><th class="head">Event</th>
-<th class="head">Parameters</th>
-<th class="head">Meaning</th>
-</tr>
-</thead>
-<tbody valign="top">
-<tr class="row-even"><td>accept_socket</td>
-<td>socket</td>
-<td>socket.accept()</td>
-</tr>
-<tr class="row-odd"><td>recv_socket</td>
-<td>socket</td>
-<td>socket.recv(2**16)</td>
-</tr>
-<tr class="row-even"><td>connect_socket</td>
-<td>socket, address</td>
-<td>socket.connect(address)</td>
-</tr>
-<tr class="row-odd"><td>create_socket</td>
-<td>&nbsp;</td>
-<td>new Socket()</td>
-</tr>
-<tr class="row-even"><td>close_socket</td>
-<td>socket</td>
-<td>socket.close()</td>
-</tr>
-<tr class="row-odd"><td>send_socket</td>
-<td>socket, data</td>
-<td>socket.send(data)</td>
-</tr>
-<tr class="row-even"><td>bind_socket</td>
-<td>socket, address</td>
-<td>socket.bind(address)</td>
-</tr>
-<tr class="row-odd"><td>listen_socket</td>
-<td>socket</td>
-<td>socket.listen()</td>
-</tr>
-<tr class="row-even"><td>stop</td>
-<td>socket</td>
-<td>stops translator service</td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="output-events">
-<h2>Output Events<a class="headerlink" href="#output-events" title="Permalink to this headline">¶</a></h2>
-<table border="1" class="docutils">
-<colgroup>
-<col width="26%" />
-<col width="39%" />
-<col width="35%" />
-</colgroup>
-<thead valign="bottom">
-<tr class="row-odd"><th class="head">Event</th>
-<th class="head">Arguments</th>
-<th class="head">Response to</th>
-</tr>
-</thead>
-<tbody valign="top">
-<tr class="row-even"><td>received_socket</td>
-<td>socket, data</td>
-<td>recv_socket</td>
-</tr>
-<tr class="row-odd"><td>sent_socket</td>
-<td>socket, bytes</td>
-<td>send_socket</td>
-</tr>
-<tr class="row-even"><td>accepted_socket</td>
-<td>socket, connection</td>
-<td>accept_socket</td>
-</tr>
-<tr class="row-odd"><td>connected_socket</td>
-<td>socket</td>
-<td>connect_socket</td>
-</tr>
-<tr class="row-even"><td>closed_socket</td>
-<td>socket</td>
-<td>close_socket</td>
-</tr>
-<tr class="row-odd"><td>bound_socket</td>
-<td>socket</td>
-<td>bind_socket</td>
-</tr>
-<tr class="row-even"><td>listened_socket</td>
-<td>socket</td>
-<td>listen_socket</td>
-</tr>
-<tr class="row-odd"><td>error_socket</td>
-<td>socket, error</td>
-<td>Socket error occurs</td>
-</tr>
-<tr class="row-even"><td>unknown_error_socket</td>
-<td>socket, error</td>
-<td>Python error occurs</td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="http-client-server">
-<h2>HTTP client/server<a class="headerlink" href="#http-client-server" title="Permalink to this headline">¶</a></h2>
-<p>Using this library, an HTTP echo client and server are implemented.
-The server echoes all data received from the client.
-The client connects to the server and sends some data.
-These are included in the examples directory</p>
-<p>Compile the server using:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="n">python_sccd_compiler</span><span class="o">/</span><span class="n">sccdc</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">p</span> <span class="n">threads</span> <span class="n">server</span><span class="o">.</span><span class="n">xml</span>
-</pre></div>
-</div>
-<p>and the client using:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="n">python_sccd_compiler</span><span class="o">/</span><span class="n">sccdc</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">p</span> <span class="n">threads</span> <span class="n">client</span><span class="o">.</span><span class="n">xml</span>
-</pre></div>
-</div>
-<p>Afterwards, you can run the server as:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="n">run_server</span><span class="o">.</span><span class="n">py</span>
-</pre></div>
-</div>
-<p>which will start up a simple HTTP echo server on port 8080
-(configurable in constructor).
-Then you can start up several clients using:</p>
-<div class="highlight-default"><div class="highlight"><pre><span class="n">python</span> <span class="n">run_client</span><span class="o">.</span><span class="n">py</span>
-</pre></div>
-</div>
-<p>The client will send out a counter to the server and print out the
-reply. The server is able to connect to multiple clients simultaneously,
-so can handle multiple open connections without getting confused.</p>
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h3><a href="index.html">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Socket Communication</a><ul>
-<li><a class="reference internal" href="#initialization">Initialization</a></li>
-<li><a class="reference internal" href="#input-events">Input Events</a></li>
-<li><a class="reference internal" href="#output-events">Output Events</a></li>
-<li><a class="reference internal" href="#http-client-server">HTTP client/server</a></li>
-</ul>
-</li>
-</ul>
-
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="semantic_options.html"
-                        title="previous chapter">Semantic Options</a></p>
-  <h4>Next topic</h4>
-  <p class="topless"><a href="internal_documentation.html"
-                        title="next chapter">Internal Documentation</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/sockets.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="internal_documentation.html" title="Internal Documentation"
-             >next</a> |</li>
-        <li class="right" >
-          <a href="semantic_options.html" title="Semantic Options"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>

+ 0 - 111
doc/_build/html/statecharts_core_int.html

@@ -1,111 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Statecharts Core &#8212; SCCD 0.9 documentation</title>
-    
-    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    './',
-        VERSION:     '0.9',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/underscore.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="SCCD 0.9 documentation" href="index.html" />
-    <link rel="up" title="Internal Documentation" href="internal_documentation.html" />
-    <link rel="prev" title="Internal Documentation" href="internal_documentation.html" /> 
-  </head>
-  <body role="document">
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="internal_documentation.html" title="Internal Documentation"
-             accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li>
-          <li class="nav-item nav-item-1"><a href="internal_documentation.html" accesskey="U">Internal Documentation</a> &#187;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body" role="main">
-            
-  <div class="section" id="module-sccd.runtime.statecharts_core">
-<span id="statecharts-core"></span><h1>Statecharts Core<a class="headerlink" href="#module-sccd.runtime.statecharts_core" title="Permalink to this headline">¶</a></h1>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
-        <div class="sphinxsidebarwrapper">
-  <h4>Previous topic</h4>
-  <p class="topless"><a href="internal_documentation.html"
-                        title="previous chapter">Internal Documentation</a></p>
-  <div role="note" aria-label="source link">
-    <h3>This Page</h3>
-    <ul class="this-page-menu">
-      <li><a href="_sources/statecharts_core_int.txt"
-            rel="nofollow">Show Source</a></li>
-    </ul>
-   </div>
-<div id="searchbox" style="display: none" role="search">
-  <h3>Quick search</h3>
-    <form class="search" action="search.html" method="get">
-      <div><input type="text" name="q" /></div>
-      <div><input type="submit" value="Go" /></div>
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related" role="navigation" aria-label="related navigation">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li class="right" >
-          <a href="internal_documentation.html" title="Internal Documentation"
-             >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">SCCD 0.9 documentation</a> &#187;</li>
-          <li class="nav-item nav-item-1"><a href="internal_documentation.html" >Internal Documentation</a> &#187;</li> 
-      </ul>
-    </div>
-    <div class="footer" role="contentinfo">
-        &#169; Copyright 2016, Simon Van Mierlo.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
-    </div>
-  </body>
-</html>