private D_PieceWithParam makePieceWithParam(PieceTokenizer f)
        {
            var g = f.reStart();

            D_PieceWithParam piece = new D_PieceWithParam();
            D_Piece c;
            D_Piece d;
            if (isToken(f, "("))
            {
                if ((c = makePiece(f)) != null)
                {
                    piece.Piece1 = c;
                    if (isToken(f, ","))
                    {
                        if ((d = makePiece(f)) != null)
                        {
                            piece.Piece2 = d;
                            if (isToken(f, ")"))
                            {
                                return piece;
                            }
                        }
                    }
                }
            }
            f.goBack(g);
            return null;
        }
        private Tuple<string, string> buildPieceWithParam(VariableTracker vt, D_PieceWithParam pieceWrap, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;
            v = buildPiece(vt, pieceWrap.Piece1, item);
            cls.AppendLine(v.Item1);
            method.AppendLine(v.Item2);

            v = buildPiece(vt, pieceWrap.Piece2, item);
            cls.AppendLine(v.Item1);
            method.AppendLine(v.Item2 + "conitnue; else break;");

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }