Dear Peter,
On Wed, Oct 6, 2010 at 1:22 AM, Peter Breitsprecher
<[email protected]>wrote:
> As an update to my earlier post, I was playing with the parser, and I know
> I didn't do it right however I thought I was close.
>
> Can anyone tell me where I went wrong? This is the code I came up with, I
> have stepped through how I thought it worked, but it doesn't.
>
You miscoded an alternative as a sequence.
> declare
> proc{FS P0 P}
> P1 in
> {FNP P0 P1}
> {FVP P1 P}
> end
> proc{FNP P0 P}
> P1 in
> {FNP1 P0 P1}
> {FNP2 P1 P}
> end
>
FNP was defined as either FNP1 or FNP2. Therefore you need a choice:
proc {FNP P0 P}
choice
{FNP1 P0 P}
[] {FNP2 P0 P}
end
end
This one works better ;-)
Cheers,
Raphael
> proc{FVP P0 P}
> P1 P2 in
> {FVERB P1 P2}
> {FNP2 P2 P}
> end
> proc{FNP1 P0 P}
> {FPRN P0 P}
> end
> proc{FPRN P0 P}
> choice
> P0 = je|P
> [] P0 = me|P
> [] P0 = nous|P
> [] P0 = tu|P
> [] P0 = te|P
> [] P0 = vous|P
> [] P0 = il|P
> [] P0 = le|P
> [] P0 = ils|P
> [] P0 = les|P
> end
> end
> proc{FNP2 P0 P}
> P1 in
> {FDET P0 P1}
> {FNOUN P1 P}
> end
> proc{FDET P0 P}
> choice
> P0 = le|P
> [] P0 = les|P
> end
> end
> proc{FVERB P0 P}
> choice
> P0 = vois|P
> [] P0 = voit|P
> [] P0 = voyons|P
> [] P0 = voyez|P
> [] P0 = voient|P
> end
> end
> proc{FNOUN P0 P}
> choice
> P0 = chat|P
> [] P0 = chats|P
> end
> end
>
> {Explorer.all proc{$ _}{FS [je vois le chat] nil} end}
>
>
>
>
> --
> Kurt Breitsprecher
> (807) 474-9601
> [email protected]
>
>
>
> _________________________________________________________________________________
> mozart-users mailing list
> [email protected]
> http://www.mozart-oz.org/mailman/listinfo/mozart-users
>
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users