John,
The code that converts textual Soar code to internal Java
representations can be found in
org.jsoar.kernel.parser.original.OriginalParserImpl, in particular the
parse_lhs() and parse_rhs() methods. These create Condition and Action
objects which can then be fed into the rete network for processing.
Conditions consist of Test objects (there are several subclasses) and
Actions can either create a WME or execute a RHS function (halt in
your example).
So, by understanding those parser methods (maybe step through with a
debugger), you could figure out which objects need to be constructed
to build your rule in Java. That said, none of these classes has been
designed for the use you describe and with their C heritage, they're
extra painful to work with. The point of the Soar language is to make
building rules as straightforward as possible, just like writing Java
code is much easier than writing machine code.
Is there a particular reason you don't want to use the Soar language
for your rules? If I know that, maybe there's a better way I can help
you find a solution. For what it's worth, the JSoar rule parser is an
interface (org.jsoar.kernel.parser.Parser) so you could in theory
replace it with your own alternative syntax.
Cheers and thanks for trying out JSoar,
Dave