&ALF_BOM() if defined($ALF_InstallDir); 1; sub ALF_BOM { local(@feature) = @_; local @featurelist = ( 'alf', 'lib', 'semantics', 'math', ); @feature = @featurelist unless defined(@feature); require "$ALF_InstallDir/source/OpenALF.littlehelper.pl"; require "$ALF_InstallDir/source/OpenALF.parseLex.pl"; local ($alf,$lib,$semantics,$math); foreach $feature (@feature) { if (!&StringMatch($feature,@featurelist)) { print("# ALF_BOM Error:\tfeature \47$feature\47 not in list (@featurelist)\n"); } elsif (&StringMatch($feature,'alf')) { $alf = 1; } elsif (&StringMatch($feature,'lib')) { $lib = 1; } elsif (&StringMatch($feature,'semantics')) { $alf = 1; $semantics = 1; } elsif (&StringMatch($feature,'math')) { $math = 1; } } require "$ALF_InstallDir/source/OpenALF.global.pl"; require "$ALF_InstallDir/source/IEEE1603_2003.clause6.pl"; if ($alf) { require "$ALF_InstallDir/source/IEEE1603_2003.clause7.pl"; require "$ALF_InstallDir/source/IEEE1603_2003.clause8.pl"; require "$ALF_InstallDir/source/IEEE1603_2003.clause9.pl"; require "$ALF_InstallDir/source/IEEE1603_2003.clause10.pl"; require "$ALF_InstallDir/source/OpenALF.parseALF.pl"; require "$ALF_InstallDir/source/OpenALF.compileALF.pl"; require "$ALF_InstallDir/source/OpenALF.printALF.pl"; } if ($lib) { require "$ALF_InstallDir/source/OpenALF.parseLiberty.pl"; require "$ALF_InstallDir/source/OpenALF.compileLiberty.pl"; require "$ALF_InstallDir/source/OpenALF.printLiberty.pl"; } if ($alf && $lib) { require "$ALF_InstallDir/source/OpenALF.logic.pl"; require "$ALF_InstallDir/source/OpenALF.timing.pl"; require "$ALF_InstallDir/source/OpenALF.mapLiberty2ALF.pl"; require "$ALF_InstallDir/source/OpenALF.ecsm2ALF.pl"; require "$ALF_InstallDir/source/OpenALF.mapALF2Liberty.pl"; $ALF_LibertyGlobalFile = "$ALF_InstallDir/standard/OpenALF.LibertyGlobal.alf"; $ALF_LibertyScalingFile = "$ALF_InstallDir/standard/OpenALF.LibertyScaling.alf"; } if ($alf || $lib) { require "$ALF_InstallDir/source/OpenALF.SimpleApplications.pl"; } if ($semantics) { require "$ALF_InstallDir/source/OpenALF.semantics.pl"; $ALF_IEEE1603SemanticsFile = "$ALF_InstallDir/standard/IEEE1603_2003.annexB.alf"; } if ($math) { require "$ALF_InstallDir/source/OpenALF.math.pl"; } }