Mercurial > hg > batmud > misc
changeset 281:2e8fefca6594 misc
Clean up parsing.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 09 Mar 2015 04:45:33 +0200 |
parents | bff5e42a630c |
children | b72e0788d63e |
files | materials/parsematerial.pl |
diffstat | 1 files changed, 87 insertions(+), 84 deletions(-) [+] |
line wrap: on
line diff
--- a/materials/parsematerial.pl Mon Mar 09 04:35:29 2015 +0200 +++ b/materials/parsematerial.pl Mon Mar 09 04:45:33 2015 +0200 @@ -374,92 +374,95 @@ ### my %data = (); my $name = ""; -while (<STDIN>) +my $linenum = 0; +while (defined($line = <STDIN>)) { - chomp; - if (/MATERIAL STATS \(([a-z ]+)\)\:/) { - $name = $1; - } - elsif (/^Weight \(g\/l\)\: *\(([a-z. ]+)\) *Sturdyness\: *\(([a-z. ]+)\)/) - { - $data{$name}{2} = mtranslate(2, $1); - $data{$name}{3} = mtranslate(3, $2); - } - elsif (/^Magic\: *\(([a-z. ]+)\) *Flammability\: *\(([a-z. ]+)\)/) - { - $data{$name}{4} = mtranslate(4, $1); - $data{$name}{5} = mtranslate(5, $2); - } - elsif (/^Warmth\: *\(([a-z. ]+ outfit)\) *Toxicity\: *\(([a-z. ]+)\)/) - { - my ($tmp1, $tmp2) = ($1, $2); - $tmp1 =~ s/ +outfit$//; - $data{$name}{6} = mtranslate(6, $tmp1); - $data{$name}{7} = mtranslate(7, $tmp2); - } - elsif (/^Warmth\: *\(([a-z. ]+)\) *Toxicity\: *\(([a-z. ]+)\)/) - { - my ($tmp1, $tmp2) = ($1, $2); - $data{$name}{6} = mtranslate(6, $1); - $data{$name}{7} = mtranslate(7, $2); - } - elsif (/^Resistivity\: *\(([a-z. ]+ insulator)\) *Malleability\: *\(([a-z. ]+)\)?/) - { - my ($tmp1, $tmp2) = ($1, $2); - $tmp1 =~ s/ +insulator$//; - $data{$name}{8} = mtranslate(8, $tmp1); - $data{$name}{9} = mtranslate(9, $tmp2); - } - elsif (/^Resistivity\: *\(([a-z. ]+)\) *Malleability\: *\(([a-z. ]+)\)?/) - { - $data{$name}{8} = mtranslate(8, $1); - $data{$name}{9} = mtranslate(9, $2); - } - elsif (/^Mentality\: *\(([a-z. ]+)\) *Reactivity\: *\(([a-z. ]+)\)?/) - { - $data{$name}{10} = mtranslate(10, $1); - $data{$name}{11} = mtranslate(11, $2); - } - elsif (/^Weapon rarity\: *\(([a-z. ]+)\) *Armour rarity\: *\(([a-z. ]+)\)/) - { - $data{$name}{12} = mtranslate(12, $1); - $data{$name}{13} = mtranslate(13, $2); - } - elsif (/^Value \(gp\/kg\)\: *\(([a-z -]+)\) *Rarity\: *\(([a-z. ]+)\)/) - { - $data{$name}{14} = mtranslate(14, $1); - $data{$name}{15} = mtranslate(15, $2); - } - elsif (/^Article\: *([a-z. ]+) *Type: *([A-Za-z]+)/) - { - $data{$name}{16} = mtranslate(16, $2); + $linenum++; + chomp; + if ($line =~ /MATERIAL STATS \(([a-z ]+)\)\:/) + { + $name = $1; + } + elsif ($line =~ /^Weight \(g\/l\)\: *\(([a-z. ]+)\) *Sturdyness\: *\(([a-z. ]+)\)/) + { + $data{$name}{2} = mtranslate(2, $1); + $data{$name}{3} = mtranslate(3, $2); + } + elsif ($line =~ /^Magic\: *\(([a-z. ]+)\) *Flammability\: *\(([a-z. ]+)\)/) + { + $data{$name}{4} = mtranslate(4, $1); + $data{$name}{5} = mtranslate(5, $2); + } + elsif ($line =~ /^Warmth\: *\(([a-z. ]+ outfit)\) *Toxicity\: *\(([a-z. ]+)\)/) + { + my ($tmp1, $tmp2) = ($1, $2); + $tmp1 =~ s/ +outfit$//; + $data{$name}{6} = mtranslate(6, $tmp1); + $data{$name}{7} = mtranslate(7, $tmp2); + } + elsif ($line =~ /^Warmth\: *\(([a-z. ]+)\) *Toxicity\: *\(([a-z. ]+)\)/) + { + my ($tmp1, $tmp2) = ($1, $2); + $data{$name}{6} = mtranslate(6, $1); + $data{$name}{7} = mtranslate(7, $2); + } + elsif ($line =~ /^Resistivity\: *\(([a-z. ]+ insulator)\) *Malleability\: *\(([a-z. ]+)\)?/) + { + my ($tmp1, $tmp2) = ($1, $2); + $tmp1 =~ s/ +insulator$//; + $data{$name}{8} = mtranslate(8, $tmp1); + $data{$name}{9} = mtranslate(9, $tmp2); + } + elsif ($line =~ /^Resistivity\: *\(([a-z. ]+)\) *Malleability\: *\(([a-z. ]+)\)?/) + { + $data{$name}{8} = mtranslate(8, $1); + $data{$name}{9} = mtranslate(9, $2); + } + elsif ($line =~ /^Mentality\: *\(([a-z. ]+)\) *Reactivity\: *\(([a-z. ]+)\)?/) + { + $data{$name}{10} = mtranslate(10, $1); + $data{$name}{11} = mtranslate(11, $2); + } + elsif ($line =~ /^Weapon rarity\: *\(([a-z. ]+)\) *Armour rarity\: *\(([a-z. ]+)\)/) + { + $data{$name}{12} = mtranslate(12, $1); + $data{$name}{13} = mtranslate(13, $2); + } + elsif ($line =~ /^Value \(gp\/kg\)\: *\(([a-z -]+)\) *Rarity\: *\(([a-z. ]+)\)/) + { + $data{$name}{14} = mtranslate(14, $1); + $data{$name}{15} = mtranslate(15, $2); + } + elsif ($line =~ /^Article\: *([a-z. ]+) *Type: *([A-Za-z]+)/) + { + $data{$name}{16} = mtranslate(16, $2); - $data{$name}{"article"} = $1; - $data{$name}{"article"} =~ s/ *$//; - } - elsif (/^Found nature\: *(Yes|No) *Lode name\: *([A-Za-z]+)/) - { - $data{$name}{17} = mtranslate(17, $1); - $data{$name}{18} = mtranslate(18, $2); - } - elsif (/^Raw names\: *([a-z, ]+[a-z])/) - { - my $tmp = $1; - @{$data{$name}{19}} = map { mtranslate(19, $_) } split(/, */, $tmp); - } - elsif (/^Refined names\: *([a-z, ]+[a-z])/) - { - my $tmp = $1; - @{$data{$name}{20}} = map { mtranslate(20, $_) } split(/, */, $tmp); - } - elsif (/^-+$|^\s*$/) - { - # ok - } - else - { - print STDERR "Unparsed line: ".$_."\n"; - } + $data{$name}{"article"} = $1; + $data{$name}{"article"} =~ s/ *$//; + } + elsif ($line =~ /^Found nature\: *(Yes|No) *Lode name\: *([A-Za-z]+)/) + { + $data{$name}{17} = mtranslate(17, $1); + $data{$name}{18} = mtranslate(18, $2); + } + elsif ($line =~ /^Raw names\: *([a-z, ]+[a-z])/) + { + my $tmp = $1; + @{$data{$name}{19}} = map { mtranslate(19, $_) } split(/, */, $tmp); + } + elsif ($line =~ /^Refined names\: *([a-z, ]+[a-z])/) + { + my $tmp = $1; + @{$data{$name}{20}} = map { mtranslate(20, $_) } split(/, */, $tmp); + } + elsif ($line =~ /^-+$|^\s*$/) + { + # Ignore empty lines, and -* + } + else + { + print STDERR "Unparsed line #".$linenum.": ".$line."\n"; + } } # Sort the entries by name