Linear temporal logics for structured context-free languages