fjsc: add forget

chris.double 2006-12-17 04:11:03 +00:00
parent 7615f09e48
commit 3df86a4658
1 changed files with 16 additions and 0 deletions

View 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;