public static void SetMacroCharacter(string dispatchChar, ReadtableHandler handler, params object[] kwargs) { var args = ParseKwargs(kwargs, new string[] { "non-terminating?", "readtable" }, false, GetReadtable()); var nonTerminating = ToBool(args[0]); var readtable = (Readtable)args[1]; readtable.SetMacroCharacter(dispatchChar, handler, nonTerminating ? CharacterType.NonTerminatingMacro : CharacterType.TerminatingMacro); }
public void SetMacroCharacter(string ch, ReadtableHandler handler, CharacterType type = CharacterType.TerminatingMacro) { var item = GetEntry(ch[0], true); item.Handler = handler; item.Handler2 = null; item.Type = type; }
public static void SetMacroCharacter(string dispatchChar, IApply handler, params object[] kwargs) { ReadtableHandler proc = (reader, ch) => { var stream = reader.Stream; return(Funcall(handler, stream, ch)); }; SetMacroCharacter(dispatchChar, proc, kwargs); }