Я разрабатываю текстовую игру, похожую на Zork, и мне бы хотелось, чтобы она могла анализировать отправку и выводить ключевые слова, такие как TAKE, DROP ect. Дело в том, что я хотел бы сделать это через стандартную библиотеку c ++ ... Я слышал о внешних библиотеках (таких как flex / bison), которые эффективно выполняют это; однако я пока не хочу связываться с ними.
То, что я думаю о реализации, - это система на основе токенов, в которой есть список слов, которые парсер может распознать, даже если они находятся в предложении типа «возьми меч и убей монстра» и знай, что согласно правилам грамматики парсера TAKE, SWORD, KILL и MONSTER все распознаются как токены и будут выдавать результат «Monster kill» или что-то в этом роде. Я слышал, что в стандартной библиотеке c ++ есть функция strtok, которая делает это, но я также слышал, что это «небезопасно». Поэтому, если бы кто-нибудь здесь мог протянуть руку помощи, я был бы очень признателен.