У меня есть следующая диаграмма состояний, которая служит для проверки соответствия строки формату.
Я хотел бы воссоздать этот язык, соответствующий fsm в xstate. Машина должна вернуть true для ac
, abc
, abbbbbc
et c и в противном случае false . Он должен иметь точно такой же вывод, что и выражение регулярного выражения string.match(/^ab*c$/) !== null;
В настоящее время у меня есть следующее:
const machine = Machine({
initial: 'start',
states: {
start: {
on: {A: 'state1'}
},
state1: {
on: {
B: 'state1',
C: 'end'
}
},
end: {}
}
});
Есть ли способ через действия и контекст, который я могу проверить, соответствует ли строка этот язык через него достигает состояния end .
Конечно, я мог бы просто использовать регулярные выражения, но я упростил задачу для решения этого вопроса. Фактический язык, который я хочу проанализировать, не является регулярным и требует pda / context. Я просто хочу знать структуру использования xstate для разбора языка / строки.