Если я правильно понимаю ваш вопрос, вы хотите иметь библиотеку соответствия / фильтрации для произвольного обычного языка в алфавите с динамическими типами?Исходя из примера с вашим автомобилем, я думаю, вы захотите создать выражение, чтобы сопоставить его со списком, в котором все автомобили (красного цвета, имеют от 2 до 6 пассажиров, а каждый пассажир - от 8 до88 лет) или (есть 1 пассажир).
По совпадению я сам искал что-то подобное (для проверки документов), и самым близким, что я мог получить, был Цзин ;Библиотека Java RELAX-NG.К сожалению, алфавит в Jing состоит из узлов XML, поэтому он не решил мою проблему.В настоящий момент я пытаюсь написать библиотеку, которая делает именно это (сопоставление с обычными языками по алфавиту произвольного типа), основываясь на сопоставлении с образцом в Цзин.Если вы хотите помочь с этим, пожалуйста, дайте мне знать;).