#!/usr/bin/php -qC
<?php

// $Date: 2004/01/20 06:23:09 $
// $Revision: 1.7 $
// $Author: jcrocholl $

require('plain.php');

function 
warning($filename, $line_number, $line, $text) {
    print 
"$filename:$line_number: illegal formatting\n";
    print 
"  $text\n";
    print 
"  $line\n";
}

function 
myprint($line) {
    if (!
$line) return;
    global 
$outfilename;
    global 
$outfilehandle;
    if (!
fwrite($outfilehandle, $line))
        die(
"Cannot write $line to file $outfilename\n");
}

require(
'parser.php');

function 
parsefile($filename, $sure) {
    
$outfilename = "$filename,f";
    global 
$outfilehandle;
    if (!
$outfilehandle = fopen($outfilename, 'w'))
        die(
"Cannot open file $outfilename");
    global 
$line_number; $line_number = 0;
    
parse($filename);
    
fclose($outfilehandle);
    if (
$sure) {
        
unlink($filename);
        
$success = rename($outfilename, $filename);
        if (!
$success) print "rename failed\n";
        
// else print "rename successful\n";
    
}
}

// print "'" . implode("', '", $argv) . "'\n";
$progname = array_shift($argv);
if (
$argv[0] == '--sure') $sure = array_shift($argv);
$filename = array_shift($argv);
if (
$argv[0] == '--sure') $sure = array_shift($argv);
// print "$sure $filename\n";

if ($argv or !$filename) die("usage : $progname [--sure] <filename>\n");

if (
preg_match('/^(.+)\.ads$/', $filename, $m)) {
    
$auto_comments_save = true;
    
// print "saving heads for $filename\n";
    
parsefile($filename, $sure);
    
$auto_comments_save = false;
    
    
$adb = "$m[1].adb";
    if (
file_exists($adb)) {
        
$auto_comments_load = true;
        
// print "loading heads for $adb\n";
        
if ($indent_level) {
            print 
"indent level $indent_level, should be 0.\n";
            
$indent_level = 0;
        }
        
parsefile($adb, $sure);
        
$auto_comments_load = false;
    }
} elseif (
preg_match('/^(.+)\.adb$/', $filename, $m)) {
    
$ads = "$m[1].ads";
    if (
file_exists($ads)) {
        print 
"please specify $ads\n" . 
              
"    instead of $filename\n";
    } else {
        
parsefile($filename, $sure);
    }
}

?>