#!/usr/bin/perl $FILEIN = shift(@ARGV); $FILEOUT = shift(@ARGV); if (defined($FILEIN) && defined($FILEOUT)) { print("command: OpenALF.alf2alf.pl $FILEIN $FILEOUT\n\n"); } else { die("usage: OpenALF.alf2alf.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.parseALF.pl"; require "$ALF_InstallDir/OpenALF.compileALF.pl"; require "$ALF_InstallDir/OpenALF.semantics.pl"; require "$ALF_InstallDir/IEEE1603_2003.clause7.pl"; require "$ALF_InstallDir/IEEE1603_2003.clause8.pl"; require "$ALF_InstallDir/IEEE1603_2003.clause9.pl"; require "$ALF_InstallDir/IEEE1603_2003.clause10.pl"; &ALF_CreateData('test'); ### step 3: access data for application purpose, for example: require "$ALF_InstallDir/OpenALF.simpleApplications.pl"; &ALF_DumpDatabase if $ALF_Debug; &ALF_ReportALFLibraryContents('test'); ### step 4: export data #&ALF_FlattenObject('test'); require "$ALF_InstallDir/OpenALF.printALF.pl"; &FileOut($FILEOUT,'ALF_Export','ALF','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"); 1;