<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>There is a reference for the CnC grammar in the repository for the .NET implementation.&nbsp;</div><div><br></div><a href="http://github.com/dmpots/CnC.NET/blob/master/CnC.NET/CnC.NET/cnc.grammar">http://github.com/dmpots/CnC.NET/blob/master/CnC.NET/CnC.NET/cnc.grammar</a><div><br></div><div>The parser specification for fsyacc (the F# YACC implementation) is here:</div><div><br></div><div>http://github.com/dmpots/CnC.NET/blob/master/CnC.NET/CnC.NET/Parser.fsy<br><div><br></div><div>The textual representation is still in flux a bit, but this grammar should be enough of a guide for implementing a parser in Haskell. The grammar is left recursive, so using a parser generator like Happy would be a good choice.</div><div><br></div><div>The textual representation will actually be a bit different depending on the underlying language since the types of items stored in a collection is part of the description.&nbsp;For example in C, an item collection that stores an array of ints would be declared like:</div><div><br></div><div>[int* A];</div><div><br></div><div>but in Haskell we would want to write something like</div><div><br></div><div>[Array Int Int A];</div><div><br></div><div>I think dealing with type declarations would in the textual representation would be the main difference in implementing the parser in Haskell. Once the textual representation has been parsed to an AST it should be possible to generate the Haskell code that builds the graph using the haskell-cnc package.</div><div><br></div><div>-David</div><div><br><div><div>On Jun 23, 2010, at 3:56 PM, Vasili I. Galchin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br><div class="gmail_quote">On Wed, Jun 23, 2010 at 3:47 PM, Don Stewart <span dir="ltr">&lt;<a href="mailto:dons@galois.com">dons@galois.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
vigalchin:<br>
<div><div></div><div class="h5">&gt; Hello,<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp;I have been reading work done at Rice University: &nbsp;http://<br>
&gt; <a href="http://habanero.rice.edu/cnc" target="_blank">habanero.rice.edu/cnc</a>. Some work has been done by <a href="http://www.cs.rice.edu/" target="_blank">http://www.cs.rice.edu/</a><br>
&gt; ~dmp4866/ on CnC for .Net. One component that David wrote a CnC translator that<br>
&gt; translates CnC textual form to the underlying language, e.g. F#. Is anybody<br>
&gt; working on a CnC textual form translator for Haskell so a Haskell user of CnC<br>
&gt; Haskell can write in a higher level??<br>
<br>
</div></div>Ah, so by a translator from high level CnC form to this:<br>
<br>
 &nbsp; &nbsp;<a href="http://hackage.haskell.org/packages/archive/haskell-cnc/latest/doc/html/Intel-Cnc.html" target="_blank">http://hackage.haskell.org/packages/archive/haskell-cnc/latest/doc/hml/Intel-Cnc.html</a><br>
<br></blockquote><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ^^ exactly what I mean<br>&nbsp;<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
? Do you have a reference for the "CnC textual form"?<br></blockquote><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ^^ if you mean something like a context-free grammatical definition of the "CnC textual form" ,,, the answer is I haven't seen such a reference.<br>
<br>V.<br><br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<font color="#888888"><br>
-- Don<br>
</font></blockquote></div><br>
_______________________________________________<br>Haskell-Cafe mailing list<br>Haskell-Cafe@haskell.org<br>http://www.haskell.org/mailman/listinfo/haskell-cafe<br></blockquote></div><br></div></div></body></html>