Index: /trunk/ippToPsps/config/render.pl
===================================================================
--- /trunk/ippToPsps/config/render.pl	(revision 38842)
+++ /trunk/ippToPsps/config/render.pl	(revision 38842)
@@ -0,0 +1,160 @@
+#!/usr/bin/perl -w
+
+my @tables = ('IN','P2','OB','ST','DF','DO','FW','FG','FO');
+# my @tables = ('P2');
+
+my @data = ();
+
+open(RR,">./render.tex");
+
+render_pre();
+
+foreach my $t (@tables) {
+    open(T,"tables.${t}.vot");
+
+    my $table = 0;
+    my $field = 0;
+    my $tab_name = '';
+    my $tab_desc = '';
+    my $name  = '';
+    my $desc  = '';
+    my $size  = '';
+    my $unit  = '';
+    my $def   = '';
+    my $datatype1 = '';
+    
+    render_top($t);
+    
+    while (<T>) {
+	chomp;
+	if ($table == 0) {
+	    if ($_ =~ /\<TABLE /) {
+		($tab_name = $_) =~ s/.*name=\"(.*?)\".*/$1/;
+		$table = 1;
+	    }
+	}
+	if ($table == 1) {
+	    if ($field == 0) {
+		if ($_ =~ /\<\/DESCRIPTION/) {
+		    ($tab_desc = $_) =~ s/\s+\<DESCRIPTION\>(.*?)\<\/DESCRIPTION\>/$1/;
+		    render_tab($tab_name,$tab_desc);
+		}
+	    }
+	    if ($_ =~ /\<FIELD/) {
+		($name = $_) =~ s/.*name=\"(.*?)\".*/$1/;
+		($size = $_) =~ s/.*arraysize=\"(.*?)\".*/$1/; if ($unit =~ /FIELD/) { $unit = ''; }
+		($unit = $_) =~ s/.*unit=\"(.*?)\".*/$1/;  if ($unit =~ /FIELD/) { $unit = ''; }
+		($def = $_) =~ s/.*default=\"(.*?)\".*/$1/; if ($def =~ /FIELD/) { $def = ''; }
+		(my $datatype = $_) =~ s/.*datatype=\"(.*?)\".*/$1/;
+		if($datatype eq "float") {$datatype1 = "REAL";}
+		if($datatype eq "double") {$datatype1 = "FLOAT";}
+		if($datatype eq "char") {$datatype1 = "VARCHAR($size)";}
+		if($datatype eq "int") {$datatype1 = "INT";}
+		if($datatype eq "short") {$datatype1 = "SMALLINT";}
+		if($datatype eq "unsignedByte") {$datatype1 = "TINYINT";}
+		if($datatype eq "long") {$datatype1 = "BIGINT";}
+		
+		$field = 1;
+	    }
+	    elsif ($field == 1) {
+		if ($_ =~ /\<\/DESCRIPTION/) {
+		    ($desc = $_) =~ s/\s+\<DESCRIPTION\>(.*?)\<\/DESCRIPTION\>/$1/;
+#		    render_row($name,$datatype,$unit,$def,$desc);
+		}
+		elsif ($_ =~ /\<\/FIELD/) {
+		    render_row($name,$datatype1,$unit,$def,$desc);
+		    $field = 0;
+		}
+	    }
+	    elsif ($_ =~ /\<\/TABLE/) {
+		render_end();
+		$table = 0;
+	    }
+	}
+    }
+    render_bottom();
+}
+render_post();
+
+sub pRRx {
+    my $l = shift;
+    print RR $l;
+}
+
+sub pRR {
+    my $l = shift;
+    print RR $l . "\n";
+}
+
+sub render_pre {
+    pRR '\documentclass[10pt,letter]{article}';
+    pRR '\usepackage{longtable}';
+    pRR '\usepackage{lscape}';
+    pRR '\setlength{\voffset}{-57pt}';
+    pRR '\setlength{\hoffset}{-57pt}';
+    pRR '\setlength{\oddsidemargin}{0pt}';
+    pRR '\setlength{\evensidemargin}{0pt}';
+    pRR '\setlength{\marginparwidth}{0pt}';
+    pRR '\setlength{\headsep}{0pt}';
+    pRR '\setlength{\headheight}{0pt}';
+    pRR '\setlength{\topmargin}{0pt}';
+    pRR '\setlength{\footskip}{0pt}';
+    pRR '\setlength{\textheight}{13.5in}';
+    pRR '\setlength{\textwidth}{10.5in}';
+    
+    pRR '\begin{document}';
+    pRR '\begin{landscape}';
+}
+ 
+sub render_top {
+    my $table = shift;
+    pRR '\section{table.' . $table . '.vot}';
+}
+
+sub render_tab {
+    my $name = shift;
+    my $desc = shift;
+    $desc =~ s/\&/\\\&/g;
+    pRR '\subsection{' . $name . '}';
+    pRR '\parbox[t][][t]{6.0in}{' . $desc . '}';
+    pRR '\vspace*{0pt}';
+    pRR '\footnotesize';
+    pRR '\begin{center}';
+    pRR '\begin{longtable}{|l|l|l|l|l|}';
+    pRR '\setlength{\LTleft}{0pt}';
+}
+sub render_row {
+    my ($name, $type, $unit, $def, $desc) = @_;
+    $name =~ s/^\s+//;
+    $name =~ s/_/\\_/g;
+    $unit =~ s/\^([\d\/-]*)/\$^$1\$/g;
+    $desc =~ s/\^([\d\/-]*)/\$^$1\$/g;
+    $desc =~ s/_/\\_/g;
+    $desc =~ s/\&/\\\&/g;
+    $desc =~ s/\%/\\\%/g;
+
+    pRRx '\parbox[t][][t]{1.5in}{\bf ' . $name . '} & ';
+    pRRx '\parbox[t][][t]{1.0in}{'     . $type . '} & ';
+    pRRx '\parbox[t][][t]{1.8in}{'     . $unit . '} & ';
+    pRRx '\parbox[t][][t]{0.5in}{'     . $def  . '} & ';
+    pRR  '\parbox[t][][t]{7.8in}{'     . $desc . '} \\\\' ;
+
+}
+
+sub render_end {
+    pRR '\end{longtable}';
+    pRR '\end{center}';
+    pRR '\normalsize';
+}
+
+sub render_bottom {
+    pRR '%noop';
+}
+
+sub render_post {
+    pRR '\end{landscape}';
+    pRR '\end{document}';
+}
+    
+
+		
