/// <summary>
        /// Done processing the cuts, put them into our criteria list.
        /// </summary>
        /// <param name="context"></param>
        public override void ExitStandalone_cut(FinalStatePatternParser.Standalone_cutContext context)
        {
            TopLevelCriteria.AddRange(_current_criteria.Pop());

            // Continue.
            base.ExitStandalone_cut(context);
        }
        /// <summary>
        /// We are doing a stand alone cut on a single line; get things setup to track what happens on exit.
        /// </summary>
        /// <param name="context"></param>
        public override void EnterStandalone_cut(FinalStatePatternParser.Standalone_cutContext context)
        {
            _current_fso = null; // Should already be the case!
            _current_criteria.Push(new List <ISelectionCriteriaBase>());

            // Do the rest.
            base.EnterStandalone_cut(context);
        }