You've possibly noticed lately that I've been rather quiet on the AI::Prolog front. This has been deliberate. Right now, adding new predicates and behavior is rather easy -- so long as I do not alter the grammar. Altering the grammar has proven rather difficult. Adding the unary cut operator was a pain. I gave up on binary infix operators and simply allowed math to be declared via predicates. This has led to the following ugliness:
% Instead of
% X is (Z+2) * Y - 1.
% We have to use
Syntactic sugar is clearly needed here.
Enter Richard Freytag. He's taking a compiler class and volunteered to write a proper parser for AI::Prolog. You can read quite a bit about his work at the Prolog section of his Wiki. Specifically, the grammar section details quite a bit about the new grammar.
This should make extending AI::Prolog much easier. Infix operators should be coming soon. I also hope to add definite clause grammars, too, but that's almost impossible with the current ad hoc parser.
Thank you, Richard!