static Exp nlLogic_parseExpression(S s) { L tok = javaTokPlusBrackets(s); L l = splitAtTokens(tok, ll("&", "", "&")); if (l(l) == 2) // TODO ret And(parseExpression(first(l)), nlLogic_parseExpression(second(l))); if (l(tok) == 5 && isIdentifier(tok.get(1)) && isRoundBracketed(tok.get(3))) ret Func(tok.get(1), nlLogic_parseExpression(deRoundBracket(tok.get(3)))); l = splitAtTokens(tok, ll("=")); if (l(l) == 2) ret Eq(nlLogic_parseExpression(first(l)), nlLogic_parseExpression(second(l))); ret Sentence(tok); }