handle missing macro tokens

This commit is contained in:
Stewart Allen 2026-01-11 19:51:06 -05:00
commit 5dbc102494

View file

@ -288,11 +288,18 @@ class Print {
if (safeEval) { if (safeEval) {
safeEval.setContext(consts); safeEval.setContext(consts);
} }
function doSafeEval(tok) {
try {
return safeEval ? safeEval.eval(tok) : undefined;
} catch (e) {
console.log({ macro_error: tok });
}
}
function tryeval(str) { function tryeval(str) {
try { try {
return eval(`{ ${str} }`) return eval(`{ ${str} }`)
} catch (e) { } catch (e) {
console.log({ eval_error: e, str }); console.log({ macro_error: e, str });
return str; return str;
} }
} }
@ -319,7 +326,7 @@ class Print {
} }
eva.push(`function range(a,b) { return (a + (layer / layers) * (b-a)).round(4) }`); eva.push(`function range(a,b) { return (a + (layer / layers) * (b-a)).round(4) }`);
eva.push(`try {( ${tok} )} catch (e) {console.log(e);0}`); eva.push(`try {( ${tok} )} catch (e) {console.log(e);0}`);
let evl = safeEval ? safeEval.eval(tok) : tryeval(eva.join('')); let evl = doSafeEval(tok) ?? tryeval(eva.join(''));
nutok = evl; nutok = evl;
if (pad === 666) { if (pad === 666) {
return evl; return evl;