public Token CompleteType(Type type) { Token tok = this; bool save = type != null; if (tok.IsConst()) { if (save) { type.IsConst = true; } tok = tok.Next(); } if (save) { type.Name = tok.Value; } tok = tok.Next(); if (tok.IsTemplateBegin()) { if (save) { type.IsTemplate = true; type.SubType = new Type(); } tok = tok.Next(); tok = tok.CompleteType(save ? type.SubType : null); if (!tok.IsTemplateEnd()) { Program.Log("Not closed template?"); } tok = tok.Next(); } //Console.WriteLine("endtok: " + tok.Value); while (tok.IsTypeSpec()) { //Console.WriteLine("mod: "+tok.Value); if (save) { type.ModName += tok.Value; } tok = tok.Next(); } return(tok); }