public virtual void Decompile(Language language, ITextOutput output) {
			language.WriteComment(output, string.Empty);
			output.WriteOffsetComment(this);
			output.WriteDefinition(UIUtils.CleanUpName(Name), this, TextTokenType.Comment);
			output.Write(string.Format(" = {0}", ValueString), TextTokenType.Comment);
			output.WriteLine();
		}
        protected override void DecompileFields(Language language, ITextOutput output)
        {
            var cols = tablesStreamVM.TableInfo.Columns;

            language.WriteCommentLine(output, string.Empty);
            language.WriteComment(output, string.Empty);
            output.Write("RID\tToken\tOffset", TextTokenType.Comment);
            for (int i = 0; i < cols.Count; i++) {
                output.Write('\t', TextTokenType.Comment);
                output.Write(tablesStreamVM.GetColumnName(i), TextTokenType.Comment);
            }
            if (tablesStreamVM.HasInfo) {
                output.Write('\t', TextTokenType.Comment);
                output.Write(tablesStreamVM.InfoName, TextTokenType.Comment);
            }
            output.WriteLine();

            for (int i = 0; i < (int)tablesStreamVM.Rows; i++) {
                var obj = tablesStreamVM.Get(i);
                language.WriteComment(output, string.Empty);
                output.Write(obj.RidString, TextTokenType.Comment);
                output.Write('\t', TextTokenType.Comment);
                output.Write(obj.TokenString, TextTokenType.Comment);
                output.Write('\t', TextTokenType.Comment);
                output.Write(obj.OffsetString, TextTokenType.Comment);
                for (int j = 0; j < cols.Count; j++) {
                    output.Write('\t', TextTokenType.Comment);
                    output.Write(obj.GetField(j).DataFieldVM.StringValue, TextTokenType.Comment);
                }
                if (tablesStreamVM.HasInfo) {
                    output.Write('\t', TextTokenType.Comment);
                    output.Write(obj.Info, TextTokenType.Comment);
                }
                output.WriteLine();
            }
        }
		protected override void DecompileFields(Language language, ITextOutput output) {
			language.WriteCommentLine(output, string.Empty);
			language.WriteComment(output, string.Empty);
			WriteHeader(output);

			for (int i = 0; i < (int)tablesStreamVM.Rows; i++) {
				var obj = tablesStreamVM.Get(i);
				language.WriteComment(output, string.Empty);
				Write(output, obj);
			}
		}