Вы спрашиваете, можете ли вы создать массив конструкторов, но похоже, что вы пытаетесь создать массив классов.В любом случае, оба варианта возможны в статически типизированных языках с некоторой поддержкой отражения.Например, в Java вы можете написать:
Class<? extends Token>[] tokens = {Identifier.class, Dollar.class};
И нет никаких причин, по которым вы не можете изменить синтаксис, исключив бит .class
.
Создание массива конструкторовтакже возможно в Java:
Constructor<? extends Token>[] tokens = {
// get the constructor Identifier(String)
Identifier.class.getConstructor(String.class),
// get the constructor Dollar()
Dollar.class.getConstructor()
};
Опять же, если вы хотите, чтобы ваш язык был тяжелым для такого типа отражения, вы, безусловно, можете ввести более лаконичный синтаксис для достижения того же.
ИтакОтвет на ваш вопрос: да, это возможно.