private SelectionCriteria Convert(FinalStatePatternParser.CutBinaryContext context)
 {
     var c = new SelectionCriteria();
     c.BinaryRelation = context.BINARY_OP().GetText();
     c.FirstArgument = Convert(context.cut_arg()[0]);
     c.SecondArgument = Convert(context.cut_arg()[1]);
     return c;
 }
        /// <summary>
        /// The user has given us a range cut
        /// </summary>
        /// <param name="context"></param>
        public override void ExitCutRange(FinalStatePatternParser.CutRangeContext context)
        {
            var c1 = new SelectionCriteria();
            var c2 = new SelectionCriteria();

            c1.BinaryRelation = context.BINARY_OP(0).GetText();
            c2.BinaryRelation = context.BINARY_OP(1).GetText();

            c1.FirstArgument = Convert(context.cut_number(0));
            c1.SecondArgument = Convert(context.cut_name());

            c2.FirstArgument = Convert(context.cut_name());
            c2.SecondArgument = Convert(context.cut_number(1));

            _current_criteria.Peek().Add(c1);
            _current_criteria.Peek().Add(c2);

            base.ExitCutRange(context);
        }