use Getopt::Long;
use File::Basename;
use File::Copy;
+
# use Cwd;
my $opt;
$self->{entity}=$entity;
- if(-e $entity) { # treat as /path/to/File
- $self->{entityFile} = $entity;
- } elsif (-e dirname($0)."/cache/".$entity.".entity"){
+ if (-e dirname($0)."/cache/".$entity.".entity"){
+ # look in ./cache/ for "EntityName.entity"
$self->{entityFile} = dirname($0)."/cache/".$entity.".entity";
- } else {
+ } elsif(-e $entity) { # treat as /path/to/File
+ $self->{entityFile} = $entity;
+ } else {
die "Entity $entity not found (not even in xml-db/cache)\n";
}
}
for my $name (@$list) { # processing the list
my $node = $xmldb->{entity}->{$name};
my $type = $node->{type};
+ my $description = $node->{description};
my $repeat = $node->{repeat} || 1;
my $stepsize = $node->{stepsize}||1;
my $bits = " ";
$bits = "$start--$stop";
}
}
+ # escape special latex characters
+ $name = escapelatex($name);
+ $description = escapelatex($description);
+
#indent register fields
if ($type eq 'field'){
$name= '\quad '.$name;
name => $name_,
addr => $hexaddr,
bits => $bits,
- addr_uint => $addr_
+ addr_uint => $addr_,
+ description => $description
});
}
}
}
+
+sub escapelatex{
+
+ my $text = shift;
+ $text =~ s/\\/\\textbackslash /g;
+ $text =~ s/~/\\textasciitilde /g;
+
+ $text =~ s/#/\\#/g;
+ $text =~ s/%/\\%/g;
+ $text =~ s/&/\\&/g;
+ $text =~ s/{/\\{/g;
+ $text =~ s/}/\\}/g;
+# $text =~ s/>/\\>/g;
+# $text =~ s/</\\</g;
+# $text =~ s/"/\\"/g;
+ $text =~ s/\^/\\^/g;
+ $text =~ s/_/\\_/g;
+# $text =~ s/\[/\\\[/g;
+# $text =~ s/\]/\\\]/g;
+
+ return $text;
+
+}
+
+
sub writeTexFile {
my $self = shift;
my $output = shift;
push(@line,$data->{$dataKey});
}
my $line = " ".join(" & ", @line) . ' \\\\'."\n";
- $line =~ s/_/\\_/g; # remove all stupid underscores
+# $line =~ s/_/\\_/g; # remove all stupid underscores
+# $line = escapelatex($line);
$str.=$line;
}
# $str.='\end{table}'."\n";
return $str;
-}
\ No newline at end of file
+}
+
+