PlacementDef ParsePlacement(NodeListParser nlp) { var off = 0; var poslist = new List <PositionValue>(); var piece = DefPiece(nlp.GetIdent()); while (!nlp.Done) { var ident = nlp.GetIdent(); if (ident.Name == "off") { off = nlp.GetInt(); } else { poslist.Add(DefPosition(ident)); } } return(new PlacementDef { Piece = piece, OffQuantity = off, Positions = poslist }); }