lib/scripts/yxml
author wenzelm
Fri, 17 Aug 2012 11:42:05 +0200
changeset 48837 d1d806a42c91
parent 35022 c844b93dd147
permissions -rwxr-xr-x
allow to provide external ISABELLE_IDENTIFIER for repository clone -- potentially relevant for isatest and mira; clarified spaces in file names -- ISABELLE_HOME is non-critical after abolishment of "make";

#!/usr/bin/env perl
#
# Author: Makarius
#
# yxml.pl - simple XML to YXML converter
#

use warnings;
use strict;

use XML::Parser;

binmode(STDOUT, ":utf8");

sub handle_start {
  print chr(5), chr(6), $_[1];
  for (my $i = 2; $i <= $#_; $i++) {
    print ($i % 2 == 0 ? chr(6) : "=");
    print $_[$i];
  }
  print chr(5);
}

sub handle_end {
  print chr(5), chr(6), chr(5);
}

sub handle_char {
  print $_[1];
}

my $parser = new XML::Parser(Handlers =>
  {Start => \&handle_start,
    End => \&handle_end,
    Char => \&handle_char});

$parser->parse(*STDIN) or die $!;