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;