00001 #include <string>
00002 #include <iostream>
00003
00004 #include <archon/util/exception.H>
00005 #include <archon/util/uri.H>
00006
00007 using namespace std;
00008 using namespace Archon::Utilities;
00009
00010 int main(int argc, const char *argv[]) throw()
00011 {
00012 set_unexpected(Exception::terminal<exceptionCatchInfo>);
00013 set_terminate (Exception::terminal<exceptionCatchInfo>);
00014
00015 if(argc < 2)
00016 {
00017 cerr << "Synopsis: " << argv[0] << " RELATIVE-URI [ BASE-URI ]\n";
00018 exit(1);
00019 }
00020
00021 string relativeUri = argv[1];
00022 Uri baseUri;
00023 if(argc == 3) baseUri = Uri(argv[2]);
00024
00025 try
00026 {
00027 cout << Uri(relativeUri, baseUri) << "\n";
00028 }
00029 catch(Uri::SyntaxException &e)
00030 {
00031 cerr << Uri::explain(e);
00032 exit(1);
00033 }
00034
00035 return 0;
00036 }