1: #!/usr/local/bin/perl -w 3: use strict; 4: require "calc.pm"; 5: my $do_finalize = 1; 8: # Basic parsing and grove building 9: use XML::Grove::Builder; 10: use XML::ESISParser; 12: use SGML::ElementMap; 13: use Hash::Layered; 15: # set up 16: my $engine = new SGML::ElementMap; 17: my $grove_builder = XML::Grove::Builder->new; 18: my $parser = XML::ESISParser->new ( Handler => $grove_builder , IsSGML=>1 ); 20: # initialize 21: SGML::ElementMap::Example::Calculator::Initialize($engine); 22: $engine->finalize if $do_finalize; 24: # go 25: foreach my $f (@ARGV) { 26: my $document = eval { $parser->parse ( Source => { SystemId => $f }); }; 27: if (defined $document) { 28: $engine->process_grove($document); 29: } else { 30: warn "Parse failed for $f: $@\n"; 31: } 32: } 34: exit 0;