diff --git a/aconversions/.cproject b/aconversions/.cproject index a245ccfbe8525da0f22965f5f091ef4e981590b8..73f91e809013fa33a703b459fa11166e20990fc9 100644 --- a/aconversions/.cproject +++ b/aconversions/.cproject @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1988565968"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1988565968" moduleId="org.eclipse.cdt.core.settings" name="Debug"> + <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.923996745"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.923996745" moduleId="org.eclipse.cdt.core.settings" name="Debug"> <externalSettings/> <extensions> <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> @@ -14,52 +14,52 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1988565968" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug"> - <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1988565968." name="/" resourcePath=""> - <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.2145322734" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> - <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1690067828" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1724289684" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.archiver.base.2132784162" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.2007935398" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> - <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1420626117" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> - <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.750696876" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> - <option id="gnu.cpp.compiler.option.include.paths.619927979" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> + <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.923996745" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug"> + <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.923996745." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.181676644" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.713559341" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> + <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1319275342" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.archiver.base.989738325" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1256329136" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> + <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.220012774" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> + <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.590531226" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> + <option id="gnu.cpp.compiler.option.include.paths.2109499447" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/src}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1133597878" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> + <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2087782350" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1198088489" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> - <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1504447297" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> - <option id="gnu.c.compiler.exe.debug.option.debugging.level.1247411673" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1189852814" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.185152796" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> + <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.2130304687" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.exe.debug.option.debugging.level.1046880433" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.207101555" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1610673991" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.422245398" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> - <option id="gnu.cpp.link.option.libs.1479950460" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> + <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.252907967" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.728968099" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> + <option id="gnu.cpp.link.option.libs.1966058726" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> <listOptionValue builtIn="false" value="alib"/> </option> - <option id="gnu.cpp.link.option.paths.1290703739" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> + <option id="gnu.cpp.link.option.paths.644657276" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/Debug}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1692658180" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> + <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1392298582" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/> </inputType> </tool> - <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1786933996" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1629599789" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.373737946" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.910823955" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> </toolChain> </folderInfo> <sourceEntries> - <entry excluding="afsm2rg|src/rg2fsm|src/fsm2rg" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry excluding="src/arg2fa.cpp|src/afa2rg.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> </sourceEntries> </configuration> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> </cconfiguration> - <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.431501956"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.431501956" moduleId="org.eclipse.cdt.core.settings" name="Release"> + <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.847519806"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.847519806" moduleId="org.eclipse.cdt.core.settings" name="Release"> <externalSettings/> <extensions> <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> @@ -71,43 +71,43 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.431501956" name="Release" parent="cdt.managedbuild.config.gnu.exe.release"> - <folderInfo id="cdt.managedbuild.config.gnu.exe.release.431501956." name="/" resourcePath=""> - <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.919970955" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release"> - <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1387889808" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/> - <builder buildPath="${workspace_loc:/aconversions}/Release" id="cdt.managedbuild.target.gnu.builder.exe.release.1020487954" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/> - <tool id="cdt.managedbuild.tool.gnu.archiver.base.178390178" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.847661583" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release"> - <option id="gnu.cpp.compiler.exe.release.option.optimization.level.243193135" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> - <option id="gnu.cpp.compiler.exe.release.option.debugging.level.1228127187" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1839212147" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> - </tool> - <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.489752447" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release"> - <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.525463206" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/> - <option id="gnu.c.compiler.exe.release.option.debugging.level.1207405604" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1884817039" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> - </tool> - <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1049049603" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.44073728" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"> - <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1447635553" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> + <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.847519806" name="Release" parent="cdt.managedbuild.config.gnu.exe.release"> + <folderInfo id="cdt.managedbuild.config.gnu.exe.release.847519806." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1792634543" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.946424754" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/> + <builder buildPath="${workspace_loc:/aconversions}/Release" id="cdt.managedbuild.target.gnu.builder.exe.release.803376977" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/> + <tool id="cdt.managedbuild.tool.gnu.archiver.base.83145420" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.401091216" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release"> + <option id="gnu.cpp.compiler.exe.release.option.optimization.level.342590430" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> + <option id="gnu.cpp.compiler.exe.release.option.debugging.level.40661727" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/> + <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.687064417" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1048535779" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release"> + <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.392903544" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.exe.release.option.debugging.level.810074994" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.791056291" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + </tool> + <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.233577169" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.19072263" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"> + <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.772540191" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/> </inputType> </tool> - <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1713687409" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release"> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.930343315" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1136860892" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release"> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.30688761" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> </toolChain> </folderInfo> <sourceEntries> - <entry excluding="afsm2rg|src/rg2fsm|src/fsm2rg" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry excluding="src/arg2fa.cpp|src/afa2rg.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> </sourceEntries> </configuration> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> </cconfiguration> - <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1988565968.2077734878"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1988565968.2077734878" moduleId="org.eclipse.cdt.core.settings" name="afsm2rg"> + <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502" moduleId="org.eclipse.cdt.core.settings" name="Debug.fa2rg"> <externalSettings/> <extensions> <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> @@ -119,52 +119,52 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1988565968.2077734878" name="afsm2rg" parent="cdt.managedbuild.config.gnu.exe.debug"> - <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1988565968.2077734878." name="/" resourcePath=""> - <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1163399431" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> - <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.12097740" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.774430906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.archiver.base.2000533032" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.689439375" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> - <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.952777165" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> - <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1254947323" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> - <option id="gnu.cpp.compiler.option.include.paths.1602573819" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> + <configuration artifactName="${ProjName}.fa2rg" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502" name="Debug.fa2rg" parent="cdt.managedbuild.config.gnu.exe.debug"> + <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.604421374" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.171217329" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> + <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.911360895" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.archiver.base.1147345420" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.697878346" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> + <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1741428562" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> + <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1335381260" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> + <option id="gnu.cpp.compiler.option.include.paths.496289937" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/src}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1393816980" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> + <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2039472493" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1999103319" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> - <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1962342513" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> - <option id="gnu.c.compiler.exe.debug.option.debugging.level.765039437" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1722777615" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.680760064" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> + <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1351058005" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.exe.debug.option.debugging.level.1785101381" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1511241353" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.797807830" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.270290307" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> - <option id="gnu.cpp.link.option.libs.1892985059" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> + <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.485379647" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1697144078" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> + <option id="gnu.cpp.link.option.libs.1211237825" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> <listOptionValue builtIn="false" value="alib"/> </option> - <option id="gnu.cpp.link.option.paths.1243381605" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> + <option id="gnu.cpp.link.option.paths.886643827" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/Debug}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1089719470" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> + <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1604949990" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/> </inputType> </tool> - <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1948392650" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.603842698" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.75667575" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.46006703" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> </toolChain> </folderInfo> <sourceEntries> - <entry excluding="src/rg2fsm" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry excluding="src/arg2fa.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> </sourceEntries> </configuration> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> </cconfiguration> - <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1988565968.1955017273"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1988565968.1955017273" moduleId="org.eclipse.cdt.core.settings" name="arg2fsm"> + <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502.51455777"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502.51455777" moduleId="org.eclipse.cdt.core.settings" name="Debug.rg2fa"> <externalSettings/> <extensions> <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> @@ -176,45 +176,45 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1988565968.1955017273" name="arg2fsm" parent="cdt.managedbuild.config.gnu.exe.debug"> - <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1988565968.1955017273." name="/" resourcePath=""> - <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.30966406" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> - <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.375369379" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1236307034" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.archiver.base.924812237" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.875390371" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> - <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1255147689" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> - <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.515240613" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> - <option id="gnu.cpp.compiler.option.include.paths.45908198" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> + <configuration artifactName="${ProjName}.rg2fa" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502.51455777" name="Debug.rg2fa" parent="cdt.managedbuild.config.gnu.exe.debug"> + <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.923996745.1323144502.51455777." name="/" resourcePath=""> + <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1133348873" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug"> + <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1196604066" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/> + <builder buildPath="${workspace_loc:/aconversions}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.439014923" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.archiver.base.756579878" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.713036044" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"> + <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1350961549" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> + <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1494984597" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> + <option id="gnu.cpp.compiler.option.include.paths.206435288" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/src}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1881047541" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> + <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1867628733" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1618627351" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> - <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1357909590" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> - <option id="gnu.c.compiler.exe.debug.option.debugging.level.117170283" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.889163642" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> + <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1967537471" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"> + <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.828706130" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/> + <option id="gnu.c.compiler.exe.debug.option.debugging.level.1020112809" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> + <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1626369872" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> </tool> - <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.999062614" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> - <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.556165410" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> - <option id="gnu.cpp.link.option.libs.1563918087" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> + <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.722161002" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/> + <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.63113387" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"> + <option id="gnu.cpp.link.option.libs.937989636" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> <listOptionValue builtIn="false" value="alib"/> </option> - <option id="gnu.cpp.link.option.paths.323568976" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> + <option id="gnu.cpp.link.option.paths.1969989980" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"> <listOptionValue builtIn="false" value=""${workspace_loc:/alib/Debug}""/> </option> - <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1287333492" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> + <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1981097053" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/> </inputType> </tool> - <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.2048027174" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1925037264" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1320459224" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.611263798" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> </toolChain> </folderInfo> <sourceEntries> - <entry excluding="src/fsm2rg|afsm2rg" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry excluding="src/afa2rg.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> </sourceEntries> </configuration> </storageModule> @@ -222,20 +222,20 @@ </cconfiguration> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <project id="aconversions.cdt.managedbuild.target.gnu.exe.518781615" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/> + <project id="aconversions.cdt.managedbuild.target.gnu.exe.752321215" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/> </storageModule> <storageModule moduleId="scannerConfiguration"> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> - <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.431501956;cdt.managedbuild.config.gnu.exe.release.431501956.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.847661583;cdt.managedbuild.tool.gnu.cpp.compiler.input.1839212147"> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.847519806;cdt.managedbuild.config.gnu.exe.release.847519806.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1048535779;cdt.managedbuild.tool.gnu.c.compiler.input.791056291"> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> </scannerConfigBuildInfo> - <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1988565968;cdt.managedbuild.config.gnu.exe.debug.1988565968.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.2007935398;cdt.managedbuild.tool.gnu.cpp.compiler.input.1133597878"> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.923996745;cdt.managedbuild.config.gnu.exe.debug.923996745.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.185152796;cdt.managedbuild.tool.gnu.c.compiler.input.207101555"> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> </scannerConfigBuildInfo> - <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.431501956;cdt.managedbuild.config.gnu.exe.release.431501956.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.489752447;cdt.managedbuild.tool.gnu.c.compiler.input.1884817039"> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.923996745;cdt.managedbuild.config.gnu.exe.debug.923996745.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1256329136;cdt.managedbuild.tool.gnu.cpp.compiler.input.2087782350"> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> </scannerConfigBuildInfo> - <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1988565968;cdt.managedbuild.config.gnu.exe.debug.1988565968.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1198088489;cdt.managedbuild.tool.gnu.c.compiler.input.1189852814"> + <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.847519806;cdt.managedbuild.config.gnu.exe.release.847519806.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.401091216;cdt.managedbuild.tool.gnu.cpp.compiler.input.687064417"> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> </scannerConfigBuildInfo> </storageModule> @@ -244,11 +244,11 @@ <configuration configurationName="Release"> <resource resourceType="PROJECT" workspacePath="/aconversions"/> </configuration> - <configuration configurationName="afsm2rg"> - <resource resourceType="PROJECT" workspacePath="/aconversions"/> - </configuration> <configuration configurationName="Debug"> <resource resourceType="PROJECT" workspacePath="/aconversions"/> </configuration> </storageModule> + <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"> + <buildTargets/> + </storageModule> </cproject> diff --git a/aconversions/.settings/org.eclipse.cdt.codan.core.prefs b/aconversions/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..77386c23cbe3d3828b719e46914e7d33ce67f7a5 --- /dev/null +++ b/aconversions/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,67 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} diff --git a/aconversions/src/afa2rg.cpp b/aconversions/src/afa2rg.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e47f394408daf90d11d40eb893d0c1d9a4834a70 --- /dev/null +++ b/aconversions/src/afa2rg.cpp @@ -0,0 +1,47 @@ +//============================================================================ +// Name : afsm2rg.cpp +// Author : Tomas Pecka +// Version : +// Copyright : +// Description : +//============================================================================ + +#include <iostream> + +#include <AlibException.h> +#include <AutomatonFactory.h> +#include <grammar/GrammarPrinter.h> +#include <grammar/RightRegularGrammar.h> + +#include "conversions/fa2rg/fa2rg.h" + +using namespace std; +using namespace automaton; +using namespace grammar; +using namespace alib; + +int main(int argc, char** argv) +{ + try + { + string input( istreambuf_iterator<char>(cin), ( istreambuf_iterator<char>( ) ) ); + + FSM fsm = AutomatonFactory::buildFSM( AutomatonFactory::fromString( input ) ); + + if( ! fsm.isEpsilonFree() ) + { + cout << "FSM has epsilon transitions" << endl; + return 1; + } + + RightRegularGrammar rg = FA2RGconvert::convert( fsm ); + GrammarPrinter::toXML( rg, cout ); + } + catch (AlibException& e) + { + cout << e.what() << endl; + return 1; + } + + return 0; +} diff --git a/aconversions/src/arg2fa.cpp b/aconversions/src/arg2fa.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9b4a60f4dcab4d25b7d04fe3810b5d053f032b14 --- /dev/null +++ b/aconversions/src/arg2fa.cpp @@ -0,0 +1,39 @@ +//============================================================================ +// Name : afsm2rg.cpp +// Author : Tomas Pecka +// Version : +// Copyright : +// Description : +//============================================================================ + +#include <iostream> + +#include <GrammarFactory.h> +#include <AlibException.h> + +#include <automaton/AutomatonPrinter.h> + +#include "conversions/rg2fa/rg2fa.h" + +using namespace std; +using namespace grammar; +using namespace automaton; +using namespace alib; + +int main(int argc, char** argv) +{ + try + { + string input(istreambuf_iterator<char>(cin), (istreambuf_iterator<char>())); + + RightRegularGrammar rg = GrammarFactory::buildRightRegularGrammar( GrammarFactory::fromString( input ) ); + // LeftRegularGrammar rg = GrammarFactory::buildLeftRegularGrammar( GrammarFactory::fromString( input ) ); + FSM* fsm = RG2FSMConvert::convert( rg ); + AutomatonPrinter::toXML(*fsm, cout); + } + catch (AlibException& e) + { + cout << e.what() << endl; + return 0; + } +} diff --git a/aconversions/src/conversions/fa2rg/fa2rg.cpp b/aconversions/src/conversions/fa2rg/fa2rg.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2451f3845c261103889a2a3230e351e913de01b1 --- /dev/null +++ b/aconversions/src/conversions/fa2rg/fa2rg.cpp @@ -0,0 +1,85 @@ +#include "fa2rg.h" + +/* + * implements algorithm 2.104 in "[2] Melichar, B. Jazyky a překlady. Praha, Vydavatelstvà ČVUT 2007." + */ + +RightRegularGrammar FA2RGconvert::convert( const FSM & automaton ) +{ + RightRegularGrammar grammar; + + // step 0 + for( set<Symbol>::const_iterator i = automaton.getInputAlphabet().begin(); i != automaton.getInputAlphabet().end(); i++ ) + grammar.addTerminalSymbol( *i ); + + // step 1 + for( set<State>::const_iterator i = automaton.getStates().begin(); i != automaton.getStates().end(); i++) + grammar.addNonTerminalSymbol( Symbol( i->getName() ) ); + + // step 2 - create set of P in G + for( set<TransitionFSM>::const_iterator i = automaton.getTransitions().begin(); i != automaton.getTransitions().end(); i++ ) + { + // 2a + list<Symbol> leftSide, rightSide; + leftSide.push_back ( Symbol( i->getFrom().getName() ) ); + rightSide.push_back( Symbol( i->getInput().getSymbol() ) ); + rightSide.push_back( Symbol( i->getTo().getName() ) ); + Rule r( leftSide, rightSide ); + grammar.addRule(r); + + // 2b + if ( isInSet( i->getTo(), automaton.getFinalStates() ) ) + { + list<Symbol> leftSide, rightSide; + leftSide.push_back( Symbol( i->getFrom().getName() ) ); + rightSide.push_back( Symbol( i->getInput().getSymbol() ) ); + Rule r( leftSide, rightSide ); + grammar.addRule(r); + } + } + + // step 3 - Set S in G + grammar.setStartSymbol( Symbol( automaton.getInitialStates().begin() -> getName() )); + + // step 4 + if ( isInSet( State( grammar.getStartSymbol().getSymbol() ), automaton.getFinalStates() ) ) + { + grammar.addTerminalSymbol( Symbol( "" ) ); //FIXME no need for this! (alib problem) + + // 4a + if ( ! GrammarUtils::isNonterminalOnRightSide( grammar.getStartSymbol(), grammar.getRules() ) ) + { + list<Symbol> leftSide, rightSide; + leftSide.push_back( grammar.getStartSymbol() ); + rightSide.push_back( Symbol( "" ) ); + Rule r( leftSide, rightSide ); + grammar.addRule(r); + } + else // 4b + { + Symbol newStart = GrammarUtils::createUniqueSymbol( grammar.getStartSymbol().getSymbol(), grammar, APOSTROPHE ); + grammar.addNonTerminalSymbol( newStart ); + + for( set<Rule>::const_iterator i = grammar.getRules().begin(); i != grammar.getRules().end(); i++ ) + { + if( *(i->getLeftSide().begin()) == grammar.getStartSymbol()) + { + list<Symbol> leftSide, rightSide( i->getRightSide() ); + leftSide.push_back( newStart ); + Rule r( leftSide, rightSide ); + grammar.addRule(r); + } + } + grammar.setStartSymbol( newStart ); + + list<Symbol> leftSide, rightSide; + leftSide.push_back( newStart ); + rightSide.push_back( Symbol( "" ) ); + Rule rr( leftSide, rightSide ); + grammar.addRule(rr); + } + } + + return grammar; +} + diff --git a/aconversions/src/conversions/fa2rg/fa2rg.h b/aconversions/src/conversions/fa2rg/fa2rg.h new file mode 100644 index 0000000000000000000000000000000000000000..c55fe3eadb818e671a786ad0f33f851df6de968a --- /dev/null +++ b/aconversions/src/conversions/fa2rg/fa2rg.h @@ -0,0 +1,28 @@ +/* + * FSM2RGConvert.h + * + * Created on: 10. 11. 2013 + * Author: Tomas Pecka + */ + +#ifndef FA2RG_CONVERT_H_ +#define FA2RG_CONVERT_H_ + +#include <automaton/FSM/FSM.h> +#include <grammar/RightRegularGrammar.h> + +#include "../../utils/GrammarUtils.h" +#include "../../utils/AutomatonUtils.h" + +using namespace std; +using namespace automaton; +using namespace grammar; + +class FA2RGconvert +{ +public: + static RightRegularGrammar convert( const FSM & automaton ); + +}; + +#endif /* FA2RG_CONVERT_H_ */ diff --git a/aconversions/src/conversions/rg2fa/rg2fa.cpp b/aconversions/src/conversions/rg2fa/rg2fa.cpp new file mode 100644 index 0000000000000000000000000000000000000000..171d3d7b3788a9e7579cc38d7a7369adfa8b2871 --- /dev/null +++ b/aconversions/src/conversions/rg2fa/rg2fa.cpp @@ -0,0 +1,111 @@ +/* + * FSM2RGConvert.cpp + * + * Created on: 10. 11. 2013 + * Author: tomas + */ + +#include "rg2fa.h" + +/* + * implements 2.98 in "[2] Melichar, B. Jazyky a překlady. Praha, Vydavatelstvà ČVUT 2007." + */ +FSM * RG2FSMConvert::convert( const RightRegularGrammar & grammar ) +{ + FSM* automaton = new FSM(); + + // step 1 + for( set<Symbol>::const_iterator i = grammar.getTerminalSymbols().begin(); i != grammar.getTerminalSymbols().end(); i++ ) + automaton -> addInputSymbol( *i ); + + // step 2 + for( set<Symbol>::const_iterator i = grammar.getNonTerminalSymbols().begin(); i != grammar.getNonTerminalSymbols().end(); i++ ) + automaton -> addState( State( i-> getSymbol() ) ); + + State AState = AutomatonUtils::createUniqueState( "A", automaton->getStates() ); + automaton -> addState( AState ); + + // step 3, constructing \delta + for( set<Rule>::const_iterator i = grammar.getRules().begin(); i != grammar.getRules().end(); i++ ) + { + if( GrammarUtils::isEpsilonRule(*i) ) + continue; + + State current( GrammarUtils::getFirstSymbolFromSet( i->getLeftSide(), grammar.getNonTerminalSymbols() ) -> getSymbol() ); + Symbol input( GrammarUtils::getFirstSymbolFromSet( i->getRightSide(), grammar.getTerminalSymbols() ) -> getSymbol() ); + + // if B->a => \delta(B,a)=AState + if( i->getRightSide().size() == 1 ) + automaton->addTransition( current, input, AState ); + + // if B->aC => \delta(B,a)=C + if( i->getRightSide().size() == 2 ) + { + State next( GrammarUtils::getFirstSymbolFromSet( i -> getRightSide(), grammar.getNonTerminalSymbols() ) -> getSymbol() ); + automaton->addTransition( current, input, next ); + } + } + + // step 4 + automaton -> addInitialState( grammar.getStartSymbol().getSymbol() ); + + // step 5 + automaton -> addFinalState( AState ); + for( set<Rule>::const_iterator i = grammar.getRules().begin(); i != grammar.getRules().end(); i++ ) + if( GrammarUtils::isEpsilonRule( *i ) ) + automaton -> addFinalState( State( grammar.getStartSymbol().getSymbol() )); + + return automaton; +} + + +/* + * implements 2.102 in "[2] Melichar, B. Jazyky a překlady. Praha, Vydavatelstvà ČVUT 2007." + */ +FSM * RG2FSMConvert::convert( const LeftRegularGrammar & grammar ) +{ + FSM* automaton = new FSM(); + + // step 1 + for( set<Symbol>::const_iterator i = grammar.getTerminalSymbols().begin(); i != grammar.getTerminalSymbols().end(); i++ ) + automaton -> addInputSymbol( *i ); + + // step 2 + for( set<Symbol>::const_iterator i = grammar.getNonTerminalSymbols().begin(); i != grammar.getNonTerminalSymbols().end(); i++ ) + automaton -> addState( State( i-> getSymbol() ) ); + + State startState = AutomatonUtils::createUniqueState( "q0", automaton->getStates() ); + automaton -> addState( startState ); + + // step 3, constructing \delta + for( set<Rule>::const_iterator i = grammar.getRules().begin(); i != grammar.getRules().end(); i++ ) + { + if( i->getRightSide().size() == 0 ) continue; + + State current( GrammarUtils::getFirstSymbolFromSet( i->getLeftSide(), grammar.getNonTerminalSymbols() ) -> getSymbol() ); + Symbol input( GrammarUtils::getFirstSymbolFromSet( i->getRightSide(), grammar.getTerminalSymbols() ) -> getSymbol() ); + + // if B->a => \delta(B,a)=AState + if( i->getRightSide().size() == 1 ) + automaton->addTransition( startState, input, current ); + + // if B->aC => \delta(B,a)=C + if( i->getRightSide().size() == 2 ) + { + State next( GrammarUtils::getFirstSymbolFromSet( i -> getRightSide(), grammar.getNonTerminalSymbols() ) -> getSymbol() ); + automaton->addTransition( next, input, current ); + } + } + + // step 4 + automaton -> addInitialState( startState ); + + // step 5 + automaton -> addFinalState( State( grammar.getStartSymbol().getSymbol() ) ); + for( set<Rule>::const_iterator i = grammar.getRules().begin(); i != grammar.getRules().end(); i++ ) + if( GrammarUtils::isEpsilonRule( *i ) ) + automaton -> addFinalState( startState ); + + + return automaton; +} diff --git a/aconversions/src/conversions/rg2fa/rg2fa.h b/aconversions/src/conversions/rg2fa/rg2fa.h new file mode 100644 index 0000000000000000000000000000000000000000..69d4c97c3fef1048fc82e71e71176edf02c66039 --- /dev/null +++ b/aconversions/src/conversions/rg2fa/rg2fa.h @@ -0,0 +1,31 @@ +/* + * RG2FSMConvert.h + * + * Created on: 10. 11. 2013 + * Author: Tomas Pecka + */ + +#ifndef RG2FA_CONVERT_H_ +#define RG2FA_CONVERT_H_ + +#include <map> + +#include <automaton/FSM/FSM.h> +#include <grammar/RightRegularGrammar.h> +#include <grammar/LeftRegularGrammar.h> + +#include "../../utils/AutomatonUtils.h" +#include "../../utils/GrammarUtils.h" + +using namespace std; +using namespace automaton; +using namespace grammar; + +class RG2FSMConvert +{ +public: + static FSM* convert( const RightRegularGrammar & grammar ); + static FSM* convert( const LeftRegularGrammar & grammar ); +}; + +#endif /* RG2FA_CONVERT_H_ */ diff --git a/aconversions/src/fsm2rg/FSM2RGConvert.cpp b/aconversions/src/fsm2rg/FSM2RGConvert.cpp deleted file mode 100644 index 33c93d5021e2ab5f58e0d94efb2cc2e24a80e967..0000000000000000000000000000000000000000 --- a/aconversions/src/fsm2rg/FSM2RGConvert.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/* - * FSM2RGConvert.cpp - * - * Created on: 10. 11. 2013 - * Author: tomas - */ - -#include <algorithm> -#include "FSM2RGConvert.h" - -#include <iostream> -#include <cassert> - -/* - * implements algorithm 2.104 in "Melichar, B. Jazyky a překlady. Praha, Vydavatelstvà ČVUT 2007." - * Input: NFA M = (Q, T, \delta, q_0, F) - * Output: Right regular grammar G=(N,T,P,S), L(M)=L(G) - */ - -// Check whether the nonterminal is on right side of any rule. -bool FSM2RGConvert::isNonterminalOnRightSide( const set<Rule> & rules, const Symbol & nonterminal ) -{ - for( set<Rule>::const_iterator i = rules.begin(); i!= rules.end(); i++ ) - { - list<Symbol> leftSide = i -> getLeftSide(); - - list<Symbol>::const_iterator onRightSide = find( leftSide.begin(), leftSide.end(), nonterminal ); - if ( onRightSide != leftSide.end() ) - return true; - } - - return false; -} - - -const Symbol& FSM2RGConvert::getSymbol( const set<Symbol> & symbolSet, const string& symbol ) -{ - for( set<Symbol>::const_iterator i = symbolSet.begin(); i != symbolSet.end(); i++ ) - { - if ( i->getSymbol() == symbol ) - return *i; - } - - assert(false); - return *symbolSet.begin(); -} - - -RightRegularGrammar * FSM2RGConvert::convert( FSM* automaton ) -{ - RightRegularGrammar* regularGrammar = new RightRegularGrammar(); - - // step 1 - init T and N in G - for( set<Symbol>::const_iterator i = automaton -> getInputAlphabet().begin(); i != automaton -> getInputAlphabet().end(); i++ ) - regularGrammar -> addTerminalSymbol( *i ); - - for( set<State>::const_iterator i = automaton -> getStates().begin(); i != automaton -> getStates().end(); i++) - regularGrammar -> addNonTerminalSymbol( Symbol( i->getName() ) ); - - - // step 2 - create set of P in G - const set<Symbol>& nonTerminals = regularGrammar -> getNonTerminalSymbols(); - const set<Symbol>& terminals = regularGrammar -> getTerminalSymbols(); - - for( set<TransitionFSM>::const_iterator i = automaton -> getTransitions().begin(); i != automaton -> getTransitions().end(); i++ ) - { - Rule r; - list<Symbol> leftSide, rightSide; - - // 2a - leftSide.push_back( getSymbol ( nonTerminals, i->getFrom().getName() )); - rightSide.push_back( getSymbol ( terminals, i->getInput().getSymbol() )); - rightSide.push_back( getSymbol ( nonTerminals, i->getTo().getName() )); - - r . setLeftSide( leftSide ); - r . setRightSide( rightSide ); - regularGrammar -> addRule(r); - - // 2b - if ( automaton -> getFinalStates() . find( i-> getTo()) != automaton->getFinalStates().end() ) - { - Rule r; - list<Symbol> leftSide, rightSide; - - leftSide.push_back( getSymbol( nonTerminals, i->getFrom().getName() )); - rightSide.push_back( getSymbol( terminals, i->getInput().getSymbol() )); - r.setLeftSide( leftSide ); - r.setRightSide( rightSide ); - - regularGrammar -> addRule(r); - } - } - - // step 3 - Set S in G - assert( automaton->getInitialStates().size() == 1 ); // TODO: What if... FSM has more than 1 initial state? - regularGrammar-> setStartSymbol( Symbol( automaton->getInitialStates().begin() -> getName() )); - - // step 4 - if ( automaton->getFinalStates() . find( State(regularGrammar -> getStartSymbol().getSymbol())) != automaton->getFinalStates().end() ) - { - regularGrammar -> addTerminalSymbol( Symbol( "" )); - // 4a - if ( ! isNonterminalOnRightSide( regularGrammar -> getRules(), regularGrammar -> getStartSymbol() ) ) - { - Rule r; - list<Symbol> leftSide, rightSide; - - leftSide.push_back( regularGrammar -> getStartSymbol() ); - rightSide.push_back( Symbol( "" ) ); - - regularGrammar -> addRule(r); - } - else // 4b - { - Symbol newStart(regularGrammar->getStartSymbol().getSymbol() + "'"); //TODO: unique name - regularGrammar -> addNonTerminalSymbol( newStart ); - - for( set<Rule>::const_iterator i = regularGrammar->getRules().begin(); i != regularGrammar->getRules().end(); i++ ) - { - if( *(i->getLeftSide().begin()) == regularGrammar->getStartSymbol()) - { - Rule r; - list<Symbol> leftSide, rightSide( i->getRightSide() ); - leftSide.push_back( newStart ); - - r.setLeftSide( leftSide ); - r.setRightSide( rightSide ); - regularGrammar -> addRule(r); - } - } - regularGrammar -> setStartSymbol( newStart ); - - Rule rr; - list<Symbol> leftSide, rightSide; - leftSide.push_back( newStart ); - rightSide.push_back( Symbol( "" ) ); - rr.setLeftSide( leftSide ); - rr.setRightSide( rightSide ); - - regularGrammar-> addRule(rr); - } - } - - return regularGrammar; -} diff --git a/aconversions/src/fsm2rg/FSM2RGConvert.h b/aconversions/src/fsm2rg/FSM2RGConvert.h deleted file mode 100644 index 7307b8c5d50d4c2fc37d3444844dd5ca685ff710..0000000000000000000000000000000000000000 --- a/aconversions/src/fsm2rg/FSM2RGConvert.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * FSM2RGConvert.h - * - * Created on: 10. 11. 2013 - * Author: Tomas Pecka - */ - -//FIXME Find better name than fsm2rg ! - -#ifndef FSM2RGCONVERT_H_ -#define FSM2RGCONVERT_H_ - -#include "automaton/FSM/FSM.h" -#include "grammar/RightRegularGrammar.h" - -using namespace std; -using namespace automaton; -using namespace grammar; - -class FSM2RGConvert -{ -public: - static RightRegularGrammar* convert( FSM* automaton ); - -protected: - static bool isNonterminalOnRightSide( const set<Rule> & rules, const Symbol & nonterminal ); - static const Symbol& getSymbol( const set<Symbol> & symbolSet, const string& symbol ); -}; - -#endif /* FSM2RGCONVERT_H_ */ diff --git a/aconversions/src/fsm2rg/afsm2rg.cpp b/aconversions/src/fsm2rg/afsm2rg.cpp deleted file mode 100644 index 37af23c730692078d99bc974526d9b16d927a395..0000000000000000000000000000000000000000 --- a/aconversions/src/fsm2rg/afsm2rg.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//============================================================================ -// Name : afsm2rg.cpp -// Author : Tomas Pecka -// Version : -// Copyright : -// Description : -//============================================================================ - -#include <iostream> - -#include "automaton/UnknownAutomaton.h" -#include "AutomatonFactory.h" -#include "AlibException.h" - -#include "FSM2RGConvert.h" -#include "grammar/GrammarPrinter.h" - -using namespace std; -using namespace automaton; -using namespace alib; - -int main(int argc, char** argv) -{ - UnknownAutomaton automaton; - - try - { - if (argc > 1) - { - if (string("-h").compare(argv[1]) == 0) - { - cout << "Converts FSM to right regular grammar." << endl; - cout << "Usage: afsm2rg [automaton.xml]" << endl; - return -1; - } - - automaton = AutomatonFactory::fromFile(argv[1]); - } - else - { - string input(istreambuf_iterator<char>(cin), (istreambuf_iterator<char>())); - automaton = AutomatonFactory::fromString(input); - } - - Automaton* knownAutomaton = AutomatonFactory::buildAutomaton(&automaton); - Grammar* rg = FSM2RGConvert::convert( dynamic_cast<FSM*>(knownAutomaton) ); - GrammarPrinter::toXML(*rg, cout); - } - catch (AlibException& e) - { - cout << e.what() << endl; - return 0; - } -} diff --git a/aconversions/src/rg2fsm/RG2FSMConvert.cpp b/aconversions/src/rg2fsm/RG2FSMConvert.cpp deleted file mode 100644 index 7b10ecbc350d4edb9b15b3c9f1a071688a6f23d0..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2fsm/RG2FSMConvert.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * FSM2RGConvert.cpp - * - * Created on: 10. 11. 2013 - * Author: tomas - */ - -#include <algorithm> -#include "RG2FSMConvert.h" - -#include <iostream> -#include <cassert> - -/* - * implements 2.98 in "[2] Melichar, B. Jazyky a překlady. Praha, Vydavatelstvà ČVUT 2007." - * Input: Right regular grammar G=(N,T,P,S) - * Output: NFA M = (Q, T, \delta, q_0, F) , L(M)=L(G) - */ - -// Check whether the nonterminal is on right side of any rule. -const Symbol& RG2FSMConvert::getSymbol( const set<Symbol> & symbolSet, const string& symbol ) -{ - for( set<Symbol>::const_iterator i = symbolSet.begin(); i != symbolSet.end(); i++ ) - { - if ( i->getSymbol() == symbol ) - return *i; - } - - assert(false); - return *symbolSet.begin(); -} - - -FSM * RG2FSMConvert::convert( RightRegularGrammar* grammar ) -{ - FSM* automaton = new FSM(); - - // step 1 - for( set<Symbol>::const_iterator i = grammar -> getTerminalSymbols().begin(); i != grammar -> getTerminalSymbols().end(); i++ ) - automaton -> addInputSymbol( *i ); - - // step 2 - for( set<Symbol>::const_iterator i = grammar -> getNonTerminalSymbols().begin(); i != grammar -> getNonTerminalSymbols().end(); i++ ) - automaton -> addState( State( i->getSymbol() ) ); - - State AState( "o____o" ); // TODO: unique name - automaton -> addState( AState ); - - // step 3, constructing \delta - for( set<Rule>::const_iterator i = grammar -> getRules().begin(); i != grammar -> getRules().end(); i++ ) - { - State current( i->getLeftSide().begin()->getSymbol() ); - Symbol input( i->getRightSide().begin()->getSymbol() ); - - // if B->a => \delta(B,a)=AState - if( i->getRightSide().size() == 1 ) - automaton->addTransition( current, input, AState ); - - // if B->aC => \delta(B,a)=C - if( i->getRightSide().size() == 2 ) - { - list<Symbol>::const_iterator it = i->getRightSide().begin(); - it ++; - State next( it->getSymbol() ); - automaton->addTransition( current, input, next ); - } - - } - - // step 4 - automaton -> addInitialState( State( grammar->getStartSymbol().getSymbol()) ); - - // step 5 - automaton -> addFinalState( AState ); - for( set<Rule>::const_iterator i = grammar->getRules().begin(); i != grammar->getRules().end(); i++ ) - { - // if S->\epsilon - if( i->getLeftSide().size() == 1 && *( i->getLeftSide().begin() ) == grammar->getStartSymbol() && - i->getRightSide().size() == 1 && *( i->getRightSide().begin()) == Symbol("") ) - { - automaton -> addFinalState( State( grammar->getStartSymbol().getSymbol() )); - } - } - - return automaton; -} diff --git a/aconversions/src/rg2fsm/RG2FSMConvert.h b/aconversions/src/rg2fsm/RG2FSMConvert.h deleted file mode 100644 index 0e11ce44ce017479e565712608e461ed86e30665..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2fsm/RG2FSMConvert.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * RG2FSMConvert.h - * - * Created on: 10. 11. 2013 - * Author: Tomas Pecka - */ - -#ifndef RG2FSMCONVERT_H_ -#define RG2FSMCONVERT_H_ - -#include "automaton/FSM/FSM.h" -#include "grammar/RightRegularGrammar.h" - -using namespace std; -using namespace automaton; -using namespace grammar; - -class RG2FSMConvert -{ -public: - static FSM* convert( RightRegularGrammar* grammar ); - -protected: - static const Symbol& getSymbol( const set<Symbol> & symbolSet, const string& symbol ); -}; - -#endif /* RG2FSMCONVERT_H_ */ diff --git a/aconversions/src/rg2fsm/arg2fsm.cpp b/aconversions/src/rg2fsm/arg2fsm.cpp deleted file mode 100644 index 48bec1d7475dd98188a146eb6e97100bbcb03f03..0000000000000000000000000000000000000000 --- a/aconversions/src/rg2fsm/arg2fsm.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//============================================================================ -// Name : afsm2rg.cpp -// Author : Tomas Pecka -// Version : -// Copyright : -// Description : -//============================================================================ - -#include <iostream> - -#include "grammar/UnknownGrammar.h" -#include "GrammarFactory.h" -#include "AlibException.h" - -#include "automaton/AutomatonPrinter.h" - -#include "RG2FSMConvert.h" - -using namespace std; -using namespace grammar; -using namespace automaton; -using namespace alib; - -int main(int argc, char** argv) -{ - UnknownGrammar grammar; - - try - { - if (argc > 1) - { - if (string("-h").compare(argv[1]) == 0) - { - cout << "Converts right regular grammar to nfsm." << endl; - cout << "Usage: arg2fsm [grammar.xml]" << endl; - return -1; - } - - grammar = GrammarFactory::fromFile(argv[1]); - } - else - { - string input(istreambuf_iterator<char>(cin), (istreambuf_iterator<char>())); - grammar = GrammarFactory::fromString(input); - } - - RightRegularGrammar knownGrammar = GrammarFactory::buildRightRegularGrammar(&grammar); - FSM* fsm = RG2FSMConvert::convert( & knownGrammar ); - AutomatonPrinter::toXML(*fsm, cout); - } - catch (AlibException& e) - { - cout << e.what() << endl; - return 0; - } -} diff --git a/aconversions/src/utils/AutomatonUtils.cpp b/aconversions/src/utils/AutomatonUtils.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9d491cbc299da9dfc07426863baee56ae717a0a9 --- /dev/null +++ b/aconversions/src/utils/AutomatonUtils.cpp @@ -0,0 +1,40 @@ +#include "AutomatonUtils.h" + +/** + * Creates unique state in set by appending integer to name parameter. + * + * @param name desired name of state + * @param existingStates set of states where to insert new state + * @return state with unique name(@see Symbol) + */ + +State AutomatonUtils::createUniqueState( const char * name, const set<State> & existingStates ) +{ + string str ( name ); + return createUniqueState( str, existingStates ); +} + + +State AutomatonUtils::createUniqueState( const string & name, const set<State> & existingStates ) +{ + State s( name ); + if( ! isInSet( s, existingStates ) ) + return s; + + int i = 1; + while( true ) + { + ostringstream oss; + oss << name << i ++; + + State s( oss.str() ); + + if( ! isInSet( s, existingStates ) ) + return s; + + if( i == INT_MAX ) + throw AutomatonException( "AutomatonUtils::createUniqueState: Couldn't create unique state." ); + } + + return s; // intentionally, unreachable +} diff --git a/aconversions/src/utils/AutomatonUtils.h b/aconversions/src/utils/AutomatonUtils.h new file mode 100644 index 0000000000000000000000000000000000000000..deed8616ac6f5e0fb19b600f6f83f4e437b96ffc --- /dev/null +++ b/aconversions/src/utils/AutomatonUtils.h @@ -0,0 +1,24 @@ +#ifndef AUTOMATONUTILS_H_ +#define AUTOMATONUTILS_H_ + +#include "utils.h" + +#include <automaton/exception/AutomatonException.h> +#include <automaton/State.h> + +using namespace std; +using namespace alib; +using namespace automaton; + +class AutomatonUtils +{ + +public: + static State createUniqueState( const char * name, const set<State> & existingStates ); + static State createUniqueState( const string & name, const set<State> & existingStates ); + +private: + +}; + +#endif /* AUTOMATONUTILS_H_ */ diff --git a/aconversions/src/utils/GrammarUtils.cpp b/aconversions/src/utils/GrammarUtils.cpp new file mode 100644 index 0000000000000000000000000000000000000000..88f5b322bc7af0e72df077f7d5392c3fe7417ff5 --- /dev/null +++ b/aconversions/src/utils/GrammarUtils.cpp @@ -0,0 +1,79 @@ +#include "GrammarUtils.h" + +/** + * Checks whether given non-terminal symbol is on the right side of any rule + * + * @param nonTerminal given non-terminal + * @param rules set of rules to check + * @return true/false + */ +bool GrammarUtils::isNonterminalOnRightSide( const Symbol & nonTerminal, const set<Rule> & rules ) +{ + for( set<Rule>::const_iterator i = rules.begin(); i!= rules.end(); i++ ) + { + list<Symbol> leftSide = i -> getLeftSide(); + + list<Symbol>::const_iterator onRightSide = find( leftSide.begin(), leftSide.end(), nonTerminal ); + if ( onRightSide != leftSide.end() ) + return true; + } + + return false; +} + + +const list<Symbol>::const_iterator GrammarUtils::getFirstSymbolFromSet( const list<Symbol> & ruleSymbols, const set<Symbol> & grammarSymbols ) +{ + list<Symbol>::const_iterator i; + + for( i = ruleSymbols.begin(); i != ruleSymbols.end(); i++ ) + if( isInSet( *i, grammarSymbols ) ) + return i; + + return i; +} + +bool GrammarUtils::isEpsilonRule( const Rule & rule ) +{ + // relies on grammar check. Assumes that aLib allows only S->\eps, where S is startSymbol of Grammar (by definition) + return rule.getRightSide().size() == 0; +} + +Symbol GrammarUtils::createUniqueSymbol( const char * name, const RegularGrammar & grammar, SuffixType suffix = UNDEFINED ) +{ + string str( name ); + return createUniqueSymbol( name, grammar, suffix ); +} + +Symbol GrammarUtils::createUniqueSymbol( const string & name, const RegularGrammar & grammar, SuffixType suffix = UNDEFINED ) +{ + if( suffix >= UNDEFINED ) + suffix = INTEGER; + + Symbol s( name ); + if( ! isInSet( s, grammar.getNonTerminalSymbols() ) && ! isInSet( s, grammar.getTerminalSymbols() ) ) + return s; + + int i = 1; + string str = "'"; + while( true ) + { + ostringstream oss; + if( suffix == INTEGER ) + oss << name << i++; + else + { + oss << name << str; + str += '\''; + } + + Symbol s( oss.str() ); + if( ! isInSet( s, grammar.getNonTerminalSymbols() ) && ! isInSet( s, grammar.getTerminalSymbols() ) ) + return s; + + if( i == INT_MAX ) + throw GrammarException( "GrammarUtils::createUniqueSymbol: Couldn't create unique symbol." ); + } + + return s; // intentionally, unreachable +} diff --git a/aconversions/src/utils/GrammarUtils.h b/aconversions/src/utils/GrammarUtils.h new file mode 100644 index 0000000000000000000000000000000000000000..1e5c740b0246b9ecd4a5a5a1a35959e28a27b345 --- /dev/null +++ b/aconversions/src/utils/GrammarUtils.h @@ -0,0 +1,38 @@ +/* + * GrammarUtils.h + * + * Created on: 29. 11. 2013 + * Author: tomas + */ + +#ifndef GRAMMARUTILS_H_ +#define GRAMMARUTILS_H_ + +#include "utils.h" + +#include <grammar/GrammarException.h> +#include <grammar/RegularGrammar.h> +#include <grammar/Rule.h> +#include <alphabet/Symbol.h> + +using namespace std; +using namespace grammar; + + +class GrammarUtils +{ + +public: + static bool isNonterminalOnRightSide( const Symbol & nonTerminal, const set<Rule> & rules ); + static const list<Symbol>::const_iterator getFirstSymbolFromSet( const list<Symbol> & ruleSymbols, const set<Symbol> & grammarSymbols ); + + static bool isEpsilonRule( const Rule & rule ); + + static Symbol createUniqueSymbol( const char * name, const RegularGrammar & grammar, SuffixType suffix ); + static Symbol createUniqueSymbol( const string & name, const RegularGrammar & grammar, SuffixType suffix ); + +private: + +}; + +#endif /* GRAMMARUTILS_H_ */ diff --git a/aconversions/src/utils/utils.h b/aconversions/src/utils/utils.h new file mode 100644 index 0000000000000000000000000000000000000000..dea4501b7ae6ca216a4330ced59deca5ad82437c --- /dev/null +++ b/aconversions/src/utils/utils.h @@ -0,0 +1,21 @@ +#ifndef UTILS_H_ +#define UTILS_H_ + +#include <climits> +#include <sstream> +#include <string> +#include <algorithm> +#include <set> +#include <list> + + +#define isInSet(x,set) ( (set).find((x)) != (set).end()) + +enum SuffixType +{ + INTEGER, + APOSTROPHE, + UNDEFINED, +}; + +#endif /* UTILS_H_ */