Exemple #1
0
        public void DefineMacro(string ch, ReadtableHandler2 handler2, CharacterType type = CharacterType.TerminatingMacro)
        {
            var item = GetEntry(ch[0], true);

            item.Handler  = null;
            item.Handler2 = handler2;
            item.Type     = type;
        }
Exemple #2
0
        public static void SetDispatchMacroCharacter(string dispatchChar, string subChar, IApply handler, params object[] kwargs)
        {
            ReadtableHandler2 proc = (reader, ch, arg) =>
            {
                var stream = reader.Stream;
                return(Funcall(handler, stream, ch, arg));
            };

            SetDispatchMacroCharacter(dispatchChar, subChar, proc, kwargs);
        }
Exemple #3
0
        public void SetDispatchMacroCharacter(string ch1, string str2, ReadtableHandler2 handler2)
        {
            var item = GetEntry(ch1[0], true);

            if (item.DispatchReadtable == null)
            {
                item.DispatchReadtable = new SortedList <string, ReadtableHandler2>(new ReverseOrder());
            }
            item.Type = CharacterType.TerminatingMacro;
            item.DispatchReadtable.Add(str2, handler2);
        }
Exemple #4
0
        public static void SetDispatchMacroCharacter(string dispatchChar, string subChar, ReadtableHandler2 handler, params object[] kwargs)
        {
            var args      = ParseKwargs(kwargs, new string[] { "readtable" }, GetReadtable());
            var readtable = (Readtable)args[0];

            readtable.SetDispatchMacroCharacter(dispatchChar, subChar, handler);
        }