code: private static Stage configureParser() {
          Stage startStage = new StartStage();
          Stage negativeInfinityStage = new NegativeInfinityStage();
          Stage positiveInfinityStage = new PositiveInfinityStage();
          NegateStage negateStage = new NegateStage();
          BracketStage.OpenBracketStage openBraceStage = new BracketStage.OpenBracketStage();
          NumberBoundaryStage.LeftBoundaryStage startBoundaryStage = new NumberBoundaryStage.LeftBoundaryStage();
          NumberBoundaryStage.RightBoundaryStage rightBoundaryStage = new NumberBoundaryStage.RightBoundaryStage();
          SeparatorStage separatorStage = new SeparatorStage();
          BracketStage.ClosedBracketStage closedBraketStage = new BracketStage.ClosedBracketStage();
  
          startStage.addTransition(negateStage);
          startStage.addTransition(openBraceStage);
          startStage.addTransition(negativeInfinityStage);
          startStage.addTransition(startBoundaryStage);
  
          negateStage.addTransition(negativeInfinityStage);
          negateStage.addTransition(openBraceStage);
          negateStage.addTransition(startBoundaryStage);
  
          openBraceStage.addTransition(startBoundaryStage);
          startBoundaryStage.addTransition(separatorStage);
          negativeInfinityStage.addTransition(separatorStage);
  
          separatorStage.addTransition(positiveInfinityStage);
          separatorStage.addTransition(rightBoundaryStage);
  
          rightBoundaryStage.addTransition(closedBraketStage);
  
          return startStage;
      }
docs: Configures the state machine.
  
  
  @return The configured state machine.