Цитата(interrupt @ Dec 3 2015, 20:10)

Да в общем-то все данные получаются значимыми. Просто не известно, какая команда будет первой, какая последней, сколько команд будет в строке и каких именно. Т.е. строка может выглядеть так:
Switch on out 1, led 7 off.
led 8 on, timer1 stop, Switch on out6, led 9 off
Ну, для начала надо взять большой листок бумаги и разрисовать машину состояний, которая будет обрабатывать ваши ключевые слова.
Например, команда "Switch on out 1" правильная, а "Switch 1 on out" неправильная, я надеюсь.

То есть при приеме токена "switch" следующим токеном должен быть "on" или "off" итп.
Если вы начнете кодить не имея полного формального описания автомата разбора, ничего не получится.
После того, как разбор кое-как заработеет, можно уже наворачивать фичи для улучшения производительности, типа считать хэши тогенов из входного потока, и искать их в хэш-таблице известных ключевых слов. Если повезет, можно истпользовать perfect hash.
А вот потом начнется самое интересное

Тестирование

А то в ваш парзер придет строка "led -1 fuck off" и он зависнет в бесконечном цикле
Сообщение отредактировал CrimsonPig - Dec 3 2015, 20:58