Project scheduling with generalized precedence relations: A new method to analyze criticalities and flexibilities