Не думаю, что я согласен с тем, что это лучшее использование FSM.
Для меня это выглядит очень похоже на JSON.Несколько изменений, и вы там.Это тоже может быть XML;вам не придется писать анализатор.
Но, если вы настаиваете, ваш FSM начнет чтение строки.
Если строка содержит «Person», вы сохранитеимя значение.(Рекомендация: добавьте строку «Имя» после «Персона».)
Если строка содержит «Возраст», вы сохраните значение возраста.
Если строка содержит «Местоположение», вы сохраните значение местоположения.
Если строка содержит «Конец», вы создадите экземпляр нового Person, добавите его в структуру данных и прочитаете следующую строку.
Если строка пуста, вы достигли конца;перейдите в конечное состояние и закройте файл.
Вы не говорите, разрешаете ли вы какие-либо атрибуты не по порядку.