// Now parse the rule operator
Token bodyOpTok = st.getNext();
if(!bodyOpTok.getType().equals(Token.Type.SYMBOL))
throw new ParseException(bodyOpTok.getLocation(),"body operator",bodyOpTok.toString());
SymbolToken bodyOpSym = (SymbolToken)bodyOpTok;
if(!BODYOPERATORS.containsKey(bodyOpSym.getSymbol()))
throw new ParseException(st,unsupportedBodyOp(),bodyOpSym.getSymbol());
MultiOperator bodyOp = BODYOPERATORS.get(bodyOpSym.getSymbol());
// Parse the rule body
ArrayList<Groundable> body = new BetweenParser<ArrayList<Groundable>,Token,Token>(
new RuleBodyParser(),new TokenParser(Token.Type.OB),new TokenParser(Token.Type.CB)).parse(st);