]> gitweb.factorcode.org Git - factor.git/commitdiff
fjsc: add forget
authorchris.double <chris.double@double.co.nz>
Sun, 17 Dec 2006 04:11:03 +0000 (04:11 +0000)
committerchris.double <chris.double@double.co.nz>
Sun, 17 Dec 2006 04:11:03 +0000 (04:11 +0000)
apps/furnace-fjsc/resources/bootstrap.js

index eea93ff3b2a9f5cf4a560e846b4f3d0424557789..a5e7bf41b71a2b33597ae3a52e38135bd13c9be9 100644 (file)
@@ -84,6 +84,15 @@ Factor.prototype.add_word = function(vocab,name, source, func) {
   }
   v[name] = new Word(vocab,name,source,func);
 }
+
+Factor.prototype.remove_word = function(vocab,name) {
+  var v = factor.vocabs[vocab];
+  if(!v) {
+    v = { };
+    factor.vocabs[vocab] = v;
+  }
+  delete v[name];
+}
     
 Factor.prototype.define_word = function(name, source, func, next) {
   factor.vocabs[factor.in_vocab][name] = new Word(factor.in_vocab, name, source, function(next) {
@@ -304,6 +313,13 @@ factor.add_word("kernel", "current-using", "primitive", function(next) {
   factor.call_next(next);  
 });
 
+factor.add_word("kernel", "forget", "primitive", function(next) {   
+  var stack = factor.cont.data_stack;
+  var word = stack.pop();
+  factor.remove_word(word.vocab, word.name);
+  factor.call_next(next);  
+});
+
 /* Math vocabulary */
 factor.add_word("math", "*", "primitive", function(next) {
   var stack = factor.cont.data_stack;