diff --git a/src/cg/06-textEditor.cg b/src/cg/06-textEditor.cg index 1075d23..abcb686 100644 --- a/src/cg/06-textEditor.cg +++ b/src/cg/06-textEditor.cg @@ -138,7 +138,8 @@ textEditor = name \ { state = state, emit = [rebindAt [buffersKey, name] content] }; apply = state \ - content = name & " = " & (join "\n" state.lines) & ";"; + # content = name & " = " & (join "\n" state.lines) & ";"; + content = (join "\n" state.lines); result = eval! content; _ = debug! "apply" [content, result]; result diff --git a/src/runtime-js.ts b/src/runtime-js.ts index a235b24..bc4358d 100644 --- a/src/runtime-js.ts +++ b/src/runtime-js.ts @@ -202,7 +202,7 @@ export const _rt = { const trimmed = code.trim(); // is it a definition - const defMatch = /^([a-z_][a-zA-Z0-9_]*)\s*=(?![=])/.exec(trimmed); + const defMatch = /^([a-z_][a-zA-Z0-9_]*)\s*[:=]/.exec(trimmed); if (defMatch) { try { @@ -214,7 +214,8 @@ export const _rt = { if (defs.length > 0) { const def = defs[0]; recompile(def.name, def.body!); - const source = prettyPrint({ kind: 'definition', name: def.name, body: def.body }); + definitions.set(def.name, def); + const source = prettyPrint(def); appendChangeLog(def.name, source); saveDefinitions(); return { _tag: 'Defined', _0: def.name };