История изменений
Исправление alysnix, (текущая версия) :
Ну правильно, в нередуцированном виде вы замените словарь таблицей регулярных выражений, динамически компилирующийся из конфигурационного файла; хэндлеры подсосете из плагинов; в сами хендлеры будете скармливать динамически типизированный контекст aka параметры. Интерпрайзно 👎
клован, не бесись. в общем виде это просто список хуков - интерпретаторов, доступный мейну, где сидят обьекты, способные интерпретировать комстроку или ее часть. какие там интерпретаторы и кто их туда поставил - мейн не знает. он просто вызывает последовательно по списку виртуальный метод - accept_command(…) каждого обекта оттуда, и если метод возвратил true - опрос прекращается.
таким образом разрешается вопрос и иерархии интерпретаторов, когда последующий не может перекрыть предыдущий, и динамическое изменение списка, когда например плагин выгружается и снимает интерпретатор.
это не спор в автором топика, которому и словаря хватит, а спор с длинным if-else в мейне.
Исходная версия alysnix, :
Ну правильно, в нередуцированном виде вы замените словарь таблицей регулярных выражений, динамически компилирующийся из конфигурационного файла; хэндлеры подсосете из плагинов; в сами хендлеры будете скармливать динамически типизированный контекст aka параметры. Интерпрайзно 👎
клован, не бесись. в общем виде это просто список хуков - интерпретаторов, доступный мейну, где сидят обьекты, способные интерпретировать комстроку или ее часть. какие там интерпретаторы и кто их туда поставил - мейн не знает. он просто вызывает последовательно по списку метод - accept_command(…) каждого обекта оттуда, и если метод возвратил true - опрос прекращается.
таким образом разрешается вопрос и иерархии интерпретаторов, когда последующий не может перекрыть предыдущий, и динамическое изменение списка, когда например плагин выгружается и снимает интерпретатор.
это не спор в автором топика, которому и словаря хватит, а спор с длинным if-else в мейне.