public Domain (Domain parent, object context)
{
+ termtypes = new Dictionary<Symbol, TermType> (parent.termtypes);
functions = new Dictionary<Symbol, Function> (parent.functions);
variables = new Dictionary<Symbol, Variable> (parent.variables);
this.context = context;
}
}
- public void DefType (Symbol name, NewObject new_object)
+ public void DefTerm (Symbol name, TermParser parser)
{
- termtypes[name] = new TermType (name, new_object);
+ termtypes[name] = new TermType (name, parser);
}
public void DefSubr (Builtin builtin, string str, bool setvar,
static Xexpression ()
{
- basic.DefType ("funcall", Funcall.New);
+ basic.DefTerm ("funcall", Funcall.parser);
basic.DefSubr (Fset, "set", true, 1, 1, "=");
basic.DefSubr (Fnot, "not", false, 1, 1, "!");
return (args.Length == 1 ? Zero : args[1]);
}
- public delegate TermValue NewObject (Domain domain, XmlNode node);
+ public delegate TermValue TermParser (Domain domain, XmlNode node);
public class TermType
{
public readonly Symbol type;
- internal readonly NewObject New;
+ internal readonly TermParser parser;
- public TermType (Symbol type, NewObject new_object)
+ public TermType (Symbol type, TermParser parser)
{
this.type = type;
- New = new_object;
+ this.parser = parser;
}
}
vari = domain.GetVar (vname, true);
}
- internal static TermValue New (Domain domain, XmlNode node)
+ internal static TermValue parser (Domain domain, XmlNode node)
{
Symbol fname = node.Name;
Symbol vname = Nnull;
TermType term_type;
if (domain.termtypes.TryGetValue (name, out term_type))
- objval = term_type.New (domain, node);
+ objval = term_type.parser (domain, node);
else
- objval = Funcall.New (domain, node);
+ objval = Funcall.parser (domain, node);
}
}
}