#!/usr/bin/perl $FILEIN = shift(@ARGV); $FILEOUT = shift(@ARGV); if (defined($FILEIN) && defined($FILEOUT)) { print("command: OpenALF.lib2lib.pl $FILEIN $FILEOUT\n\n"); } else { die("usage: OpenALF.lib2lib.pl \n"); } $ALF_Debug = shift(@ARGV); # print out messages $ALF_InstallDir = "../source"; ### step 1: import data, use lexical parser require "$ALF_InstallDir/OpenALF.littlehelper.pl"; require "$ALF_InstallDir/OpenALF.parseLex.pl"; require "$ALF_InstallDir/IEEE1603_2003.clause6.pl"; &FileIn($FILEIN,'ALF_ReadLexical'); ### step 2: analyze syntax, create object-oriented database require "$ALF_InstallDir/OpenALF.global.pl"; require "$ALF_InstallDir/OpenALF.parseLiberty.pl"; require "$ALF_InstallDir/OpenALF.compileLiberty.pl"; &ALF_CreateLibertyData('test'); ### step 3: access data for application purpose, for example: require "$ALF_InstallDir/OpenALF.simpleApplications.pl"; &ALF_DumpDatabase if $ALF_Debug; &ALF_ReportLibertyLibraryContents('test'); ### step 4: export data require "$ALF_InstallDir/OpenALF.printLiberty.pl"; $AutoFirstLine = "// "; # 1st line in output file will be preceded by "// " &FileOut($FILEOUT,'ALF_Export','Liberty','test'); print("\ninput file \42$FILEIN\42 and output file \42$FILEOUT\42 should differ only in time stamp\n"); print("command: diff $FILEIN $FILEOUT\n"); system(STDOUT "diff $FILEIN $FILEOUT\n"); 1;