Hello,
I must say that I have skimmed the CTM chapters on relational
programming and constraint programming and I was just beginning to try to
understand the sample programs. However, I just located on the internet the
following website:
http://www.ps.uni-sb.de/~niehren/Web/Vorlesungen/Oz-NL-SS01/vorlesung/. I
am wondering at this point if the material contained within this website
could help me create what are termed "production grammars", i.e. a scheme
for creating combinations of terminals based on production rules. In the
case of what I want to do, I would want combinations of terminals in the Oz
grammar that compile into Oz programs. I would, in particular, be looking
for the shortest possible program (or set of programs) that exercises all
"paths" in the production rules of the Oz grammar in order to test an
external parser.
Sincerely,
Craig
On 3/19/07, Craig Ugoretz <[EMAIL PROTECTED]> wrote:
Hello,
I have an idea how to generate test data for a parser that I may need
to create for a Java based parser generator. This process would involve
using what I have learned about relational programming in the CTM book.
However, I am running into a problem with the program blocking on the {Solve
F} construct in a sample program that I have created. The program should
print out the following strings: ab, ac, ba, bc, ca, cb. The code for the
program is given below:
declare
fun {Pick} choice a [] b [] c end end
fun {DiffPair}
P1 P2
in
P1 = {Pick}
P2 = {Pick}
if P1==P2 then fail else P1#P2 end
end
fun {SolveAll F}
L={Solve F}
proc {TouchAll L}
if L==nil then skip else {TouchAll L.2} end
end
in
{TouchAll L}
L
end
{Browse {SolveAll DiffPair}}
Thanks,
Craig
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users