<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>CodeMirror: xu mode</title>
    <link rel="stylesheet" href="../../lib/codemirror.css">
    <script src="../../lib/codemirror.js"></script>
    <script src="mscgen.js"></script>
    <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
  </head>
  <body>
    <h1>CodeMirror: xù mode</h1>

<div><textarea id="code">
# test50 - expansions to mscgen to support inline expressions
#          for now in a separate language: xù
msc {

  hscale="0.8",
  width="700";

  a,
  b [label="change store"],
  c,
  d [label="necro queue"],
  e [label="natalis queue"],
  f;

  a =>> b [label="get change list()"];
  a alt f [label="changes found"] { /* alt is a xu specific keyword*/
    b >> a [label="list of changes"];
    a =>> c [label="cull old stuff (list of changes)"];
    b loop e [label="for each change"] { // loop is xu specific as well...
      /*
       * Here interesting stuff happens.
       * TBD
       */
      c =>> b [label="get change()"];
      b >> c [label="change"];
      c alt e [label="change too old"] {
        c =>> d [label="queue(change)"];
        --- [label="change newer than latest run"];
        c =>> e [label="queue(change)"];
        --- [label="all other cases"];
        ||| [label="leave well alone"];
      };
    };
    
    
    c >> a [label="done
    processing"];
    
    /* shucks! nothing found ...*/
    --- [label="nothing found"];
    b >> a [label="nothing"];
    a note a [label="silent exit"];
  };
}
</textarea></div>

    <script>
      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        lineNumbers: true,
        mode: "xu",
      });
    </script>

    <p><strong>MIME types defined:</strong> <code>text/x-xu</code></p>
  </body>
</html>