Показать сообщение отдельно
  #1 (permalink)  
Старый 11.02.2014, 19:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Finite State machine на javascript
Пишу парсер (верней переписываю).
В C++ конечный автомат реализуется эффективно с использованием GOTO.
В JS умники решили что GOTO в языке не нужен. Вопрос: как должен выглядеть эффективный конечный автомат. Чтоб в нем потери на сам каркас были минимальные.

Сейчас парсер работает так:

function Parser() {}

Parser.prototype.parse = function() {
    var state = state1;

    function state1() {
        // переключаем состояние
        state = state2;
        return true;
    }
    
    function state2() {
        // останавливаем цикл
        return false;
    }
    
    while(state());
};


Любые идеи и предложения приветствуются

Забыл сказать, должна быть еще возможность переключать состояния извне.
__________________
В личку только с интересными предложениями
Ответить с цитированием