!7 sS stuffToParse = [[ 1 1 - 2 1 - 2 - 3 1 - (2 - 3) 100 / (10 * 2) 100 / 10 / 10 ]]; sS concepts = [[ ["jcnbmtmfzktxhzyf", "X + Y"], ["jxcubqjtqykhfvyo", "X - Y", "as in minus"], ["erdirznfvsrbtfns", "X / Y", "division"], ["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 jxcubqjtqykhfvyo "minus" olphazqzxxnvtjcx bwqhmnorjpyomdbv "multiply" olphazqzxxnvtjcx erdirznfvsrbtfns "divide" hkihrqgdlkdayxzn mcoswmplpqlieruo wwaprwlmqzqeaikp "isInteger" "bigint" ]]; p-tt { centerHigherConsole(); useConceptsAndCLStatements(concepts, statements); //set englishToConceptLanguage_xyz_debug; for (S line : toLinesFullTrim(stuffToParse)) testParse(line); } svoid testParse(S s) { Lisp l = hygienicParse1(s); S result = null; if (l != null) result = str(eval(l)); printIndent(s + " = " + or(result, "?")); if (l != null) printIndent(l); print(); } static O eval(Lisp l) { ret generalLispEval(l); }