!7 !include #1007960 // englishToConceptLanguage_xyz sS concepts = [[ ["jcnbmtmfzktxhzyf", "X + Y"], ["bwqhmnorjpyomdbv", "X * Y", "multiplication"], ["mcoswmplpqlieruo", "(X)"], ["olphazqzxxnvtjcx", "X evaluates through standard function Y."], ["wwaprwlmqzqeaikp", "A leaf satisfying standard function X evaluates through standard function Y."], ["hkihrqgdlkdayxzn", "X is just bracketing."], ]]; sS statements = [[ olphazqzxxnvtjcx jcnbmtmfzktxhzyf "plus" olphazqzxxnvtjcx bwqhmnorjpyomdbv "multiply" hkihrqgdlkdayxzn mcoswmplpqlieruo wwaprwlmqzqeaikp "isInteger" "bigint" ]]; p { useConcepts(concepts); useFacts_cl(statements); //set englishToConceptLanguage_xyz_debug; printIndent(fromLines(parseMulti(print("1"))); printIndent(fromLines(parseMulti(print("(5)"))); printIndent(fromLines(parseMulti(print("2 * (3)"))); printIndent(fromLines(parseMulti(print("1 * (2 + 3)"))); printIndent(fromLines(parseMulti(print("(1 + 2) * 3"))); printIndent(fromLines(parseMulti(print("(1 + 2) * (3 + 4)"))); } static L parseMulti(S s) { ret map(f clParse, englishToCLWith_multi(s, ll("mcoswmplpqlieruo", "jcnbmtmfzktxhzyf", "bwqhmnorjpyomdbv"))); } static O eval(Lisp l) { ret generalLispEval(l); }