private D_PieceKernalAddition makePieceKernalAddition(PieceTokenizer f)
        {
            var g = f.reStart();

            D_PieceKernalAddition piece = new D_PieceKernalAddition();

            while (true)
            {
                D_PieceContent c;
                if ((c = makePieceContent(f)) != null)
                {
                    piece.PieceContents.Add(c);
                    if (isToken(f, "+"))
                    {
                        continue;
                    }
                    return piece;
                }
                else
                {
                    f.goBack(g);
                    return null;
                }
            }
        }
 private Tuple<string, string> buildPieceKernalAddition(VariableTracker vt, D_PieceKernalAddition pieceWrap, D_Item item)
 {
     StringBuilder cls = new StringBuilder();
     StringBuilder method = new StringBuilder();
     Tuple<string, string> v;
     foreach (var contents in pieceWrap.PieceContents)
     {
         v = buildPieceContents(vt, contents, item);
         cls.AppendLine(v.Item1);
         method.AppendLine(v.Item2);
     }
     for (int i = 0; i < pieceWrap.PieceContents.Count; i++) {
         method.AppendLine("}");
     }
     return new Tuple<string, string>(cls.ToString(), method.ToString());
 }