Interface and basic components for using languages from @JAT91011's language creator