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;