Commits

Anonymous committed 48b1f08

Documentaion updated.

Comments (0)

Files changed (7)

comedy/comedy/analyzer.html

             
   <div class="section" id="comedy-analyzer-analyzer">
 <span id="module-comedy.analyzer"></span><h1><tt class="xref docutils literal"><span class="pre">comedy.analyzer</span></tt> &#8212; Analyzer<a class="headerlink" href="#comedy-analyzer-analyzer" title="Permalink to this headline">¶</a></h1>
-<p>Analyzing <a title="comedy.node.Identifier" class="reference external" href="node.html#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">comedy.node.Identifier</span></tt></a>:</p>
+<p>Analyzing <tt class="xref docutils literal"><span class="pre">comedy.node.Sumbol</span></tt>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">comedy.node</span> <span class="kn">import</span> <span class="o">*</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">comedy.object</span> <span class="kn">import</span> <span class="o">*</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">id</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span><span class="s">u&quot;test&quot;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">id</span> <span class="o">=</span> <span class="n">Symbol</span><span class="p">(</span><span class="s">u&quot;test&quot;</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">env</span> <span class="o">=</span> <span class="n">Object</span><span class="p">(</span><span class="n">class_</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">env</span><span class="o">.</span><span class="n">attributes</span><span class="p">[</span><span class="s">u&quot;test&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">123</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">analyze</span><span class="p">(</span><span class="nb">id</span><span class="p">)(</span><span class="n">env</span><span class="p">)</span>
 </div>
 <p>Analyzing <a title="comedy.node.Attribute" class="reference external" href="node.html#comedy.node.Attribute"><tt class="xref docutils literal"><span class="pre">comedy.node.Attribute</span></tt></a>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">env</span><span class="o">.</span><span class="n">attributes</span><span class="p">[</span><span class="s">u&quot;environment&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">env</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">attr</span> <span class="o">=</span> <span class="n">Attribute</span><span class="p">(</span><span class="n">Identifier</span><span class="p">(</span><span class="s">u&quot;environment&quot;</span><span class="p">),</span> <span class="nb">id</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">attr</span> <span class="o">=</span> <span class="n">Attribute</span><span class="p">(</span><span class="n">Symbol</span><span class="p">(</span><span class="s">u&quot;environment&quot;</span><span class="p">),</span> <span class="nb">id</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">analyze</span><span class="p">(</span><span class="n">attr</span><span class="p">)(</span><span class="n">env</span><span class="p">)</span>
 <span class="go">123</span>
 </pre></div>

comedy/comedy/node.html

     <script type="text/javascript" src="../_static/doctools.js"></script>
     <link rel="top" title="Comedy v0.1 documentation" href="../index.html" />
     <link rel="up" title="comedy — Comedy internals" href="../comedy.html" />
-    <link rel="next" title="comedy.parser — A poor Metaphor parser" href="parser.html" />
+    <link rel="next" title="comedy.parser — A poor Veeyu parser" href="parser.html" />
     <link rel="prev" title="comedy — Comedy internals" href="../comedy.html" /> 
   </head>
   <body>
           <a href="../modindex.html" title="Global Module Index"
              accesskey="M">modules</a> |</li>
         <li class="right" >
-          <a href="parser.html" title="comedy.parser — A poor Metaphor parser"
+          <a href="parser.html" title="comedy.parser — A poor Veeyu parser"
              accesskey="N">next</a> |</li>
         <li class="right" >
           <a href="../comedy.html" title="comedy — Comedy internals"
 <pre>
 <strong id="grammar-token-argument_list">argument_list        </strong> ::=  [ <a class="reference internal" href="#grammar-token-argument"><tt class="xref docutils literal"><span class="pre">argument</span></tt></a> ( &quot;,&quot; <a class="reference internal" href="#grammar-token-argument"><tt class="xref docutils literal"><span class="pre">argument</span></tt></a> )* [&quot;,&quot;] ]
 <strong id="grammar-token-unnamed_argument_list">unnamed_argument_list</strong> ::=  [ <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> ( &quot;,&quot; <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> )* [&quot;,&quot;] ]
-<strong id="grammar-token-argument">argument             </strong> ::=  [<a class="reference internal" href="#grammar-token-identifier"><tt class="xref docutils literal"><span class="pre">identifier</span></tt></a> &quot;:&quot;] <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a>
+<strong id="grammar-token-argument">argument             </strong> ::=  [<a class="reference internal" href="#grammar-token-symbol"><tt class="xref docutils literal"><span class="pre">symbol</span></tt></a> &quot;:&quot;] <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a>
 </pre>
 <p>The constructor takes an iterable object like <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#list"><tt class="xref docutils literal"><span class="pre">list</span></tt></a> that contains
 <tt class="docutils literal"><span class="pre">(name,</span> <span class="pre">value)</span></tt> pairs or values only in <a title="comedy.node.Form" class="reference internal" href="#comedy.node.Form"><tt class="xref docutils literal"><span class="pre">Form</span></tt></a> instances:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">args</span> <span class="o">=</span> <span class="n">ArgumentList</span><span class="p">([(</span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;name&quot;</span><span class="p">),</span> <span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;value&quot;</span><span class="p">)),</span>
-<span class="gp">... </span>              <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;value2&quot;</span><span class="p">))])</span>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">args</span> <span class="o">=</span> <span class="n">ArgumentList</span><span class="p">([(</span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;name&quot;</span><span class="p">),</span> <span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;value&quot;</span><span class="p">)),</span>
+<span class="gp">... </span>              <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;value2&quot;</span><span class="p">))])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">args</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">comedy.node.ArgumentList([(u&#39;name&#39;, comedy.node.Identifier(u&#39;value&#39;)),</span>
-<span class="go">                          comedy.node.Identifier(u&#39;value2&#39;)])</span>
+<span class="go">comedy.node.ArgumentList([(u&#39;name&#39;, comedy.node.Symbol(u&#39;value&#39;)),</span>
+<span class="go">                          comedy.node.Symbol(u&#39;value2&#39;)])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
 <span class="go">name: value, value2</span>
 </pre></div>
 </div>
 <p><a title="comedy.node.ArgumentList" class="reference internal" href="#comedy.node.ArgumentList"><tt class="xref docutils literal"><span class="pre">ArgumentList</span></tt></a> is iterable also:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">[(comedy.node.Identifier(u&#39;name&#39;), comedy.node.Identifier(u&#39;value&#39;)),</span>
-<span class="go"> (None, comedy.node.Identifier(u&#39;value2&#39;))]</span>
+<span class="go">[(comedy.node.Symbol(u&#39;name&#39;), comedy.node.Symbol(u&#39;value&#39;)),</span>
+<span class="go"> (None, comedy.node.Symbol(u&#39;value2&#39;))]</span>
 </pre></div>
 </div>
 <table class="docutils field-list" frame="void" rules="none">
 <tr class="field"><th class="field-name">Parameter:</th><td class="field-body"><em>arguments</em> &#8211; an iterable object that contains <tt class="docutils literal"><span class="pre">(name,</span> <span class="pre">value)</span></tt> pairs
 and/or values only in <a title="comedy.node.Form" class="reference internal" href="#comedy.node.Form"><tt class="xref docutils literal"><span class="pre">Form</span></tt></a> instances. <tt class="docutils literal"><span class="pre">name</span></tt>,
 the first value of each pair must be string or
-<a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> instance. <tt class="docutils literal"><span class="pre">value</span></tt>, the second value
+<a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> instance. <tt class="docutils literal"><span class="pre">value</span></tt>, the second value
 of each pair must be a <a title="comedy.node.Form" class="reference internal" href="#comedy.node.Form"><tt class="xref docutils literal"><span class="pre">Form</span></tt></a>. default is empty</td>
 </tr>
 </tbody>
 </table>
 <dl class="attribute">
-<dt id="comedy.node.ArgumentList.identifiers">
-<tt class="descname">identifiers</tt><a class="headerlink" href="#comedy.node.ArgumentList.identifiers" title="Permalink to this definition">¶</a></dt>
-<dd>Generator that yields argument names in <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
 <dt id="comedy.node.ArgumentList.names">
 <tt class="descname">names</tt><a class="headerlink" href="#comedy.node.ArgumentList.names" title="Permalink to this definition">¶</a></dt>
 <dd>Generator that yields argument names in <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a>.</dd></dl>
 
 <dl class="attribute">
+<dt id="comedy.node.ArgumentList.symbols">
+<tt class="descname">symbols</tt><a class="headerlink" href="#comedy.node.ArgumentList.symbols" title="Permalink to this definition">¶</a></dt>
+<dd>Generator that yields argument names in <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a>.</dd></dl>
+
+<dl class="attribute">
 <dt id="comedy.node.ArgumentList.values">
 <tt class="descname">values</tt><a class="headerlink" href="#comedy.node.ArgumentList.values" title="Permalink to this definition">¶</a></dt>
 <dd>Generator that yields argument values in <a title="comedy.node.Form" class="reference internal" href="#comedy.node.Form"><tt class="xref docutils literal"><span class="pre">Form</span></tt></a>.</dd></dl>
 of <a title="comedy.node.Attribute" class="reference internal" href="#comedy.node.Attribute"><tt class="xref docutils literal"><span class="pre">Attribute</span></tt></a>. <strong>It is an abstract base class, so should be
 subclassed.</strong></p>
 <pre>
-<strong id="grammar-token-attribute_name">attribute_name</strong> ::=  <a class="reference internal" href="#grammar-token-identifier"><tt class="xref docutils literal"><span class="pre">identifier</span></tt></a> | <a class="reference internal" href="#grammar-token-index"><tt class="xref docutils literal"><span class="pre">index</span></tt></a> | <a class="reference internal" href="#grammar-token-block"><tt class="xref docutils literal"><span class="pre">block</span></tt></a>
+<strong id="grammar-token-attribute_name">attribute_name</strong> ::=  <a class="reference internal" href="#grammar-token-symbol"><tt class="xref docutils literal"><span class="pre">symbol</span></tt></a> | <a class="reference internal" href="#grammar-token-index"><tt class="xref docutils literal"><span class="pre">index</span></tt></a> | <a class="reference internal" href="#grammar-token-block"><tt class="xref docutils literal"><span class="pre">block</span></tt></a>
 </pre>
 </dd></dl>
 
 <strong id="grammar-token-combination">combination    </strong> ::=  <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> &quot;(&quot; <a class="reference internal" href="#grammar-token-argument_list"><tt class="xref docutils literal"><span class="pre">argument_list</span></tt></a> &quot;)&quot; |
                      <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> &quot;:&quot; <a class="reference internal" href="#grammar-token-unnamed_argument_list"><tt class="xref docutils literal"><span class="pre">unnamed_argument_list</span></tt></a> |
                      <a class="reference internal" href="#grammar-token-binary_operator"><tt class="xref docutils literal"><span class="pre">binary_operator</span></tt></a>
-<strong id="grammar-token-binary_operator">binary_operator</strong> ::=  <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> <a class="reference internal" href="#grammar-token-identifier"><tt class="xref docutils literal"><span class="pre">identifier</span></tt></a> <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a>
+<strong id="grammar-token-binary_operator">binary_operator</strong> ::=  <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> <a class="reference internal" href="#grammar-token-symbol"><tt class="xref docutils literal"><span class="pre">symbol</span></tt></a> <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a>
 </pre>
 <p>There are three types of application forms:</p>
 <dl class="docutils">
 </dd></dl>
 
 <dl class="class">
-<dt id="comedy.node.Identifier">
-<em class="property">class </em><tt class="descclassname">comedy.node.</tt><tt class="descname">Identifier</tt><big>(</big><em>identifier</em><big>)</big><a class="headerlink" href="#comedy.node.Identifier" title="Permalink to this definition">¶</a></dt>
-<dd><p><a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> is called <strong>variable</strong>, <strong>symbol</strong> or <strong>name</strong> also.
-It is evaluated to the assigned object in the <tt class="xref docutils literal"><span class="pre">comedy.runtime.Scope</span></tt>
-with it.</p>
-<pre>
-<strong id="grammar-token-identifier">identifier</strong> ::=  ( <a class="reference internal" href="#grammar-token-id_char"><tt class="xref docutils literal"><span class="pre">id_char</span></tt></a> - ( <a class="reference internal" href="#grammar-token-digit"><tt class="xref docutils literal"><span class="pre">digit</span></tt></a> | &quot;=&quot; ) ) <a class="reference internal" href="#grammar-token-id_char"><tt class="xref docutils literal"><span class="pre">id_char</span></tt></a>* |
-                &quot;=&quot; <a class="reference internal" href="#grammar-token-id_char"><tt class="xref docutils literal"><span class="pre">id_char</span></tt></a>+
-<strong id="grammar-token-id_char">id_char   </strong> ::=  <a class="reference internal" href="#grammar-token-any_char"><tt class="xref docutils literal"><span class="pre">any_char</span></tt></a> - ( <a class="reference internal" href="#grammar-token-whitespace"><tt class="xref docutils literal"><span class="pre">whitespace</span></tt></a> | &quot;:&quot; | &quot;.&quot; | &quot;,&quot; | &quot;;&quot; | &quot;(&quot; |
-                               &quot;)&quot; | &quot;[&quot; | &quot;]&quot; | &quot;{&quot; | &quot;}&quot; | '&quot;' | &quot;'&quot;)
-</pre>
-<p>Identifiers of the same name are the same:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Identifier</span><span class="p">(</span><span class="s">u&quot;abc&quot;</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Identifier</span><span class="p">(</span><span class="s">u&quot;abc&quot;</span><span class="p">)</span>
-<span class="go">True</span>
-</pre></div>
-</div>
-<p>A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/exceptions.html#exceptions.ValueError"><tt class="xref docutils literal"><span class="pre">ValueError</span></tt></a> rises when the invalid identifier string has given:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Identifier</span><span class="p">(</span><span class="s">u&quot;f(x)&quot;</span><span class="p">)</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="nc">ValueError: invalid identifier</span>: <span class="n-Identifier">u&#39;f(x)&#39;</span>
-</pre></div>
-</div>
-<p>Takes an <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> string only. A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/exceptions.html#exceptions.TypeError"><tt class="xref docutils literal"><span class="pre">TypeError</span></tt></a> rises when any
-else has given:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Identifier</span><span class="p">([</span><span class="s">&quot;id&quot;</span><span class="p">])</span>
-<span class="gt">Traceback (most recent call last):</span>
-  <span class="c">...</span>
-<span class="nc">TypeError</span>: <span class="n-Identifier">identifier must be an unicode string, not [&#39;id&#39;]</span>
-</pre></div>
-</div>
-<p>However a <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#str"><tt class="xref docutils literal"><span class="pre">str</span></tt></a> becomes an <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> string:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;str&quot;</span><span class="p">)</span>
-<span class="go">comedy.node.Identifier(u&#39;str&#39;)</span>
-</pre></div>
-</div>
-<p>For the <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> instance, the constructor behaves as identity
-function:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Identifier</span><span class="p">(</span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;id&quot;</span><span class="p">))</span>
-<span class="go">comedy.node.Identifier(u&#39;id&#39;)</span>
-</pre></div>
-</div>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
-<tbody valign="top">
-<tr class="field"><th class="field-name">Parameter:</th><td class="field-body"><em>identifier</em> &#8211; an identifier string in <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> or
-<a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#str"><tt class="xref docutils literal"><span class="pre">str</span></tt></a>. if the <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> instance has
-given, returns it</td>
-</tr>
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">an <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a></td>
-</tr>
-</tbody>
-</table>
-<dl class="data">
-<dt id="comedy.node.Identifier.PATTERN">
-<tt class="descname">PATTERN</tt><a class="headerlink" href="#comedy.node.Identifier.PATTERN" title="Permalink to this definition">¶</a></dt>
-<dd>Regular expression (<a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/re.html#module-re"><tt class="xref docutils literal"><span class="pre">re</span></tt></a>) pattern that matches to identifier
-<a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> strings.</dd></dl>
-
-<dl class="data">
-<dt id="comedy.node.Identifier.POOL">
-<tt class="descname">POOL</tt><a class="headerlink" href="#comedy.node.Identifier.POOL" title="Permalink to this definition">¶</a></dt>
-<dd>A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/stdtypes.html#dict"><tt class="xref docutils literal"><span class="pre">dict</span></tt></a> of <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> keys and <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> values.</dd></dl>
-
-</dd></dl>
-
-<dl class="class">
 <dt id="comedy.node.Index">
 <em class="property">class </em><tt class="descclassname">comedy.node.</tt><tt class="descname">Index</tt><big>(</big><em>arguments</em><big>)</big><a class="headerlink" href="#comedy.node.Index" title="Permalink to this definition">¶</a></dt>
 <dd><p><a title="comedy.node.Index" class="reference internal" href="#comedy.node.Index"><tt class="xref docutils literal"><span class="pre">Index</span></tt></a> is also called <strong>subscript</strong>.</p>
 <dd><p><a title="comedy.node.Quote" class="reference internal" href="#comedy.node.Quote"><tt class="xref docutils literal"><span class="pre">Quote</span></tt></a> a form.</p>
 <pre>
 <strong id="grammar-token-quote">quote</strong> ::=  &quot;:(&quot; <a class="reference internal" href="#grammar-token-form"><tt class="xref docutils literal"><span class="pre">form</span></tt></a> &quot;)&quot; |
-           &quot;:&quot; <a class="reference internal" href="#grammar-token-identifier"><tt class="xref docutils literal"><span class="pre">identifier</span></tt></a>
+           &quot;:&quot; <a class="reference internal" href="#grammar-token-symbol"><tt class="xref docutils literal"><span class="pre">symbol</span></tt></a>
 </pre>
-<p>Quotes for the same identifiers are the same:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">q1</span> <span class="o">=</span> <span class="n">Quote</span><span class="p">(</span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">))</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">q2</span> <span class="o">=</span> <span class="n">Quote</span><span class="p">(</span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">))</span>
+<p>Quotes for the same symbols are the same:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">q1</span> <span class="o">=</span> <span class="n">Quote</span><span class="p">(</span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">))</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">q2</span> <span class="o">=</span> <span class="n">Quote</span><span class="p">(</span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">q1</span> <span class="ow">is</span> <span class="n">q2</span>
 <span class="go">True</span>
 </pre></div>
 <dt id="comedy.node.Quote.POOL">
 <tt class="descname">POOL</tt><a class="headerlink" href="#comedy.node.Quote.POOL" title="Permalink to this definition">¶</a></dt>
 <dd>A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/stdtypes.html#dict"><tt class="xref docutils literal"><span class="pre">dict</span></tt></a> of <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> keys and <a title="comedy.node.Quote" class="reference internal" href="#comedy.node.Quote"><tt class="xref docutils literal"><span class="pre">Quote</span></tt></a> values.
-Only quotes for <a title="comedy.node.Identifier" class="reference internal" href="#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">Identifier</span></tt></a> are stored in this dictionary.</dd></dl>
+Only quotes for <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> are stored in this dictionary.</dd></dl>
 
 </dd></dl>
 
 
 </dd></dl>
 
+<dl class="class">
+<dt id="comedy.node.Symbol">
+<em class="property">class </em><tt class="descclassname">comedy.node.</tt><tt class="descname">Symbol</tt><big>(</big><em>symbol</em><big>)</big><a class="headerlink" href="#comedy.node.Symbol" title="Permalink to this definition">¶</a></dt>
+<dd><p><a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> is called <strong>variable</strong>, <strong>identifier</strong> or <strong>name</strong> also.
+It is evaluated to the assigned object in the <tt class="xref docutils literal"><span class="pre">comedy.runtime.Scope</span></tt>
+with it.</p>
+<pre>
+<strong id="grammar-token-symbol">symbol  </strong> ::=  ( <a class="reference internal" href="#grammar-token-sym_char"><tt class="xref docutils literal"><span class="pre">sym_char</span></tt></a> - ( <a class="reference internal" href="#grammar-token-digit"><tt class="xref docutils literal"><span class="pre">digit</span></tt></a> | &quot;=&quot; ) ) <a class="reference internal" href="#grammar-token-sym_char"><tt class="xref docutils literal"><span class="pre">sym_char</span></tt></a>* |
+              &quot;=&quot; <a class="reference internal" href="#grammar-token-sym_char"><tt class="xref docutils literal"><span class="pre">sym_char</span></tt></a>+
+<strong id="grammar-token-sym_char">sym_char</strong> ::=  <a class="reference internal" href="#grammar-token-any_char"><tt class="xref docutils literal"><span class="pre">any_char</span></tt></a> - ( <a class="reference internal" href="#grammar-token-whitespace"><tt class="xref docutils literal"><span class="pre">whitespace</span></tt></a> | &quot;:&quot; | &quot;.&quot; | &quot;,&quot; | &quot;;&quot; | &quot;(&quot; |
+                             &quot;)&quot; | &quot;[&quot; | &quot;]&quot; | &quot;{&quot; | &quot;}&quot; | '&quot;' | &quot;'&quot;)
+</pre>
+<p>Symbols of the same name are the same:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Symbol</span><span class="p">(</span><span class="s">u&quot;abc&quot;</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Symbol</span><span class="p">(</span><span class="s">u&quot;abc&quot;</span><span class="p">)</span>
+<span class="go">True</span>
+</pre></div>
+</div>
+<p>A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/exceptions.html#exceptions.ValueError"><tt class="xref docutils literal"><span class="pre">ValueError</span></tt></a> rises when the invalid symbol string has given:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Symbol</span><span class="p">(</span><span class="s">u&quot;f(x)&quot;</span><span class="p">)</span>
+<span class="gt">Traceback (most recent call last):</span>
+  <span class="c">...</span>
+<span class="nc">ValueError: invalid symbol</span>: <span class="n-Identifier">u&#39;f(x)&#39;</span>
+</pre></div>
+</div>
+<p>Takes an <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> string only. A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/exceptions.html#exceptions.TypeError"><tt class="xref docutils literal"><span class="pre">TypeError</span></tt></a> rises when any
+else has given:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Symbol</span><span class="p">([</span><span class="s">&quot;id&quot;</span><span class="p">])</span>
+<span class="gt">Traceback (most recent call last):</span>
+  <span class="c">...</span>
+<span class="nc">TypeError</span>: <span class="n-Identifier">symbol must be an unicode string, not [&#39;id&#39;]</span>
+</pre></div>
+</div>
+<p>However a <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#str"><tt class="xref docutils literal"><span class="pre">str</span></tt></a> becomes an <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> string:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;str&quot;</span><span class="p">)</span>
+<span class="go">comedy.node.Symbol(u&#39;str&#39;)</span>
+</pre></div>
+</div>
+<p>For the <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> instance, the constructor behaves as identity
+function:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">Symbol</span><span class="p">(</span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;id&quot;</span><span class="p">))</span>
+<span class="go">comedy.node.Symbol(u&#39;id&#39;)</span>
+</pre></div>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Parameter:</th><td class="field-body"><em>symbol</em> &#8211; an symbol string in <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> or <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#str"><tt class="xref docutils literal"><span class="pre">str</span></tt></a>.
+if the <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> instance has given, returns it</td>
+</tr>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">an <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a></td>
+</tr>
+</tbody>
+</table>
+<dl class="data">
+<dt id="comedy.node.Symbol.PATTERN">
+<tt class="descname">PATTERN</tt><a class="headerlink" href="#comedy.node.Symbol.PATTERN" title="Permalink to this definition">¶</a></dt>
+<dd>Regular expression (<a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/re.html#module-re"><tt class="xref docutils literal"><span class="pre">re</span></tt></a>) pattern that matches to symbol
+<a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> strings.</dd></dl>
+
+<dl class="data">
+<dt id="comedy.node.Symbol.POOL">
+<tt class="descname">POOL</tt><a class="headerlink" href="#comedy.node.Symbol.POOL" title="Permalink to this definition">¶</a></dt>
+<dd>A <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/stdtypes.html#dict"><tt class="xref docutils literal"><span class="pre">dict</span></tt></a> of <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/library/functions.html#unicode"><tt class="xref docutils literal"><span class="pre">unicode</span></tt></a> keys and <a title="comedy.node.Symbol" class="reference internal" href="#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">Symbol</span></tt></a> values.</dd></dl>
+
+</dd></dl>
+
 </div>
 
 
                                   title="previous chapter"><tt class="docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a></p>
             <h4>Next topic</h4>
             <p class="topless"><a href="parser.html"
-                                  title="next chapter"><tt class="docutils literal"><span class="pre">comedy.parser</span></tt> &#8212; A poor Metaphor parser</a></p>
+                                  title="next chapter"><tt class="docutils literal"><span class="pre">comedy.parser</span></tt> &#8212; A poor Veeyu parser</a></p>
             <h3>This Page</h3>
             <ul class="this-page-menu">
               <li><a href="../_sources/comedy/node.txt"
           <a href="../modindex.html" title="Global Module Index"
              >modules</a> |</li>
         <li class="right" >
-          <a href="parser.html" title="comedy.parser — A poor Metaphor parser"
+          <a href="parser.html" title="comedy.parser — A poor Veeyu parser"
              >next</a> |</li>
         <li class="right" >
           <a href="../comedy.html" title="comedy — Comedy internals"

comedy/comedy/object.html

     <link rel="top" title="Comedy v0.1 documentation" href="../index.html" />
     <link rel="up" title="comedy — Comedy internals" href="../comedy.html" />
     <link rel="next" title="comedy.analyzer — Analyzer" href="analyzer.html" />
-    <link rel="prev" title="comedy.visitor — Simple visitor pattern" href="visitor.html" /> 
+    <link rel="prev" title="comedy.compiler — Veeyu to Python compiler" href="compiler.html" /> 
   </head>
   <body>
     <div class="related">
           <a href="analyzer.html" title="comedy.analyzer — Analyzer"
              accesskey="N">next</a> |</li>
         <li class="right" >
-          <a href="visitor.html" title="comedy.visitor — Simple visitor pattern"
+          <a href="compiler.html" title="comedy.compiler — Veeyu to Python compiler"
              accesskey="P">previous</a> |</li>
         <li><a href="../index.html">Comedy v0.1 documentation</a> &raquo;</li>
-          <li><a href="../comedy.html" accesskey="U"><tt class="docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
+          <li><a href="../comedy.html" accesskey="U"><tt class="docutils literal docutils literal docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
       </ul>
     </div>  
 
 <dt id="comedy.object.AttributeList">
 <em class="property">class </em><tt class="descclassname">comedy.object.</tt><tt class="descname">AttributeList</tt><a class="headerlink" href="#comedy.object.AttributeList" title="Permalink to this definition">¶</a></dt>
 <dd><p>Attribute list. Attribute names are stored as
-<a title="comedy.node.Identifier" class="reference external" href="node.html#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">comedy.node.Identifier</span></tt></a>.</p>
+<a title="comedy.node.Symbol" class="reference external" href="node.html#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">comedy.node.Symbol</span></tt></a>.</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span> <span class="o">=</span> <span class="n">AttributeList</span><span class="p">()</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="p">[</span><span class="s">&quot;abc&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">123</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="p">[</span><span class="n">comedy</span><span class="o">.</span><span class="n">node</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">)]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="p">[</span><span class="n">comedy</span><span class="o">.</span><span class="n">node</span><span class="o">.</span><span class="n">Symbol</span><span class="p">(</span><span class="s">&quot;abc&quot;</span><span class="p">)]</span>
 <span class="go">123</span>
 </pre></div>
 </div>
 <p>It is iterable also.</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">list</span><span class="p">(</span><span class="n">attrs</span><span class="p">)</span>
-<span class="go">[(comedy.node.Identifier(u&#39;abc&#39;), 123)]</span>
+<span class="go">[(comedy.node.Symbol(u&#39;abc&#39;), 123)]</span>
 </pre></div>
 </div>
 <dl class="attribute">
 <span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="p">[</span><span class="s">&quot;abc&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">123</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="p">[</span><span class="s">&quot;def&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">456</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">attrs</span><span class="o">.</span><span class="n">list</span>
-<span class="go">[comedy.node.Identifier(u&#39;abc&#39;), comedy.node.Identifier(u&#39;def&#39;)]</span>
+<span class="go">[comedy.node.Symbol(u&#39;abc&#39;), comedy.node.Symbol(u&#39;def&#39;)]</span>
 </pre></div>
 </div>
 </dd></dl>
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <h4>Previous topic</h4>
-            <p class="topless"><a href="visitor.html"
-                                  title="previous chapter"><tt class="docutils literal"><span class="pre">comedy.visitor</span></tt> &#8212; Simple visitor pattern</a></p>
+            <p class="topless"><a href="compiler.html"
+                                  title="previous chapter"><tt class="docutils literal"><span class="pre">comedy.compiler</span></tt> &#8212; Veeyu to Python compiler</a></p>
             <h4>Next topic</h4>
             <p class="topless"><a href="analyzer.html"
-                                  title="next chapter"><tt class="docutils literal"><span class="pre">comedy.analyzer</span></tt> &#8212; Analyzer</a></p>
+                                  title="next chapter"><tt class="docutils literal docutils literal"><span class="pre">comedy.analyzer</span></tt> &#8212; Analyzer</a></p>
             <h3>This Page</h3>
             <ul class="this-page-menu">
               <li><a href="../_sources/comedy/object.txt"
           <a href="analyzer.html" title="comedy.analyzer — Analyzer"
              >next</a> |</li>
         <li class="right" >
-          <a href="visitor.html" title="comedy.visitor — Simple visitor pattern"
+          <a href="compiler.html" title="comedy.compiler — Veeyu to Python compiler"
              >previous</a> |</li>
         <li><a href="../index.html">Comedy v0.1 documentation</a> &raquo;</li>
-          <li><a href="../comedy.html" ><tt class="docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
+          <li><a href="../comedy.html" ><tt class="docutils literal docutils literal docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">

comedy/comedy/parser.html

           <a href="node.html" title="comedy.node — Abstract syntax tree and analyzer"
              accesskey="P">previous</a> |</li>
         <li><a href="../index.html">Comedy v0.1 documentation</a> &raquo;</li>
-          <li><a href="../comedy.html" accesskey="U"><tt class="docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
+          <li><a href="../comedy.html" accesskey="U"><tt class="docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
       </ul>
     </div>  
 
 <dt id="comedy.parser.parse_form">
 <tt class="descclassname">comedy.parser.</tt><tt class="descname">parse_form</tt><big>(</big><em>text</em>, <em>offset=0</em>, <em>terminates=None</em><big>)</big><a class="headerlink" href="#comedy.parser.parse_form" title="Permalink to this definition">¶</a></dt>
 <dd><p>Parses a form text and returns a <a title="comedy.node.Form" class="reference external" href="node.html#comedy.node.Form"><tt class="xref docutils literal"><span class="pre">comedy.node.Form</span></tt></a> instance.</p>
-<p>Parsing atomic forms e.g. <a title="comedy.node.Identifier" class="reference external" href="node.html#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">comedy.node.Identifier</span></tt></a>:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;id&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Identifier(u&#39;id&#39;), 2)</span>
+<p>Parsing atomic forms e.g. <a title="comedy.node.Symbol" class="reference external" href="node.html#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">comedy.node.Symbol</span></tt></a>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;sym&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Symbol(u&#39;sym&#39;), 3)</span>
 </pre></div>
 </div>
 <p>Parsing <a title="comedy.node.Quote" class="reference external" href="node.html#comedy.node.Quote"><tt class="xref docutils literal"><span class="pre">comedy.node.Quote</span></tt></a>:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:(id)&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Quote(u&#39;id&#39;), 5)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:id&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Quote(u&#39;id&#39;), 3)</span>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:(sym)&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Quote(u&#39;sym&#39;), 6)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:sym&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Quote(u&#39;sym&#39;), 4)</span>
 </pre></div>
 </div>
 <p>Parsing <a title="comedy.node.Definition" class="reference external" href="node.html#comedy.node.Definition"><tt class="xref docutils literal"><span class="pre">comedy.node.Definition</span></tt></a>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;a = b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Definition(comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                        comedy.node.Identifier(u&#39;b&#39;)), 5)</span>
+<span class="go">(comedy.node.Definition(comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                        comedy.node.Symbol(u&#39;b&#39;)), 5)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;c:=d&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Definition(comedy.node.Identifier(u&#39;c&#39;),</span>
-<span class="go">                        comedy.node.Identifier(u&#39;d&#39;),</span>
+<span class="go">(comedy.node.Definition(comedy.node.Symbol(u&#39;c&#39;),</span>
+<span class="go">                        comedy.node.Symbol(u&#39;d&#39;),</span>
 <span class="go">                        local=True), 4)</span>
 </pre></div>
 </div>
 </div>
 <p>Parsing <a title="comedy.node.Attribute" class="reference external" href="node.html#comedy.node.Attribute"><tt class="xref docutils literal"><span class="pre">comedy.node.Attribute</span></tt></a>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;rcvr.attr&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Attribute(comedy.node.Identifier(u&#39;rcvr&#39;), u&#39;attr&#39;), 9)</span>
+<span class="go">(comedy.node.Attribute(comedy.node.Symbol(u&#39;rcvr&#39;), u&#39;attr&#39;), 9)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;(rcvr .attr)&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Attribute(comedy.node.Identifier(u&#39;rcvr&#39;), u&#39;attr&#39;), 12)</span>
+<span class="go">(comedy.node.Attribute(comedy.node.Symbol(u&#39;rcvr&#39;), u&#39;attr&#39;), 12)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;(rcvr). attr&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Attribute(comedy.node.Identifier(u&#39;rcvr&#39;), u&#39;attr&#39;), 12)</span>
+<span class="go">(comedy.node.Attribute(comedy.node.Symbol(u&#39;rcvr&#39;), u&#39;attr&#39;), 12)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:q . attr&quot;</span><span class="p">)</span>
 <span class="go">(comedy.node.Attribute(comedy.node.Quote(u&#39;q&#39;), u&#39;attr&#39;), 9)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;:(q) .attr&quot;</span><span class="p">)</span>
 <span class="go">                                             u&#39;a&#39;), u&#39;b&#39;), 6)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;a[]&quot;</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">comedy.node.Attribute(comedy.node.Identifier(u&#39;a&#39;),</span>
+<span class="go">comedy.node.Attribute(comedy.node.Symbol(u&#39;a&#39;),</span>
 <span class="go">                      comedy.node.Index(comedy.node.ArgumentList()))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">offset</span>
 <span class="go">3</span>
 <span class="go">True</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;a{}&quot;</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">comedy.node.Attribute(comedy.node.Identifier(u&#39;a&#39;),</span>
+<span class="go">comedy.node.Attribute(comedy.node.Symbol(u&#39;a&#39;),</span>
 <span class="go">                      comedy.node.Block(comedy.node.Program()))</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">offset</span>
 <span class="go">3</span>
 </div>
 <p>Parsing <a title="comedy.node.Combination" class="reference external" href="node.html#comedy.node.Combination"><tt class="xref docutils literal"><span class="pre">comedy.node.Combination</span></tt></a>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;func()&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Combination(comedy.node.Identifier(u&#39;func&#39;)), 6)</span>
+<span class="go">(comedy.node.Combination(comedy.node.Symbol(u&#39;func&#39;)), 6)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;f(x, y)&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Combination(comedy.node.Identifier(u&#39;f&#39;),</span>
-<span class="go">             comedy.node.ArgumentList([comedy.node.Identifier(u&#39;x&#39;),</span>
-<span class="go">                                       comedy.node.Identifier(u&#39;y&#39;)])),</span>
+<span class="go">(comedy.node.Combination(comedy.node.Symbol(u&#39;f&#39;),</span>
+<span class="go">             comedy.node.ArgumentList([comedy.node.Symbol(u&#39;x&#39;),</span>
+<span class="go">                                       comedy.node.Symbol(u&#39;y&#39;)])),</span>
 <span class="go"> 7)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;f: x, y&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Combination(comedy.node.Identifier(u&#39;f&#39;),</span>
-<span class="go">             comedy.node.ArgumentList([comedy.node.Identifier(u&#39;x&#39;),</span>
-<span class="go">                                       comedy.node.Identifier(u&#39;y&#39;)])),</span>
+<span class="go">(comedy.node.Combination(comedy.node.Symbol(u&#39;f&#39;),</span>
+<span class="go">             comedy.node.ArgumentList([comedy.node.Symbol(u&#39;x&#39;),</span>
+<span class="go">                                       comedy.node.Symbol(u&#39;y&#39;)])),</span>
 <span class="go"> 7)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">binop</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;a b c&quot;</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">binop</span>  <span class="c"># doctest: +ELLIPSIS</span>
 <span class="go">comedy.node.Combination(...)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">binop</span><span class="o">.</span><span class="n">function</span>
-<span class="go">comedy.node.Attribute(comedy.node.Identifier(u&#39;a&#39;), u&#39;b&#39;)</span>
+<span class="go">comedy.node.Attribute(comedy.node.Symbol(u&#39;a&#39;), u&#39;b&#39;)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">binop</span><span class="o">.</span><span class="n">arguments</span>
-<span class="go">comedy.node.ArgumentList([comedy.node.Identifier(u&#39;c&#39;)])</span>
+<span class="go">comedy.node.ArgumentList([comedy.node.Symbol(u&#39;c&#39;)])</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">offset</span>
 <span class="go">5</span>
 </pre></div>
 </div>
 <p>A <a title="comedy.parser.SyntaxError" class="reference internal" href="#comedy.parser.SyntaxError"><tt class="xref docutils literal"><span class="pre">SyntaxError</span></tt></a> rise when the given code is invalid:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;(id&quot;</span><span class="p">)</span>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;(sym&quot;</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="nc">SyntaxError: 0:3</span>: <span class="n-Identifier">expected end of parentheses &#39;)&#39;</span>
-<span class="go">(id</span>
-<span class="go">   ^</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;((id)&quot;</span><span class="p">)</span>
+<span class="nc">SyntaxError: 0:4</span>: <span class="n-Identifier">expected end of parentheses &#39;)&#39;</span>
+<span class="go">(sym</span>
+<span class="go">    ^</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;((sym)&quot;</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="nc">SyntaxError: 0:5</span>: <span class="n-Identifier">expected end of parentheses &#39;)&#39;</span>
-<span class="go">((id)</span>
-<span class="go">     ^</span>
+<span class="nc">SyntaxError: 0:6</span>: <span class="n-Identifier">expected end of parentheses &#39;)&#39;</span>
+<span class="go">((sym)</span>
+<span class="go">      ^</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_form</span><span class="p">(</span><span class="s">u&quot;()&quot;</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <dd><p>Parses a program text and returns <a title="comedy.node.Program" class="reference external" href="node.html#comedy.node.Program"><tt class="xref docutils literal"><span class="pre">comedy.node.Program</span></tt></a>
 instance.</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_program</span><span class="p">(</span><span class="s">u&quot;a; b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                      comedy.node.Identifier(u&#39;b&#39;)]), 4)</span>
+<span class="go">(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                      comedy.node.Symbol(u&#39;b&#39;)]), 4)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_program</span><span class="p">(</span><span class="s">u&quot;a ;b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                      comedy.node.Identifier(u&#39;b&#39;)]), 4)</span>
+<span class="go">(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                      comedy.node.Symbol(u&#39;b&#39;)]), 4)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_program</span><span class="p">(</span><span class="s">u&quot;a ;; b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                      comedy.node.Identifier(u&#39;b&#39;)]), 6)</span>
+<span class="go">(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                      comedy.node.Symbol(u&#39;b&#39;)]), 6)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_program</span><span class="p">(</span><span class="s">u&quot; ; a ;; b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                      comedy.node.Identifier(u&#39;b&#39;)]), 9)</span>
+<span class="go">(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                      comedy.node.Symbol(u&#39;b&#39;)]), 9)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_program</span><span class="p">(</span><span class="s">u&quot;a</span><span class="se">\r\n</span><span class="s">b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                      comedy.node.Identifier(u&#39;b&#39;)]), 4)</span>
+<span class="go">(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                      comedy.node.Symbol(u&#39;b&#39;)]), 4)</span>
 </pre></div>
 </div>
 </dd></dl>
 <tt class="descclassname">comedy.parser.</tt><tt class="descname">parse_atomic_form</tt><big>(</big><em>text</em>, <em>offset=0</em>, <em>terminates=None</em><big>)</big><a class="headerlink" href="#comedy.parser.parse_atomic_form" title="Permalink to this definition">¶</a></dt>
 <dd><p>Parses an atomic form text and returns a
 <a title="comedy.node.AtomicForm" class="reference external" href="node.html#comedy.node.AtomicForm"><tt class="xref docutils literal"><span class="pre">comedy.node.AtomicForm</span></tt></a> instance.</p>
-<p>Parsing <a title="comedy.node.Identifier" class="reference external" href="node.html#comedy.node.Identifier"><tt class="xref docutils literal"><span class="pre">comedy.node.Identifier</span></tt></a>:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;id&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Identifier(u&#39;id&#39;), 2)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;(id)&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Identifier(u&#39;id&#39;), 4)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;(((id)))&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Identifier(u&#39;id&#39;), 8)</span>
+<p>Parsing <a title="comedy.node.Symbol" class="reference external" href="node.html#comedy.node.Symbol"><tt class="xref docutils literal"><span class="pre">comedy.node.Symbol</span></tt></a>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;sym&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Symbol(u&#39;sym&#39;), 3)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;(sym)&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Symbol(u&#39;sym&#39;), 5)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;(((sym)))&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Symbol(u&#39;sym&#39;), 9)</span>
 </pre></div>
 </div>
 <p>Parsing <a title="comedy.node.Quote" class="reference external" href="node.html#comedy.node.Quote"><tt class="xref docutils literal"><span class="pre">comedy.node.Quote</span></tt></a>:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:(id)&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Quote(u&#39;id&#39;), 5)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:(( id) )&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Quote(u&#39;id&#39;), 9)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:id&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.Quote(u&#39;id&#39;), 3)</span>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:(sym)&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Quote(u&#39;sym&#39;), 6)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:(( sym) )&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Quote(u&#39;sym&#39;), 10)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&quot;:sym&quot;</span><span class="p">)</span>
+<span class="go">(comedy.node.Quote(u&#39;sym&#39;), 4)</span>
 </pre></div>
 </div>
 <p>Parsing <a title="comedy.node.Program" class="reference external" href="node.html#comedy.node.Program"><tt class="xref docutils literal"><span class="pre">comedy.node.Program</span></tt></a>:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_atomic_form</span><span class="p">(</span><span class="s">u&#39;&#39;&#39;{ a; b</span>
 <span class="gp">... </span><span class="s">c(123)</span>
 <span class="gp">... </span><span class="s">d}&#39;&#39;&#39;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.Block(comedy.node.Program([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">  comedy.node.Identifier(u&#39;b&#39;),</span>
-<span class="go">  comedy.node.Combination(comedy.node.Identifier(u&#39;c&#39;),</span>
+<span class="go">(comedy.node.Block(comedy.node.Program([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">  comedy.node.Symbol(u&#39;b&#39;),</span>
+<span class="go">  comedy.node.Combination(comedy.node.Symbol(u&#39;c&#39;),</span>
 <span class="go">    comedy.node.ArgumentList([comedy.node.NumberLiteral(123)])),</span>
-<span class="go">  comedy.node.Identifier(u&#39;d&#39;)])),</span>
+<span class="go">  comedy.node.Symbol(u&#39;d&#39;)])),</span>
 <span class="go"> 16)</span>
 </pre></div>
 </div>
 </div>
 <p>Parsing positional arguments:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;arg&quot;</span><span class="p">)</span>
-<span class="go">(comedy.node.ArgumentList([comedy.node.Identifier(u&#39;arg&#39;)]), 3)</span>
+<span class="go">(comedy.node.ArgumentList([comedy.node.Symbol(u&#39;arg&#39;)]), 3)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;a ,b,c&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.ArgumentList([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                           comedy.node.Identifier(u&#39;b&#39;),</span>
-<span class="go">                           comedy.node.Identifier(u&#39;c&#39;)]), 6)</span>
+<span class="go">(comedy.node.ArgumentList([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                           comedy.node.Symbol(u&#39;b&#39;),</span>
+<span class="go">                           comedy.node.Symbol(u&#39;c&#39;)]), 6)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;:abc, :def&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
 <span class="go">(comedy.node.ArgumentList([comedy.node.Quote(u&#39;abc&#39;),</span>
 <span class="go">                           comedy.node.Quote(u&#39;def&#39;)]), 10)</span>
 </div>
 <p>Parsing keyword (named) arguments:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;abc: def&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.ArgumentList([(u&#39;abc&#39;, comedy.node.Identifier(u&#39;def&#39;))]),</span>
+<span class="go">(comedy.node.ArgumentList([(u&#39;abc&#39;, comedy.node.Symbol(u&#39;def&#39;))]),</span>
 <span class="go"> 8)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;a::b&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
 <span class="go">(comedy.node.ArgumentList([(u&#39;a&#39;, comedy.node.Quote(u&#39;b&#39;))]), 4)</span>
 </div>
 <p>Mixed arguments:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">parse_arguments</span><span class="p">(</span><span class="s">&quot;a ,b: c, d,e:f&quot;</span><span class="p">)</span>  <span class="c"># doctest: +NORMALIZE_WHITESPACE</span>
-<span class="go">(comedy.node.ArgumentList([comedy.node.Identifier(u&#39;a&#39;),</span>
-<span class="go">                           (u&#39;b&#39;, comedy.node.Identifier(u&#39;c&#39;)),</span>
-<span class="go">                           comedy.node.Identifier(u&#39;d&#39;),</span>
-<span class="go">                           (u&#39;e&#39;, comedy.node.Identifier(u&#39;f&#39;))]), 14)</span>
+<span class="go">(comedy.node.ArgumentList([comedy.node.Symbol(u&#39;a&#39;),</span>
+<span class="go">                           (u&#39;b&#39;, comedy.node.Symbol(u&#39;c&#39;)),</span>
+<span class="go">                           comedy.node.Symbol(u&#39;d&#39;),</span>
+<span class="go">                           (u&#39;e&#39;, comedy.node.Symbol(u&#39;f&#39;))]), 14)</span>
 </pre></div>
 </div>
 <p>Compex arguments:</p>
 <span class="gp">... </span>    <span class="k">print</span> <span class="n">name</span><span class="p">,</span> <span class="s">&quot;=&gt;&quot;</span><span class="p">,</span> <span class="n">arg</span><span class="o">.</span><span class="n">generate_code_string</span><span class="p">()</span>
 <span class="gp">...</span>
 <span class="go">None =&gt; x.add(y)</span>
-<span class="go">comedy.node.Identifier(u&#39;x&#39;) =&gt; xs</span>
-<span class="go">comedy.node.Identifier(u&#39;y&#39;) =&gt; ys</span>
+<span class="go">comedy.node.Symbol(u&#39;x&#39;) =&gt; xs</span>
+<span class="go">comedy.node.Symbol(u&#39;y&#39;) =&gt; ys</span>
 <span class="go">None =&gt; x.cmp(y)</span>
 </pre></div>
 </div>
         <div class="sphinxsidebarwrapper">
             <h4>Previous topic</h4>
             <p class="topless"><a href="node.html"
-                                  title="previous chapter"><tt class="docutils literal docutils literal"><span class="pre">comedy.node</span></tt> &#8212; Abstract syntax tree and analyzer</a></p>
+                                  title="previous chapter"><tt class="docutils literal docutils literal docutils literal"><span class="pre">comedy.node</span></tt> &#8212; Abstract syntax tree and analyzer</a></p>
             <h4>Next topic</h4>
             <p class="topless"><a href="visitor.html"
-                                  title="next chapter"><tt class="docutils literal docutils literal"><span class="pre">comedy.visitor</span></tt> &#8212; Simple visitor pattern</a></p>
+                                  title="next chapter"><tt class="docutils literal"><span class="pre">comedy.visitor</span></tt> &#8212; Simple visitor pattern</a></p>
             <h3>This Page</h3>
             <ul class="this-page-menu">
               <li><a href="../_sources/comedy/parser.txt"
           <a href="node.html" title="comedy.node — Abstract syntax tree and analyzer"
              >previous</a> |</li>
         <li><a href="../index.html">Comedy v0.1 documentation</a> &raquo;</li>
-          <li><a href="../comedy.html" ><tt class="docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
+          <li><a href="../comedy.html" ><tt class="docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal"><span class="pre">comedy</span></tt> &#8212; Comedy internals</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
 <table width="100%" class="indextable"><tr><td width="33%" valign="top">
 <dl>
 
-<dt><a href="comedy/node.html#comedy.node.Identifier">Identifier (class in comedy.node)</a></dt>
-<dt><a href="comedy/node.html#comedy.node.Identifier.PATTERN">Identifier.PATTERN (in module comedy.node)</a></dt>
-<dt><a href="comedy/node.html#comedy.node.Identifier.POOL">Identifier.POOL (in module comedy.node)</a></dt>
-<dt><a href="comedy/node.html#comedy.node.ArgumentList.identifiers">identifiers (comedy.node.ArgumentList attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
 <dt><a href="comedy/compiler.html#comedy.compiler.CodeGenerator.indent">indent() (comedy.compiler.CodeGenerator method)</a></dt>
-<dt><a href="comedy/compiler.html#comedy.compiler.CodeGenerator.indentation">indentation (comedy.compiler.CodeGenerator attribute)</a></dt>
+<dt><a href="comedy/compiler.html#comedy.compiler.CodeGenerator.indentation">indentation (comedy.compiler.CodeGenerator attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
 <dt><a href="comedy/node.html#comedy.node.Index">Index (class in comedy.node)</a></dt>
 </dl></td></tr></table>
 
 <dl>
 
 <dt><a href="comedy/node.html#comedy.node.StringLiteral.string">string (comedy.node.StringLiteral attribute)</a></dt>
-<dt><a href="comedy/node.html#comedy.node.StringLiteral">StringLiteral (class in comedy.node)</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="comedy/node.html#comedy.node.StringLiteral">StringLiteral (class in comedy.node)</a></dt>
+<dt><a href="comedy/node.html#comedy.node.Symbol">Symbol (class in comedy.node)</a></dt>
+<dt><a href="comedy/node.html#comedy.node.Symbol.PATTERN">Symbol.PATTERN (in module comedy.node)</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="comedy/node.html#comedy.node.Symbol.POOL">Symbol.POOL (in module comedy.node)</a></dt>
+<dt><a href="comedy/node.html#comedy.node.ArgumentList.symbols">symbols (comedy.node.ArgumentList attribute)</a></dt>
 <dt><a href="comedy/parser.html#comedy.parser.SyntaxError">SyntaxError</a></dt>
 </dl></td></tr></table>
 
 comedy.compiler mod comedy/compiler.html
 comedy.object mod comedy/object.html
 comedy.visitor.Visitor.functions attribute comedy/visitor.html
+comedy.parser.SyntaxError.lineno attribute comedy/parser.html
 comedy.node.AtomicForm class comedy/node.html
 comedy.node.StringLiteral.generate_code_string method comedy/node.html
 comedy.parser.SyntaxError.filename attribute comedy/parser.html
 comedy.parser.SyntaxError.msg attribute comedy/parser.html
 comedy.parser.SyntaxError.offset attribute comedy/parser.html
 comedy.compiler.CodeGenerator.buffer attribute comedy/compiler.html
-comedy.compiler.CodeGenerator.flush method comedy/compiler.html
+comedy.object.AttributeList class comedy/object.html
+comedy.compiler.CodeGenerator.indent method comedy/compiler.html
 comedy.parser.parse_atomic_form function comedy/parser.html
 comedy.node.Quote class comedy/node.html
 comedy.node.ArgumentList.values attribute comedy/node.html
-comedy.node.Identifier.POOL data comedy/node.html
 comedy.compiler.CodeGenerator.indentation attribute comedy/compiler.html
-comedy.compiler.CodeGenerator.writeln method comedy/compiler.html
 comedy.object.Object class comedy/object.html
 comedy.parser.SyntaxError.text attribute comedy/parser.html
-comedy.node.AttributeName class comedy/node.html
+comedy.parser.parse_arguments function comedy/parser.html
 comedy.node.ArgumentList class comedy/node.html
 comedy.node.Index class comedy/node.html
 comedy.node.Form class comedy/node.html
+comedy.node.Symbol class comedy/node.html
 comedy.compiler.CodeGenerator.code attribute comedy/compiler.html
-comedy.node.Identifier.PATTERN data comedy/node.html
 comedy.object.Object.attributes attribute comedy/object.html
 comedy.visitor.Visitor.__name__ attribute comedy/visitor.html
+comedy.visitor.Visitor class comedy/visitor.html
 comedy.node.NumberLiteral.number attribute comedy/node.html
-comedy.compiler.CodeGenerator.write method comedy/compiler.html
 comedy.node.StringLiteral.string attribute comedy/node.html
-comedy.node.Identifier class comedy/node.html
 comedy.visitor.VisitorDecorator class comedy/visitor.html
-comedy.node.StringLiteral.prefix attribute comedy/node.html
-comedy.compiler.CodeGenerator.newline method comedy/compiler.html
+comedy.node.Combination class comedy/node.html
 comedy.parser.SyntaxError.line_string attribute comedy/parser.html
-comedy.node.Program class comedy/node.html
-comedy.node.ArgumentList.identifiers attribute comedy/node.html
+comedy.parser.SyntaxError exception comedy/parser.html
 comedy.compiler.CodeGenerator.block method comedy/compiler.html
-comedy.node.Attribute class comedy/node.html
+comedy.visitor.Visitor.latest_added_function attribute comedy/visitor.html
 comedy.node.NumberLiteral class comedy/node.html
 comedy.visitor.VisitorDecorator.visitor attribute comedy/visitor.html
 comedy.node.Definition class comedy/node.html
 comedy.parser.SyntaxError.column attribute comedy/parser.html
-comedy.compiler.CodeGenerator.indent method comedy/compiler.html
-comedy.parser.parse_program function comedy/parser.html
+comedy.compiler.CodeGenerator.write method comedy/compiler.html
+comedy.visitor.Visitor.visit method comedy/visitor.html
+comedy.node.Symbol.POOL data comedy/node.html
+comedy.compiler.CodeGenerator.newline method comedy/compiler.html
 comedy.compiler.CodeGenerator.outdent method comedy/compiler.html
 comedy.node.Quote.POOL data comedy/node.html
 comedy.node.StringLiteral class comedy/node.html
-comedy.parser.parse_arguments function comedy/parser.html
+comedy.node.AttributeName class comedy/node.html
+comedy.node.ArgumentList.symbols attribute comedy/node.html
+comedy.compiler.CodeGenerator.INDENTATION data comedy/compiler.html
+comedy.node.ArgumentList.names attribute comedy/node.html
+comedy.node.Attribute class comedy/node.html
+comedy.object.Object.class_ attribute comedy/object.html
 comedy.parser.SyntaxError.print_file_and_line attribute comedy/parser.html
-comedy.node.ArgumentList.names attribute comedy/node.html
-comedy.visitor.Visitor.latest_added_function attribute comedy/visitor.html
-comedy.object.Object.class_ attribute comedy/object.html
-comedy.visitor.Visitor.visit method comedy/visitor.html
 comedy.node.Block class comedy/node.html
-comedy.object.AttributeList class comedy/object.html
+comedy.compiler.CodeGenerator.flush method comedy/compiler.html
+comedy.node.Symbol.PATTERN data comedy/node.html
 comedy.parser.SyntaxError.line attribute comedy/parser.html
-comedy.visitor.Visitor class comedy/visitor.html
+comedy.node.StringLiteral.prefix attribute comedy/node.html
 comedy.object.AttributeList.list attribute comedy/object.html
-comedy.parser.SyntaxError exception comedy/parser.html
-comedy.parser.SyntaxError.lineno attribute comedy/parser.html
+comedy.compiler.CodeGenerator.writeln method comedy/compiler.html
+comedy.node.Program class comedy/node.html
 comedy.compiler.CodeGenerator class comedy/compiler.html
 comedy.parser.parse_form function comedy/parser.html
 comedy.visitor.VisitorDecorator.type attribute comedy/visitor.html
-comedy.compiler.CodeGenerator.INDENTATION data comedy/compiler.html
-comedy.node.Combination class comedy/node.html
+comedy.parser.parse_program function comedy/parser.html

comedy/searchindex.js

-Search.setIndex({desctypes:{"0":"attribute","1":"class","2":"method","3":"function","4":"data","5":"exception"},terms:{represent:6,code:[0,3,6],metaphor:[],four:4,prefix:[3,6],llo:4,primer:[1,4],argumentlist:[3,6],typeerror:6,decim:4,program:[3,1,4,6],text:3,argument_list:6,codepoint:4,sourc:6,everi:3,string:[0,1,3,4,6],straightforward:5,xxxxxxxx:4,rise:[3,6],veri:[],string_literal_prefix:6,level:0,list:[3,5,4,6,8],iter:[8,6],cmp:3,naiv:1,"10e":[3,6],second:6,blanklin:0,pass:0,index:[3,1,6],abc:[3,8,4,6],section:6,"new":0,method:[0,4],numberliter:[3,6],gener:[0,6],xff:4,normalize_whitespac:[3,6],lgpl:[3,2,6,5,8],becom:6,uxxxxxxxx:4,valu:[5,4,6],search:1,doctest:[3,5,6],implement:[5,1,4,6],commonli:4,unnamed_argument_list:6,appli:6,modul:[3,1,7,5,6],filenam:3,from:[3,2],doubl:4,visit:5,hong:[3,2,6,5,8],call:[3,6],value2:6,msg:3,scope:6,type:[0,5,4,6],more:[3,2,6,5,8],exponent_liter:6,indic:1,must:[1,6],outdent:0,none:[0,2,3,5,6],join:5,xhh:4,can:[0,6],purpos:[1,6],def:[3,5,8],control:0,tab:4,backslash:4,accept:[3,4],liter:[0,3,4,5,2,6,7,8],want:0,alwai:6,xxxx:4,newlin:[0,6],quot:[3,4,6],ncode:4,comedi:[0,1,2,3,4,5,6,7,8],write:0,fals:6,env:2,instead:6,simpl:[5,7,6],rcvr:3,class_:[8,2],mai:[5,4,6],end:3,string_charact:6,bootstrap:1,predic:3,receiv:6,environ:2,string_item:6,uffffffff:4,paramet:[0,3,6,5,8],style:[4,6],group:6,"return":[0,3,4,5,6],python:[0,4,7,6],introduct:4,name:[3,5,6,8],micro:0,each:6,unicod:[3,5,4,6],mean:4,compil:[0,5,7],veeyu:[0,1,3,4,8,7],connect:5,special:6,variabl:6,content:1,lineno:3,print:[0,3,6],multilin:4,ast:6,standard:4,base:[3,6],dictionari:6,parse_argu:3,indent:0,traceback:[3,6],isa:4,assign:6,first:[0,6],oper:6,print_file_and_lin:3,number:[1,4,6],number_liter:6,"long":[3,5,4,6],attributenam:6,given:[3,6],licens:[3,2,6,5,8],messag:[3,6],termin:3,store:[0,8,6],option:0,binop:3,ub2e4:6,pars:3,tcohen:3,keyword:[0,3],provid:[3,5,6],characr:6,tree:[7,6],zero:[3,6],horizont:4,str:[0,3,5,6],posit:[3,6],pre:[0,3,5,2,6,7,8],cohen:3,linefe:4,ani:[4,6],raw:4,have:4,tabl:1,unexpect:3,self:6,mix:3,take:[3,4,6],which:[3,6],combin:[3,6],singl:4,uppercas:4,begin:6,digit:6,normal:6,attribute_nam:6,object:[3,4,5,2,6,7,8],most:[3,4,6],regular:6,pair:6,alpha:6,metacharact:4,why:1,avishai:3,tradit:6,attributelist:8,minhe:[3,2,6,5,8],visitordecor:5,runtim:[8,7,6],pattern:[5,7,6],visitor:[5,7],syntaxerror:3,syntax:[3,7,6],fliat:6,eas:4,onli:[0,6],copyright:[3,2,6,5,8],state:0,should:6,string_escape_sequ:6,dict:[5,6],analyz:[2,7,6],local:[3,6],backspac:4,uac00:6,express:6,cannot:6,"import":2,parse_program:3,bel:4,yield:6,typetyp:5,common:4,contain:[0,6],handwritten:3,see:[3,4,5,2,6,8],integer_liter:6,arg:[3,6],charact:[0,3,4,6],awar:0,statu:0,kei:6,id_char:6,enough:3,ntrio:3,subscript:6,binary_oper:6,attribut:[3,2,6,8],accord:4,parent:0,numer:4,last:[3,6],string_liter:6,howev:6,equal:4,instanc:[0,3,6,5,8],basestr:5,line_str:3,bell:4,atomicform:[3,6],"141e":[3,6],colon:6,vertic:4,three:6,empti:[3,6],stringliter:[3,6],valueerror:6,argument:[3,6],togeth:6,func:3,xa9:6,ident:6,properti:4,observerdecor:[],parse_form:3,observ:[],cond:0,generate_code_str:[3,6],ascii:4,sever:4,decor:5,welcom:[],perform:4,make:4,same:6,binari:6,split:4,document:4,behav:6,optim:[1,4],string_literal_bodi:6,latest_added_funct:5,recent:[3,6],well:1,parenthes:[3,6],exampl:[4,6],thi:[3,5,4,6],programm:4,latest:5,formfe:4,identifi:[3,2,6,8],just:[1,6],startlin:0,languag:[1,4],float_liter:6,also:[3,8,4,6],except:[3,4,6],add:[3,4],els:6,codegener:0,match:[4,6],applic:6,format:5,test:2,any_char:6,world:[4,6],bit:4,like:[4,6],whitespac:[0,6],docutil:[0,3,5,2,6,7,8],integ:[4,6],ub098:6,page:1,node:[3,2,6,7,8],some:4,intern:[0,1,3,7,5],superclass:4,flush:0,definit:[3,6],subclass:[4,6],buffer:0,parse_atomic_form:3,step:0,form_separ:6,offset:3,"__name__":5,subtract:3,uxxxx:4,column:3,constructor:6,industri:6,block:[0,3,6],regist:5,"float":6,ellipsi:[3,5,6],span:[0,3,5,2,6,7,8],hex:4,stark:6,"class":[0,3,4,5,2,6,7,8],writeln:0,start:3,"function":[3,5,6],form:[3,6],tupl:3,atom:[3,6],line:[0,3],"true":[3,4,6],attr:[3,2,8],"default":[0,6],limit:6,expect:3,trio:3,constant:0,evalu:6,"int":[0,3,4,5,6],"abstract":[7,6],parser:[3,7],doesn:4,repres:[4,6],named_argu:3,when:[3,6],detail:[3,2,6,5,8],invalid:[3,6],compex:3,you:0,poor:[3,1,7],sequenc:4,symbol:6,pool:6,uffff:4,carriag:4,escap:4,hello:[4,6]},titles:["<tt class=\"docutils literal\"><span class=\"pre\">comedy.compiler</span></tt> &#8212; Veeyu to Python compiler","Comedy, a naive Veeyu implementation","<tt class=\"docutils literal\"><span class=\"pre\">comedy.analyzer</span></tt> &#8212; Analyzer","<tt class=\"docutils literal\"><span class=\"pre\">comedy.parser</span></tt> &#8212; A poor Veeyu parser","Veeyu Primer","<tt class=\"docutils literal docutils literal docutils literal\"><span class=\"pre\">comedy.visitor</span></tt> &#8212; Simple visitor pattern","<tt class=\"docutils literal docutils literal\"><span class=\"pre\">comedy.node</span></tt> &#8212; Abstract syntax tree and analyzer","<tt class=\"docutils literal\"><span class=\"pre\">comedy</span></tt> &#8212; Comedy internals","<tt class=\"docutils literal\"><span class=\"pre\">comedy.object</span></tt> &#8212; Runtime objects"],modules:{"comedy.node":6,"comedy.visitor":5,"comedy.analyzer":2,"comedy.parser":3,"comedy.compiler":0,"comedy.object":8},descrefs:{"comedy.node":{Index:[6,1],NumberLiteral:[6,1],Form:[6,1],ArgumentList:[6,1],Quote:[6,1],AtomicForm:[6,1],AttributeName:[6,1],StringLiteral:[6,1],Definition:[6,1],Program:[6,1],Combination:[6,1],Attribute:[6,1],Identifier:[6,1],Block:[6,1]},"comedy.node.ArgumentList":{identifiers:[6,0],values:[6,0],names:[6,0]},"comedy.visitor":{Visitor:[5,1],VisitorDecorator:[5,1]},"comedy.visitor.VisitorDecorator":{visitor:[5,0],type:[5,0]},"comedy.object.AttributeList":{list:[8,0]},"comedy.node.NumberLiteral":{number:[6,0]},"comedy.object":{Object:[8,1],AttributeList:[8,1]},"comedy.parser":{parse_form:[3,3],parse_program:[3,3],SyntaxError:[3,5],parse_arguments:[3,3],parse_atomic_form:[3,3]},"comedy.node.Quote":{POOL:[6,4]},"comedy.visitor.Visitor":{"__name__":[5,0],functions:[5,0],latest_added_function:[5,0],visit:[5,2]},"comedy.compiler":{CodeGenerator:[0,1]},"comedy.parser.SyntaxError":{column:[3,0],text:[3,0],print_file_and_line:[3,0],filename:[3,0],line_string:[3,0],offset:[3,0],msg:[3,0],line:[3,0],lineno:[3,0]},"comedy.node.StringLiteral":{generate_code_string:[6,2],prefix:[6,0],string:[6,0]},"comedy.compiler.CodeGenerator":{outdent:[0,2],write:[0,2],code:[0,0],indent:[0,2],INDENTATION:[0,4],buffer:[0,0],newline:[0,2],writeln:[0,2],indentation:[0,0],flush:[0,2],block:[0,2]},"comedy.node.Identifier":{PATTERN:[6,4],POOL:[6,4]},"comedy.object.Object":{attributes:[8,0],class_:[8,0]}},filenames:["comedy/compiler","index","comedy/analyzer","comedy/parser","veeyu","comedy/visitor","comedy/node","comedy","comedy/object"]})
+Search.setIndex({desctypes:{"0":"attribute","1":"class","2":"method","3":"function","4":"exception","5":"data"},terms:{represent:6,code:[0,3,6],metaphor:[],four:4,prefix:[3,6],llo:4,primer:[1,4],argumentlist:[3,6],typeerror:6,decim:4,program:[3,1,4,6],visitor:[5,7],argument_list:6,codepoint:4,sourc:6,everi:3,string:[0,1,3,4,6],straightforward:5,xxxxxxxx:4,rise:[3,6],veri:[],string_literal_prefix:6,level:0,list:[3,5,8,4,6],iter:[8,6],cmp:3,naiv:1,"10e":[3,6],second:6,blanklin:0,pass:0,index:[3,1,6],abc:[3,8,4,6],section:6,"new":0,method:[0,4],numberliter:[3,6],gener:[0,6],xff:4,normalize_whitespac:[3,6],lgpl:[3,2,8,5,6],becom:6,uxxxxxxxx:4,valu:[5,4,6],search:1,doctest:[3,5,6],implement:[5,1,4,6],commonli:4,unnamed_argument_list:6,appli:6,modul:[3,1,7,5,6],filenam:3,from:[3,2],doubl:4,visit:5,call:[3,6],value2:6,msg:3,scope:6,type:[0,5,4,6],more:[3,2,8,5,6],exponent_liter:6,indic:1,must:[1,6],outdent:0,none:[0,2,3,5,6],join:5,xhh:4,can:[0,6],purpos:[1,6],def:[3,5,8],control:0,want:0,backslash:4,accept:[3,4],liter:[0,3,4,5,2,6,7,8],tab:4,alwai:6,xxxx:4,newlin:[0,6],quot:[3,4,6],ncode:4,comedi:[0,1,2,3,4,5,6,7,8],write:0,fals:6,env:2,instead:6,simpl:[5,7,6],decor:5,class_:[8,2],mai:[5,4,6],end:3,rcvr:3,string_charact:6,bootstrap:1,predic:3,receiv:6,combin:[3,6],sumbol:2,string_item:6,uffffffff:4,paramet:[0,3,8,5,6],style:[4,6],group:6,"return":[0,3,4,5,6],python:[0,4,7,6],introduct:4,name:[3,5,8,6],micro:0,each:6,unicod:[3,5,4,6],mean:4,compil:[0,5,7],veeyu:[0,1,3,4,8,7],connect:5,special:6,variabl:6,content:1,lineno:3,print:[0,3,6],multilin:4,ast:6,standard:4,base:[3,6],dictionari:6,parse_argu:3,indent:0,traceback:[3,6],isa:4,assign:6,first:[0,6],oper:6,print_file_and_lin:3,number:[1,4,6],number_liter:6,stark:6,attributenam:6,given:[3,6],licens:[3,2,8,5,6],messag:[3,6],termin:3,store:[0,8,6],option:0,binop:3,ub2e4:6,pars:3,tcohen:3,keyword:[0,3],provid:[3,5,6],characr:6,tree:[7,6],zero:[3,6],charact:[0,3,4,6],str:[0,3,5,6],posit:[3,6],pre:[0,3,5,2,6,7,8],cohen:3,linefe:4,argument:[3,6],raw:4,have:4,tabl:1,unexpect:3,self:6,mix:3,take:[3,4,6],which:[3,6],environ:2,singl:4,uppercas:4,begin:6,digit:6,normal:6,attribute_nam:6,object:[3,4,5,2,6,7,8],most:[3,4,6],regular:6,pair:6,alpha:6,metacharact:4,why:1,avishai:3,tradit:6,attributelist:8,minhe:[3,2,8,5,6],visitordecor:5,runtim:[8,7,6],id_char:[],text:3,syntaxerror:3,syntax:[3,7,6],fliat:6,eas:4,onli:[0,6],copyright:[3,2,8,5,6],state:0,should:6,string_escape_sequ:6,dict:[5,6],analyz:[2,7,6],local:[3,6],backspac:4,uac00:6,express:6,cannot:6,ntrio:3,parse_program:3,bel:4,yield:6,typetyp:5,common:4,contain:[0,6],handwritten:3,see:[3,4,5,2,6,8],integer_liter:6,arg:[3,6],horizont:4,awar:0,statu:0,kei:6,pattern:[5,7,6],enough:3,"import":2,subscript:6,binary_oper:6,attribut:[3,2,8,6],accord:4,parent:0,numer:4,last:[3,6],string_liter:6,howev:6,equal:4,instanc:[0,3,8,5,6],basestr:5,line_str:3,bell:4,atomicform:[3,6],"141e":[3,6],colon:6,vertic:4,three:6,empti:[3,6],stringliter:[3,6],valueerror:6,ani:[4,6],togeth:6,func:3,xa9:6,ident:6,properti:4,observerdecor:[],parse_form:3,observ:[],cond:0,generate_code_str:[3,6],ascii:4,sever:4,hong:[3,2,8,5,6],welcom:[],perform:4,make:4,same:6,binari:6,split:4,document:4,behav:6,optim:[1,4],string_literal_bodi:6,latest_added_funct:5,sym:3,recent:[3,6],well:1,parenthes:[3,6],exampl:[4,6],thi:[3,5,4,6],programm:4,latest:5,formfe:4,identifi:6,just:[1,6],startlin:0,languag:[1,4],float_liter:6,also:[3,8,4,6],except:[3,4,6],add:[3,4],els:6,codegener:0,match:[4,6],applic:6,format:5,compex:3,any_char:6,world:[4,6],bit:4,like:[4,6],whitespac:[0,6],docutil:[0,3,5,2,6,7,8],integ:[4,6],ub098:6,page:1,poor:[3,1,7],some:4,intern:[0,1,3,7,5],superclass:4,flush:0,definit:[3,6],subclass:[4,6],buffer:0,parse_atomic_form:3,step:0,form_separ:6,offset:3,"__name__":5,subtract:3,uxxxx:4,column:3,constructor:6,industri:6,block:[0,3,6],regist:5,"float":6,ellipsi:[3,5,6],span:[0,3,5,2,6,7,8],hex:4,"long":[3,5,4,6],"class":[0,3,4,5,2,6,7,8],writeln:0,start:3,"function":[3,5,6],form:[3,6],tupl:3,sym_char:6,atom:[3,6],line:[0,3],"true":[3,4,6],attr:[3,2,8],"default":[0,6],limit:6,expect:3,trio:3,constant:0,evalu:6,"int":[0,3,4,5,6],"abstract":[7,6],parser:[3,7],doesn:4,repres:[4,6],named_argu:3,when:[3,6],detail:[3,2,8,5,6],invalid:[3,6],test:2,you:0,node:[3,2,8,7,6],sequenc:4,symbol:[3,2,8,6],pool:6,uffff:4,carriag:4,escap:4,hello:[4,6]},titles:["<tt class=\"docutils literal\"><span class=\"pre\">comedy.compiler</span></tt> &#8212; Veeyu to Python compiler","Comedy, a naive Veeyu implementation","<tt class=\"docutils literal\"><span class=\"pre\">comedy.analyzer</span></tt> &#8212; Analyzer","<tt class=\"docutils literal docutils literal\"><span class=\"pre\">comedy.parser</span></tt> &#8212; A poor Veeyu parser","Veeyu Primer","<tt class=\"docutils literal docutils literal docutils literal\"><span class=\"pre\">comedy.visitor</span></tt> &#8212; Simple visitor pattern","<tt class=\"docutils literal docutils literal\"><span class=\"pre\">comedy.node</span></tt> &#8212; Abstract syntax tree and analyzer","<tt class=\"docutils literal\"><span class=\"pre\">comedy</span></tt> &#8212; Comedy internals","<tt class=\"docutils literal docutils literal\"><span class=\"pre\">comedy.object</span></tt> &#8212; Runtime objects"],modules:{"comedy.node":6,"comedy.visitor":5,"comedy.analyzer":2,"comedy.parser":3,"comedy.compiler":0,"comedy.object":8},descrefs:{"comedy.node":{Index:[6,1],Combination:[6,1],Form:[6,1],ArgumentList:[6,1],Quote:[6,1],Symbol:[6,1],AtomicForm:[6,1],AttributeName:[6,1],StringLiteral:[6,1],Definition:[6,1],Program:[6,1],Attribute:[6,1],Block:[6,1],NumberLiteral:[6,1]},"comedy.node.ArgumentList":{symbols:[6,0],values:[6,0],names:[6,0]},"comedy.visitor":{Visitor:[5,1],VisitorDecorator:[5,1]},"comedy.visitor.VisitorDecorator":{visitor:[5,0],type:[5,0]},"comedy.node.Symbol":{PATTERN:[6,5],POOL:[6,5]},"comedy.object.AttributeList":{list:[8,0]},"comedy.node.NumberLiteral":{number:[6,0]},"comedy.parser":{parse_form:[3,3],parse_program:[3,3],SyntaxError:[3,4],parse_arguments:[3,3],parse_atomic_form:[3,3]},"comedy.node.Quote":{POOL:[6,5]},"comedy.visitor.Visitor":{"__name__":[5,0],functions:[5,0],latest_added_function:[5,0],visit:[5,2]},"comedy.compiler":{CodeGenerator:[0,1]},"comedy.parser.SyntaxError":{column:[3,0],text:[3,0],print_file_and_line:[3,0],filename:[3,0],lineno:[3,0],offset:[3,0],msg:[3,0],line:[3,0],line_string:[3,0]},"comedy.node.StringLiteral":{generate_code_string:[6,2],prefix:[6,0],string:[6,0]},"comedy.compiler.CodeGenerator":{outdent:[0,2],writeln:[0,2],code:[0,0],indent:[0,2],INDENTATION:[0,5],buffer:[0,0],newline:[0,2],write:[0,2],indentation:[0,0],flush:[0,2],block:[0,2]},"comedy.object":{Object:[8,1],AttributeList:[8,1]},"comedy.object.Object":{attributes:[8,0],class_:[8,0]}},filenames:["comedy/compiler","index","comedy/analyzer","comedy/parser","veeyu","comedy/visitor","comedy/node","comedy","comedy/object"]})