#!/usr/local/bin/perl

$mode = 0;
$T1="mixed|float|int|string|object|void|quoted_array|symbol|closure|mapping";
$T2="mixed \*|float \*|int \*|string \*|object \*|void \*|quoted_array \*|symbol \*|closure \*|mixed \&";
$TYPES="\($T1|$T2\)";

while( <> ) {
	chop $_;
	if( $mode == 0 && $_ eq "%efuns" ) {
		$mode = 1;
	} elsif( $mode == 1 && $_ eq "%xcodes" ) {
		$mode = 2;
	} elsif( $_ =~ "#endif" && $mode == 3 ) {
		$mode = 1;
	} elsif( $mode == 1 ) {
		if( $_ =~ m"#ifndef NATIVE" || $_ =~ m"#ifdef MALLOC_malloc" ) {
			$mode = 3;
		} elsif( $_ ne "" && $_ !~ m"^.\*" && $_ !~ "^#" ) {
			s/default: \w*//;
			s/$TYPES/mixed/g;
			print "$_\n";
		}
	}
}
