changes for srcml 1.0

This commit is contained in:
fixminer
2020-04-10 14:48:35 +02:00
parent 96f44555aa
commit 26ee9c2a23
6 changed files with 928 additions and 593 deletions
+336 -250
View File
@@ -2,7 +2,11 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="75ef5724-93bc-4ed4-82b2-ff12411188dc" name="Default Changelist" comment=""> <list default="true" id="75ef5724-93bc-4ed4-82b2-ff12411188dc" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.travis.yml" beforeDir="false" afterPath="$PROJECT_DIR$/.travis.yml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/NodeMap_new.java" beforeDir="false" afterPath="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/NodeMap_new.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java" beforeDir="false" afterPath="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java" beforeDir="false" afterPath="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java" beforeDir="false" afterPath="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java" afterDir="false" />
</list> </list>
<ignored path="$PROJECT_DIR$/classes/" /> <ignored path="$PROJECT_DIR$/classes/" />
<ignored path="$PROJECT_DIR$/target/" /> <ignored path="$PROJECT_DIR$/target/" />
@@ -24,20 +28,38 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java"> <entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75"> <state relative-caret-position="217">
<caret line="13" column="18" selection-start-line="13" selection-start-column="18" selection-end-line="13" selection-end-column="18" /> <caret line="162" column="83" selection-start-line="162" selection-start-column="83" selection-end-line="162" selection-end-column="83" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java"> <entry file="file://$PROJECT_DIR$/richedit/src/main/resource/testFiles/if_else.c">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60"> <state relative-caret-position="169">
<caret line="14" selection-start-line="14" selection-end-line="14" /> <caret line="164" selection-start-line="164" selection-end-line="164" />
<folding>
<element signature="e#16976#16977#0" expanded="true" />
<element signature="e#17044#17045#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/tree/ITree.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="166" column="9" selection-start-line="166" selection-start-column="9" selection-end-line="166" selection-end-column="9" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -45,8 +67,8 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffParser.java"> <entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffParser.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480"> <state relative-caret-position="290">
<caret line="80" selection-start-line="80" selection-end-line="80" /> <caret line="71" selection-start-line="71" selection-end-line="71" />
<folding> <folding>
<element signature="e#2020#2029#0" expanded="true" /> <element signature="e#2020#2029#0" expanded="true" />
</folding> </folding>
@@ -55,69 +77,21 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/GumTreeCComparer.java"> <entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="269"> <state relative-caret-position="186">
<caret line="54" selection-start-line="54" selection-end-line="54" /> <caret line="88" selection-start-line="88" selection-end-line="88" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java"> <entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/tree/Tree.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105"> <state relative-caret-position="186">
<caret line="34" column="48" selection-start-line="34" selection-start-column="48" selection-end-line="34" selection-end-column="48" /> <caret line="113" selection-start-line="113" selection-end-line="113" />
<folding> <folding>
<element signature="e#1585#1586#0" expanded="true" /> <element signature="e#3143#3144#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.travis.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="1" column="12" selection-start-line="1" selection-start-column="12" selection-end-line="1" selection-end-column="12" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="73" selection-start-line="73" selection-end-line="73" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/gen/TreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="329">
<caret line="43" selection-start-line="43" selection-end-line="43" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.travis_native_dependencies.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="48" selection-start-line="2" selection-start-column="48" selection-end-line="2" selection-end-column="48" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestIntroClass.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="30" column="21" selection-start-line="30" selection-start-column="21" selection-end-line="30" selection-end-column="21" />
<folding>
<element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -131,6 +105,27 @@
<find>stopD</find> <find>stopD</find>
<find>'shapes'</find> <find>'shapes'</find>
<find>TestTreeUtils</find> <find>TestTreeUtils</find>
<find>return</find>
<find>expr_stm</find>
<find>break</find>
<find>struct</find>
<find>enum_de</find>
<find>funct</find>
<find>else</find>
<find>then</find>
<find>init</find>
<find>condition</find>
<find>specifier</find>
<find>parameter_list</find>
<find>parameter</find>
<find>argument</find>
<find>call</find>
<find>throw</find>
<find>macro</find>
<find>marker</find>
<find>import</find>
<find>selector</find>
<find>setPos</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>fixminer</replace> <replace>fixminer</replace>
@@ -153,7 +148,6 @@
<option value="$PROJECT_DIR$/gumtree/core/pom.xml" /> <option value="$PROJECT_DIR$/gumtree/core/pom.xml" />
<option value="$PROJECT_DIR$/gumtree/pom.xml" /> <option value="$PROJECT_DIR$/gumtree/pom.xml" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/utils/FileHelper.java" /> <option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/utils/FileHelper.java" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouper.java" /> <option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouper.java" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffWorker.java" /> <option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffWorker.java" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java" /> <option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java" />
@@ -182,11 +176,14 @@
<option value="$PROJECT_DIR$/gumtree/gen.srcml/src/test/java/com/github/gumtreediff/gen/srcml/TestSrcmlJavaGenerator.java" /> <option value="$PROJECT_DIR$/gumtree/gen.srcml/src/test/java/com/github/gumtreediff/gen/srcml/TestSrcmlJavaGenerator.java" />
<option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/FixPatternMiner/BaseTest.java" /> <option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/FixPatternMiner/BaseTest.java" />
<option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/BaseTest.java" /> <option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/BaseTest.java" />
<option value="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java" />
<option value="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java" /> <option value="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java" />
<option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java" />
<option value="$PROJECT_DIR$/.travis_native_dependencies.sh" /> <option value="$PROJECT_DIR$/.travis_native_dependencies.sh" />
<option value="$PROJECT_DIR$/.travis.yml" /> <option value="$PROJECT_DIR$/.travis.yml" />
<option value="$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java" />
<option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java" />
<option value="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/NodeMap_new.java" />
<option value="$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java" />
<option value="$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java" />
</list> </list>
</option> </option>
</component> </component>
@@ -282,8 +279,62 @@
<path> <path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" /> <item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" /> <item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resource" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resource" type="462c0819:PsiDirectoryNode" />
<item name="testFiles" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
<item name="richedit" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="serval" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="gumtree" type="b2602c69:ProjectViewProjectNode" /> <item name="gumtree" type="b2602c69:ProjectViewProjectNode" />
<item name="fixminer_source" type="462c0819:PsiDirectoryNode" /> <item name="fixminer_source" type="462c0819:PsiDirectoryNode" />
@@ -330,7 +381,7 @@
</list> </list>
</option> </option>
</component> </component>
<component name="RunManager" selected="JUnit.TestPredefinedCases.testWhileCase1"> <component name="RunManager" selected="JUnit.TestPredefinedCases">
<configuration default="true" type="Applet"> <configuration default="true" type="Applet">
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<method v="2"> <method v="2">
@@ -343,7 +394,23 @@
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
</method> </method>
</configuration> </configuration>
<configuration name="TestIntroClass.test_manybugs_gmp_14166_14167" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <configuration name="TestInputCases" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="RichEdit" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.lu.uni.serval.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.lu.uni.serval" />
<option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestInputCases" />
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestIntroClass" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="RichEdit" /> <module name="RichEdit" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
@@ -354,7 +421,7 @@
<option name="PACKAGE_NAME" value="edu.lu.uni.serval" /> <option name="PACKAGE_NAME" value="edu.lu.uni.serval" />
<option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestIntroClass" /> <option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestIntroClass" />
<option name="METHOD_NAME" value="test_manybugs_gmp_14166_14167" /> <option name="METHOD_NAME" value="test_manybugs_gmp_14166_14167" />
<option name="TEST_OBJECT" value="method" /> <option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2"> <method v="2">
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
@@ -370,13 +437,14 @@
</extension> </extension>
<option name="PACKAGE_NAME" value="edu.lu.uni.serval" /> <option name="PACKAGE_NAME" value="edu.lu.uni.serval" />
<option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestPredefinedCases" /> <option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestPredefinedCases" />
<option name="METHOD_NAME" value="testWhileCase1" />
<option name="TEST_OBJECT" value="class" /> <option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2"> <method v="2">
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
</method> </method>
</configuration> </configuration>
<configuration name="TestPredefinedCases.testIFCase1" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <configuration name="TestPredefinedCases.testIFRetrun" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="RichEdit" /> <module name="RichEdit" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
@@ -386,7 +454,7 @@
</extension> </extension>
<option name="PACKAGE_NAME" value="edu.lu.uni.serval" /> <option name="PACKAGE_NAME" value="edu.lu.uni.serval" />
<option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestPredefinedCases" /> <option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestPredefinedCases" />
<option name="METHOD_NAME" value="testIFCase1" /> <option name="METHOD_NAME" value="testIFRetrun" />
<option name="TEST_OBJECT" value="method" /> <option name="TEST_OBJECT" value="method" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2"> <method v="2">
@@ -410,22 +478,6 @@
<option name="Make" enabled="true" /> <option name="Make" enabled="true" />
</method> </method>
</configuration> </configuration>
<configuration name="TestRealCases" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="RichEdit" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.lu.uni.serval.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.lu.uni.serval" />
<option name="MAIN_CLASS_NAME" value="edu.lu.uni.serval.TestRealCases" />
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit"> <configuration default="true" type="JUnit" factoryName="JUnit">
<option name="TEST_OBJECT" value="class" /> <option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
@@ -506,19 +558,19 @@
<list> <list>
<item itemvalue="Maven.FixPatternMiner [assembly:assembly]" /> <item itemvalue="Maven.FixPatternMiner [assembly:assembly]" />
<item itemvalue="Maven.FixPatternMiner [package]" /> <item itemvalue="Maven.FixPatternMiner [package]" />
<item itemvalue="JUnit.TestIntroClass.test_manybugs_gmp_14166_14167" /> <item itemvalue="JUnit.TestIntroClass" />
<item itemvalue="JUnit.TestRealCases" /> <item itemvalue="JUnit.TestInputCases" />
<item itemvalue="JUnit.TestPredefinedCases.testIFCase1" />
<item itemvalue="JUnit.TestPredefinedCases" />
<item itemvalue="JUnit.TestPredefinedCases.testWhileCase1" /> <item itemvalue="JUnit.TestPredefinedCases.testWhileCase1" />
<item itemvalue="JUnit.TestPredefinedCases" />
<item itemvalue="JUnit.TestPredefinedCases.testIFRetrun" />
</list> </list>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="JUnit.TestPredefinedCases.testWhileCase1" />
<item itemvalue="JUnit.TestPredefinedCases" /> <item itemvalue="JUnit.TestPredefinedCases" />
<item itemvalue="JUnit.TestPredefinedCases.testIFCase1" /> <item itemvalue="JUnit.TestPredefinedCases.testIFRetrun" />
<item itemvalue="JUnit.TestRealCases" /> <item itemvalue="JUnit.TestPredefinedCases.testWhileCase1" />
<item itemvalue="JUnit.TestIntroClass.test_manybugs_gmp_14166_14167" /> <item itemvalue="JUnit.TestInputCases" />
<item itemvalue="JUnit.TestIntroClass" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
@@ -536,43 +588,43 @@
<servers /> <servers />
</component> </component>
<component name="TestHistory"> <component name="TestHistory">
<history-entry file="TestActionGenerator_testWithActionExample - 2020.04.09 at 13h 21m 37s.xml"> <history-entry file="TestPredefinedCases_testWhileCase1 - 2020.04.10 at 14h 40m 23s.xml">
<configuration name="TestActionGenerator.testWithActionExample" configurationId="JUnit" />
</history-entry>
<history-entry file="TestActionGenerator_testWithActionExample - 2020.04.09 at 13h 21m 53s.xml">
<configuration name="TestActionGenerator.testWithActionExample" configurationId="JUnit" />
</history-entry>
<history-entry file="TestActionGenerator - 2020.04.09 at 13h 22m 01s.xml">
<configuration name="TestActionGenerator" configurationId="JUnit" />
</history-entry>
<history-entry file="TestIntroClass_test_manybugs_gmp_14166_14167 - 2020.04.09 at 13h 33m 42s.xml">
<configuration name="TestIntroClass.test_manybugs_gmp_14166_14167" configurationId="JUnit" />
</history-entry>
<history-entry file="TestRealCases - 2020.04.09 at 13h 34m 05s.xml">
<configuration name="TestRealCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases_testIFCase1 - 2020.04.09 at 13h 34m 26s.xml">
<configuration name="TestPredefinedCases.testIFCase1" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.09 at 13h 34m 41s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.09 at 13h 35m 47s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases_testWhileCase1 - 2020.04.09 at 14h 07m 12s.xml">
<configuration name="TestPredefinedCases.testWhileCase1" configurationId="JUnit" /> <configuration name="TestPredefinedCases.testWhileCase1" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="TestPredefinedCases_testWhileCase1 - 2020.04.09 at 14h 08m 58s.xml"> <history-entry file="TestPredefinedCases_testWhileCase1 - 2020.04.10 at 14h 41m 22s.xml">
<configuration name="TestPredefinedCases.testWhileCase1" configurationId="JUnit" /> <configuration name="TestPredefinedCases.testWhileCase1" configurationId="JUnit" />
</history-entry> </history-entry>
<history-entry file="TestPredefinedCases_testWhileCase1 - 2020.04.10 at 14h 42m 14s.xml">
<configuration name="TestPredefinedCases.testWhileCase1" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 43m 29s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases_testIFRetrun - 2020.04.10 at 14h 44m 34s.xml">
<configuration name="TestPredefinedCases.testIFRetrun" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 44m 41s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 45m 26s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 47m 11s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 47m 31s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
<history-entry file="TestPredefinedCases - 2020.04.10 at 14h 47m 52s.xml">
<configuration name="TestPredefinedCases" configurationId="JUnit" />
</history-entry>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1050" extended-state="0" /> <frame x="0" y="0" width="1680" height="1050" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49923897" visible="true" weight="0.30708182" /> <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49315068" visible="true" weight="0.30708182" />
<window_info id="Structure" order="1" sideWeight="0.50076103" side_tool="true" visible="true" weight="0.30708182" /> <window_info id="Structure" order="1" sideWeight="0.5068493" side_tool="true" visible="true" weight="0.30708182" />
<window_info id="Image Layers" order="2" /> <window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" /> <window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" /> <window_info id="UI Designer" order="4" />
@@ -580,12 +632,12 @@
<window_info id="Favorites" order="6" side_tool="true" /> <window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" sideWeight="0.4993895" weight="0.32959184" /> <window_info anchor="bottom" id="Find" order="1" sideWeight="0.4993895" weight="0.32959184" />
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.4920635" weight="0.32959184" /> <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.4920635" visible="true" weight="0.32959184" />
<window_info anchor="bottom" id="Debug" order="3" sideWeight="0.4981685" weight="0.4" /> <window_info anchor="bottom" id="Debug" order="3" sideWeight="0.4981685" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Terminal" order="7" sideWeight="0.71428573" visible="true" weight="0.32959184" /> <window_info anchor="bottom" id="Terminal" order="7" sideWeight="0.71428573" weight="0.32959184" />
<window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.50183153" side_tool="true" weight="0.4" /> <window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.50183153" side_tool="true" weight="0.4" />
<window_info anchor="bottom" id="Version Control" order="9" /> <window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Messages" order="10" sideWeight="0.498779" weight="0.32959184" /> <window_info anchor="bottom" id="Messages" order="10" sideWeight="0.498779" weight="0.32959184" />
@@ -596,7 +648,7 @@
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" /> <window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Maven" order="4" visible="true" weight="0.23260073" /> <window_info anchor="right" id="Maven" order="4" weight="0.23260073" />
<window_info anchor="right" id="Theme Preview" order="5" /> <window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Capture Analysis" order="6" /> <window_info anchor="right" id="Capture Analysis" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" /> <window_info anchor="right" id="Palette&#9;" order="7" />
@@ -695,22 +747,50 @@
<option name="timeStamp" value="32" /> <option name="timeStamp" value="32" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="java-line"> <line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java</url> <url>file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java</url>
<line>38</line> <line>164</line>
<properties /> <properties />
<option name="timeStamp" value="33" /> <option name="timeStamp" value="36" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffParser.java</url>
<line>71</line>
<properties />
<option name="timeStamp" value="37" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java</url>
<line>88</line>
<properties />
<option name="timeStamp" value="38" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java</url>
<line>21</line>
<properties />
<option name="timeStamp" value="39" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="java-line"> <line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java</url> <url>file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java</url>
<line>71</line> <line>109</line>
<properties /> <properties />
<option name="timeStamp" value="34" /> <option name="timeStamp" value="46" />
</line-breakpoint> </line-breakpoint>
</breakpoints> </breakpoints>
</breakpoint-manager> </breakpoint-manager>
</component> </component>
<component name="debuggerHistoryManager"> <component name="debuggerHistoryManager">
<expressions id="evaluateCodeFragment"> <expressions id="evaluateCodeFragment">
<expression>
<expression-string>e.getAttributeByName(START).getValue().split(&quot;:&quot;)</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>e.getAttributeByName(START).getValue()</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression> <expression>
<expression-string>System.getProperty(&quot;gt.srcml.path&quot;, &quot;srcml&quot;);</expression-string> <expression-string>System.getProperty(&quot;gt.srcml.path&quot;, &quot;srcml&quot;);</expression-string>
<language-id>JAVA</language-id> <language-id>JAVA</language-id>
@@ -751,68 +831,9 @@
<language-id>Python</language-id> <language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode> <evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression> </expression>
<expression>
<expression-string>subjects[subjects.Repo.isin(pjList)][['Repo', 'GitRepo']].values.tolist()</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
</expressions> </expressions>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/Launcher.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="202">
<caret line="19" column="13" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="56" column="47" selection-start-line="56" selection-start-column="47" selection-end-line="56" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/python/pairs.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="45">
<caret line="3" column="18" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/python/data/redisImport.sh">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/python/data/callJava.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="5" selection-start-line="6" selection-start-column="5" selection-end-line="6" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/python/dataset.csv">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/python/dataset.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="4" selection-start-line="4" selection-start-column="4" selection-end-line="4" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/python/data/redis/startServer.sh">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/python/data/redis/stopServer.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="1" selection-start-line="2" selection-start-column="1" selection-end-line="2" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/jobs/EnhancedASTDiff.java"> <entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/jobs/EnhancedASTDiff.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="173"> <state relative-caret-position="173">
@@ -1050,47 +1071,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/BaseTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="39" selection-start-line="4" selection-start-column="39" selection-end-line="4" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestIntroClass.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="30" column="21" selection-start-line="30" selection-start-column="21" selection-end-line="30" selection-end-column="21" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="13" column="18" selection-start-line="13" selection-start-column="18" selection-end-line="13" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="34" column="48" selection-start-line="34" selection-start-column="48" selection-end-line="34" selection-end-column="48" />
<folding>
<element signature="e#1585#1586#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="73" selection-start-line="73" selection-end-line="73" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/gen/TreeGenerator.java"> <entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/gen/TreeGenerator.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="329"> <state relative-caret-position="329">
@@ -1105,23 +1085,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffParser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="80" selection-start-line="80" selection-end-line="80" />
<folding>
<element signature="e#2020#2029#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="14" selection-start-line="14" selection-end-line="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.travis_native_dependencies.sh"> <entry file="file://$PROJECT_DIR$/.travis_native_dependencies.sh">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30"> <state relative-caret-position="30">
@@ -1136,6 +1099,129 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.jdt/src/main/java/edu/lu/uni/serval/gumtree/GumTreeComparer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="23" column="24" selection-start-line="23" selection-start-column="24" selection-end-line="23" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/BaseTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="22">
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestInputCases.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="202">
<caret line="1212" column="16" selection-start-line="1212" selection-start-column="16" selection-end-line="1212" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestIntroClass.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3698">
<caret line="163" selection-start-line="163" selection-end-line="163" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestRealCases.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1816">
<caret line="441" selection-start-line="441" selection-end-line="441" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/SrcmlCTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="38" selection-start-line="38" selection-end-line="38" />
<folding>
<element signature="e#1585#1586#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/NodeMap_new.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3267">
<caret line="225" column="24" lean-forward="true" selection-start-line="225" selection-start-column="24" selection-end-line="225" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/tree/Tree.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="113" selection-start-line="113" selection-end-line="113" />
<folding>
<element signature="e#3143#3144#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/core/src/main/java/com/github/gumtreediff/tree/ITree.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="166" column="9" selection-start-line="166" selection-start-column="9" selection-end-line="166" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="169">
<caret line="164" selection-start-line="164" selection-end-line="164" />
<folding>
<element signature="e#16976#16977#0" expanded="true" />
<element signature="e#17044#17045#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/EDiffParser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="290">
<caret line="71" selection-start-line="71" selection-end-line="71" />
<folding>
<element signature="e#2020#2029#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/java/edu/lu/uni/serval/richedit/ediff/HierarchicalRegrouperForC.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="88" selection-start-line="88" selection-end-line="88" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/resource/testFiles/if_else.c">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/resource/testFiles/prev_if_else.c">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/main/resource/testFiles/while_example_1.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="1" column="11" selection-start-line="1" selection-start-column="11" selection-end-line="1" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/richedit/src/test/java/edu/lu/uni/serval/TestPredefinedCases.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="162" column="83" selection-start-line="162" selection-start-column="83" selection-end-line="162" selection-end-column="83" />
</state>
</provider>
</entry>
</component> </component>
<component name="masterDetails"> <component name="masterDetails">
<states> <states>
@@ -48,9 +48,9 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
// private String SRCML_CMD = "/Users/anil.koyuncu/Downloads22/srcML/src2srcml"; // private String SRCML_CMD = "/Users/anil.koyuncu/Downloads22/srcML/src2srcml";
// private static String namespace = "http://www.sdml.info/srcML/position"; // private static String namespace = "http://www.sdml.info/srcML/position";
private static String namespace = "http://www.srcML.org/srcML/position"; private static String namespace = "http://www.srcML.org/srcML/position";
private static final QName LINE = new QName(namespace, "line", "pos"); private static final QName START = new QName(namespace, "start", "pos");
private static final QName COLUMN = new QName(namespace, "column", "pos"); private static final QName END = new QName(namespace, "end", "pos");
private static final QName COMMENT_BLOCK = new QName("", "type", ""); private static final QName COMMENT_BLOCK = new QName("", "type", "");
private LineReader lr; private LineReader lr;
@@ -177,13 +177,13 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
for (ITree t : ctx.getRoot().postOrder()) { for (ITree t : ctx.getRoot().postOrder()) {
if (!t.isLeaf()) { if (!t.isLeaf()) {
//put the keywords as labels //put the keywords as labels
if(t.getType() == 34 || t.getType() ==37 || t.getType() ==38 || t.getType()==39 || t.getType() == 41 || t.getType()==45 || t.getType() ==55 || t.getType()==14){ // if(t.getType() == 34 || t.getType() ==37 || t.getType() ==38 || t.getType()==39 || t.getType() == 41 || t.getType()==45 || t.getType() ==55 || t.getType()==14){
t.setLabel(NodeMap_new.map.get(t.getType())+" " +t.getLabel()); // t.setLabel(NodeMap_new.map.get(t.getType())+" " +t.getLabel());
} // }
if (t.getPos() == ITree.NO_VALUE || t.getLength() == ITree.NO_VALUE || t.getType()==10) { if (t.getPos() == ITree.NO_VALUE || t.getLength() == ITree.NO_VALUE ) {
ITree firstChild = t.getChild(0); ITree firstChild = t.getChild(0);
t.setPos(firstChild.getPos()); // t.setPos(firstChild.getPos());
if (t.getChildren().size() == 1) { if (t.getChildren().size() == 1) {
t.setLabel(t.getLabel() + firstChild.getLabel()); t.setLabel(t.getLabel() + firstChild.getLabel());
@@ -195,7 +195,7 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
if(t.getChild(0).getChildren().size() == 0) { if(t.getChild(0).getChildren().size() == 0) {
t.getChild(0).setPos(t.getChild(1).getPos()); t.getChild(0).setPos(t.getChild(1).getPos());
t.setPos(lastChild.getPos()); // t.setPos(lastChild.getPos());
} }
}else{ }else{
@@ -207,15 +207,16 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
} }
} }
}else if (t.getLabel().equals("")){ }else if (t.getLabel().equals("")){
if(t.getType() == 60 || t.getType() == 56 || t.getType() == 47 || t.getType() == 8 || t.getType() == 43 || NodeMap_new.StatementMap.containsKey(t.getType())){ // if(t.getType() == 60 || t.getType() == 56 || t.getType() == 47 || t.getType() == 8 || t.getType() == 43 || NodeMap_new.StatementMap.containsKey(t.getType())){
if(NodeMap_new.StatementMap.containsKey(t.getType())){
String childrenLabels = t.getChildrenLabels(); String childrenLabels = t.getChildrenLabels();
if(t.getType() == 53){ // if(t.getType() == 53){
t.setLabel("return "+childrenLabels); // t.setLabel("return "+childrenLabels);
}else{ // }else{
if (!childrenLabels.equals("")){ if (!childrenLabels.equals("")){
t.setLabel(childrenLabels); t.setLabel(childrenLabels);
} }
} // }
} }
} }
@@ -223,85 +224,85 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
else{ else{
if (t.getPos() == ITree.NO_VALUE ) { // if (t.getPos() == ITree.NO_VALUE ) {
//
if(t.getType() == 7){ //// if(t.getType() == 7){
ITree parent = t.getParent(); //// ITree parent = t.getParent();
if(parent.getType() == 22){ //// if(parent.getType() == 22){
ITree child = parent.getParent().getChild(0); //// ITree child = parent.getParent().getChild(0);
if (child.getType() == 22){ //// if (child.getType() == 22){
ITree child1 = child.getChild(0); //// ITree child1 = child.getChild(0);
if(child1.getType() == 7){ //// if(child1.getType() == 7){
t.setLabel(child1.getLabel()); //// t.setLabel(child1.getLabel());
t.setPos(child1.getPos()); //// t.setPos(child1.getPos());
} //// }
} //// }
} //// }
} //// }
//
int childPosition = t.getParent().getChildPosition(t); // int childPosition = t.getParent().getChildPosition(t);
if(childPosition != 0){ // if(childPosition != 0){
ITree child = t.getParent().getChild(childPosition - 1); // ITree child = t.getParent().getChild(childPosition - 1);
t.setPos(child.getPos()+child.getLength()+1); // t.setPos(child.getPos()+child.getLength()+1);
//
}else{ // }else{
if(t.getParent().getChildren().size() > 1){ // if(t.getParent().getChildren().size() > 1){
ITree child = t.getParent().getChild(childPosition + 1); // ITree child = t.getParent().getChild(childPosition + 1);
t.setPos(child.getPos()-1); // t.setPos(child.getPos()-1);
}else{ // }else{
//
/* // /*
(34 "if" "" ((183 -1)) ( // (34 "if" "" ((183 -1)) (
(8 "condition" "i != j" ((186 6)) ( // (8 "condition" "i != j" ((186 6)) (
(20 "expr" "i != j" ((187 6)) ( // (20 "expr" "i != j" ((187 6)) (
(6 "name" "i" ((187 1)) () // (6 "name" "i" ((187 1)) ()
(4 "operator" "!=" ((188 2)) () // (4 "operator" "!=" ((188 2)) ()
(6 "name" "j" ((190 1)) ())) // (6 "name" "j" ((190 1)) ()))
(36 "then" "" () ( // (36 "then" "" () (
(9 "block" "" () ())) // (9 "block" "" () ()))
* */ // * */
if (t.getPos() == ITree.NO_VALUE ){ //// if (t.getPos() == ITree.NO_VALUE ){
////
ITree firstParent = t.getParent(); //// ITree firstParent = t.getParent();
if(firstParent.getType() == 36){//then //// if(firstParent.getType() == 36){//then
ITree secondParent = firstParent.getParent(); //// ITree secondParent = firstParent.getParent();
if(secondParent.getType() == 34){// //// if(secondParent.getType() == 34){//
if(secondParent.getChildren().size()>1){ //// if(secondParent.getChildren().size()>1){
int childPosition1 = secondParent.getChildPosition(firstParent); //// int childPosition1 = secondParent.getChildPosition(firstParent);
if (childPosition1 !=0){ //// if (childPosition1 !=0){
ITree child = secondParent.getChild(childPosition1 - 1); //// ITree child = secondParent.getChild(childPosition1 - 1);
firstParent.setPos(child.getPos()+child.getLength()); //// firstParent.setPos(child.getPos()+child.getLength());
// firstParent.setLength(0); ////// firstParent.setLength(0);
firstParent.getChild(0).setPos(child.getPos()+child.getLength()); //// firstParent.getChild(0).setPos(child.getPos()+child.getLength());
// firstParent.getChild(0).setLength(0); ////// firstParent.getChild(0).setLength(0);
} //// }
} //// }
} //// }
}else if(firstParent.getType() == 55){//sizeof //// }else if(firstParent.getType() == 55){//sizeof
ITree secondParent = firstParent.getParent(); //// ITree secondParent = firstParent.getParent();
if(secondParent.getType() == 20){// //// if(secondParent.getType() == 20){//
if(secondParent.getChildren().size()>1){ //// if(secondParent.getChildren().size()>1){
int childPosition1 = secondParent.getChildPosition(firstParent); //// int childPosition1 = secondParent.getChildPosition(firstParent);
if (childPosition1 ==0){ //// if (childPosition1 ==0){
ITree child = secondParent.getChild(childPosition1 + 1); //// ITree child = secondParent.getChild(childPosition1 + 1);
firstParent.setPos(child.getPos()-child.getLength()); //// firstParent.setPos(child.getPos()-child.getLength());
// firstParent.setLength(0); ////// firstParent.setLength(0);
firstParent.getChild(0).setPos(child.getPos()-child.getLength()); //// firstParent.getChild(0).setPos(child.getPos()-child.getLength());
// firstParent.getChild(0).setLength(0); ////// firstParent.getChild(0).setLength(0);
} //// }
} //// }
} //// }
} //// }
ITree child = t.getParent().getChild(childPosition); //// ITree child = t.getParent().getChild(childPosition);
if(child.getType() ==61){ //condition //// if(child.getType() ==61){ //condition
t.setPos(child.getPos()-1); //// t.setPos(child.getPos()-1);
} //// }
////
} //// }
} // }
//
} // }
} // }
} }
t.setLength(t.getLabel().length()); t.setLength(t.getLabel().length());
@@ -310,9 +311,12 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
} }
private void setPos(ITree t, StartElement e) { private void setPos(ITree t, StartElement e) {
if (e.getAttributeByName(LINE) != null) { if (e.getAttributeByName(START) != null) {
int line = Integer.parseInt(e.getAttributeByName(LINE).getValue()); String[] start = e.getAttributeByName(START).getValue().split(":");
int column = Integer.parseInt(e.getAttributeByName(COLUMN).getValue());
int line = Integer.parseInt(start[0]);
int column = Integer.parseInt(start[1]);
// int column = Integer.parseInt(e.getAttributeByName(END).getValue());
t.setPos(lr.positionFor(line, column)); t.setPos(lr.positionFor(line, column));
} }
} }
@@ -320,11 +324,11 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
private void setLength(ITree t, StartElement e) { private void setLength(ITree t, StartElement e) {
if (t.getPos() == -1) if (t.getPos() == -1)
return; return;
if (e.getAttributeByName(LINE) != null) { // if (e.getAttributeByName(LINE) != null) {
int line = Integer.parseInt(e.getAttributeByName(LINE).getValue()); // int line = Integer.parseInt(e.getAttributeByName(LINE).getValue());
int column = Integer.parseInt(e.getAttributeByName(COLUMN).getValue()); // int column = Integer.parseInt(e.getAttributeByName(COLUMN).getValue());
t.setLength(lr.positionFor(line, column) - t.getPos() + 1); // t.setLength(lr.positionFor(line, column) - t.getPos() + 1);
} // }
} }
public String getXml(Reader r) throws IOException { public String getXml(Reader r) throws IOException {
@@ -17,184 +17,369 @@ public class NodeMap_new {
static { static {
map = new HashMap<Integer, String>(); map = new HashMap<Integer, String>();
map.put(1 , "unit"); map.put(0,"unit");
map.put(2 , "comment"); map.put( 1 , "comment:block");
map.put(3 , "literal"); map.put( 2 , "comment:line");
map.put(4 , "operator"); map.put( 6 , "literal:string");
map.put(5 , "modifier"); map.put( 7 , "literal:char");
map.put(6 , "name"); map.put( 8 , "literal:number");
map.put(7 , "type"); map.put( 9 , "literal:boolean");
map.put(8 , "condition"); map.put( 10 , "literal:null");
map.put(9 , "block"); map.put( 11 , "literal:complex");
map.put(10 , "index"); map.put( 12 , "operator");
map.put(11 , "decltype"); map.put( 13 , "modifier");
map.put(12 , "typename"); map.put( 14 , "name");
map.put(13 , "atomic"); map.put( 16 , "type");
map.put(14 , "assert"); map.put( 17 , "type:prev");
map.put(15 , "generic_selection"); map.put( 19 , "block");
map.put(16 , "selector"); map.put( 20 , "block_content");
map.put(17 , "association_list"); map.put( 21 , "block:pseudo");
map.put(18 , "association"); map.put( 22 , "index");
map.put(19 , "expr_stmt"); map.put( 23 , "decltype");
map.put(20 , "expr"); map.put( 24 , "typename");
map.put(21 , "decl_stmt"); map.put( 25 , "atomic");
map.put(22 , "decl"); map.put( 26 , "assert:static");
map.put(23 , "init"); map.put( 27 , "generic_selection");
map.put(24 , "range"); map.put( 28 , "selector");
map.put(25 , "break"); map.put( 29 , "association_list");
map.put(26 , "continue"); map.put( 30 , "association");
map.put(27 , "goto"); map.put( 31 , "expr_stmt");
map.put(28 , "label"); map.put( 32 , "expr");
map.put(29 , "typedef"); map.put( 33 , "decl_stmt");
map.put(30 , "asm"); map.put( 34 , "decl");
map.put(31 , "macro"); map.put( 35 , "init");
map.put(32 , "enum"); map.put( 36 , "range");
map.put(33 , "enum_decl"); map.put( 37 , "break");
map.put(34 , "if"); map.put( 38 , "continue");
map.put(35 , "ternary"); map.put( 39 , "goto");
map.put(36 , "then"); map.put( 40 , "label");
map.put(37 , "else"); map.put( 41 , "typedef");
map.put(38 , "elseif"); map.put( 42 , "asm");
map.put(39 , "while"); map.put( 43 , "macro");
map.put(40 , "typeof"); map.put( 44 , "enum");
map.put(41 , "do"); map.put( 45 , "enum_decl");
map.put(42 , "switch"); map.put( 46 , "if_stmt");
map.put(43 , "case"); map.put( 47 , "if");
map.put(44 , "default"); map.put( 48 , "ternary");
map.put(45 , "for"); map.put( 49 , "then");
map.put(46 , "foreach"); map.put( 50 , "else");
map.put(47 , "control"); map.put( 51 , "if:elseif");
map.put(48 , "incr"); map.put( 52 , "while");
map.put(49 , "function"); map.put( 53 , "typeof");
map.put(50 , "function_decl"); map.put( 54 , "do");
map.put(51 , "lambda"); map.put( 55 , "switch");
map.put(52 , "specifier"); map.put( 56 , "case");
map.put(53 , "return"); map.put( 57 , "default");
map.put(54 , "call"); map.put( 58 , "for");
map.put(55 , "sizeof"); map.put( 59 , "foreach");
map.put(56 , "parameter_list"); map.put( 60 , "control");
map.put(57 , "parameter"); map.put( 62 , "condition");
map.put(58 , "krparameter_list"); map.put( 63 , "incr");
map.put(59 , "krparameter"); map.put( 65 , "function");
map.put(60 , "argument_list"); map.put( 66 , "function_decl");
map.put(61 , "argument"); map.put( 67 , "lambda");
map.put(62 , "capture"); map.put( 68 , "specifier");
map.put(63 , "struct"); map.put( 69 , "return");
map.put(64 , "struct_decl"); map.put( 70 , "call");
map.put(65 , "union"); map.put( 71 , "sizeof");
map.put(66 , "union_decl"); map.put( 72 , "parameter_list");
map.put(67 , "class"); map.put( 73 , "parameter");
map.put(68 , "class_decl"); map.put( 74 , "krparameter_list");
map.put(69 , "public"); map.put( 75 , "krparameter");
map.put(70 , "private"); map.put( 76 , "argument_list");
map.put(71 , "protected"); map.put( 77 , "argument");
map.put(72 , "signals"); map.put( 78 , "capture");
map.put(73 , "forever"); map.put( 79 , "parameter_list:pseudo");
map.put(74 , "emit"); map.put( 80 , "parameter_list:indexer");
map.put(75 , "member_init_list"); map.put( 81 , "struct");
map.put(76 , "constructor"); map.put( 82 , "struct_decl");
map.put(77 , "constructor_decl"); map.put( 83 , "union");
map.put(78 , "destructor"); map.put( 84 , "union_decl");
map.put(79 , "destructor_decl"); map.put( 85 , "class");
map.put(80 , "super"); map.put( 86 , "class_decl");
map.put(81 , "friend"); map.put( 87 , "public");
map.put(82 , "extern"); map.put( 88 , "public:default");
map.put(83 , "namespace"); map.put( 89 , "private");
map.put(84 , "using"); map.put( 90 , "private:default");
map.put(85 , "try"); map.put( 91 , "protected");
map.put(86 , "catch"); map.put( 92 , "protected:default");
map.put(87 , "finally"); map.put( 93 , "signals");
map.put(88 , "throw"); map.put( 94 , "forever");
map.put(89 , "throws"); map.put( 95 , "emit");
map.put(90 , "noexcept"); map.put( 96 , "member_init_list");
map.put(91 , "template"); map.put( 98 , "constructor");
map.put(92 , "directive"); map.put( 99 , "constructor_decl");
map.put(93 , "file"); map.put( 100 , "destructor");
map.put(94 , "number"); map.put( 101 , "destructor_decl");
map.put(95 , "include"); map.put( 102 , "super_list");
map.put(96 , "define"); map.put( 103 , "super");
map.put(97 , "undef"); map.put( 104 , "friend");
map.put(98 , "line"); map.put( 106 , "extern");
map.put(99 , "ifdef"); map.put( 107 , "namespace");
map.put(100 , "ifndef"); map.put( 108 , "using");
map.put(101 , "elif"); map.put( 109 , "try");
map.put(102 , "endif"); map.put( 110 , "catch");
map.put(103 , "pragma"); map.put( 111 , "finally");
map.put(104 , "error"); map.put( 112 , "throw");
map.put(105 , "warning"); map.put( 114 , "throws");
map.put(106 , "value"); map.put( 115 , "noexcept");
map.put(107 , "empty"); map.put( 116 , "template");
map.put(108 , "region"); map.put( 118 , "argument_list:generic");
map.put(109 , "endregion"); map.put( 122 , "parameter_list:generic");
map.put(110 , "import"); map.put( 123 , "directive");
map.put(111 , "marker"); map.put( 124 , "file");
map.put(112 , "parse"); map.put( 125 , "number");
map.put(113 , "mode"); map.put( 126 , "literal");
map.put(114 , "lock"); map.put( 127 , "include");
map.put(115 , "fixed"); map.put( 128 , "define");
map.put(116 , "checked"); map.put( 129 , "undef");
map.put(117 , "unchecked"); map.put( 130 , "line");
map.put(118 , "unsafe"); map.put( 131 , "cpp:if");
map.put(119 , "using_stmt"); map.put( 132 , "ifdef");
map.put(120 , "delegate"); map.put( 133 , "ifndef");
map.put(121 , "event"); map.put( 134 , "cpp:else");
map.put(122 , "constraint"); map.put( 135 , "elif");
map.put(123 , "extends"); map.put( 136 , "endif");
map.put(124 , "implements"); map.put( 137 , "cpp:then");
map.put(125 , "package"); map.put( 138 , "pragma");
map.put(126 , "synchronized"); map.put( 139 , "error");
map.put(127 , "interface"); map.put( 140 , "warning");
map.put(128 , "interface_decl"); map.put( 142 , "value");
map.put(129 , "annotation_defn"); map.put( 143 , "empty");
map.put(130 , "static"); map.put( 144 , "marker");
map.put(131 , "attribute"); map.put( 145 , "region");
map.put(132 , "target"); map.put( 146 , "endregion");
map.put(133 , "linq"); map.put( 147 , "import");
map.put(134 , "from"); map.put( 149 , "parse");
map.put(135 , "select"); map.put( 150 , "mode");
map.put(136 , "where"); map.put( 151 , "lock");
map.put(137 , "let"); map.put( 152 , "fixed");
map.put(138 , "orderby"); map.put( 153 , "checked");
map.put(139 , "group"); map.put( 154 , "unchecked");
map.put(140 , "join"); map.put( 155 , "unsafe");
map.put(141 , "in"); map.put( 156 , "using_stmt");
map.put(142 , "on"); map.put( 157 , "delegate");
map.put(143 , "equals"); map.put( 158 , "event");
map.put(144 , "by"); map.put( 159 , "constraint");
map.put(145 , "into"); map.put( 160 , "extends");
map.put(146 , "escape"); map.put( 161 , "implements");
map.put(147 , "annotation"); map.put( 163 , "package");
map.put(148 , "alignas"); map.put( 164 , "assert");
map.put(149 , "alignof"); map.put( 165 , "synchronized");
map.put(150 , "typeid"); map.put( 166 , "interface");
map.put(151 , "ref_qualifier"); map.put( 167 , "interface_decl");
map.put(152 , "receiver"); map.put( 168 , "annotation_defn");
map.put(153 , "message"); map.put( 169 , "static");
map.put(154 , "protocol_list"); map.put( 170 , "attribute");
map.put(155 , "category"); map.put( 171 , "target");
map.put(156 , "protocol"); map.put( 172 , "linq");
map.put(157 , "required"); map.put( 173 , "from");
map.put(158 , "optional"); map.put( 174 , "select");
map.put(159 , "property"); map.put( 175 , "where");
map.put(160 , "attribute_list"); map.put( 176 , "let");
map.put(161 , "synthesize"); map.put( 177 , "orderby");
map.put(162 , "dynamic"); map.put( 178 , "group");
map.put(163 , "encode"); map.put( 179 , "join");
map.put(164 , "autoreleasepool"); map.put( 180 , "in");
map.put(165 , "compatibility_alias"); map.put( 181 , "on");
map.put(166 , "protocol_decl"); map.put( 182 , "equals");
map.put(167 , "cast"); map.put( 183 , "by");
map.put(168 , "position"); map.put( 184 , "into");
map.put(169 , "clause"); map.put( 185 , "escape");
map.put(170 , "empty_stmt"); map.put( 186 , "annotation");
map.put(171 , "cpp:if"); map.put( 187 , "alignas");
map.put(172 , "cpp:else"); map.put( 188 , "alignof");
map.put(173 , "literal:string"); map.put( 189 , "typeid");
map.put(174 , "literal:number"); map.put( 190 , "sizeof:pack");
map.put(175 , "literal:char"); map.put( 191 , "enum:class");
map.put(176 , "literal:boolean"); map.put( 192 , "enum_decl:class");
map.put(177 , "literal:complex"); map.put( 193 , "function:operator");
map.put(178 , "literal:null"); map.put( 194 , "function_decl:operator");
map.put( 195 , "ref_qualifier");
map.put( 196 , "receiver");
map.put( 197 , "message");
map.put( 199 , "protocol_list");
map.put( 200 , "category");
//
// map.put(1 , "unit");
// map.put(2 , "comment");
// map.put(3 , "literal");
// map.put(4 , "operator");
// map.put(5 , "modifier");
// map.put(6 , "name");
// map.put(7 , "type");
// map.put(8 , "condition");
// map.put(9 , "block");
// map.put(10 , "index");
// map.put(11 , "decltype");
// map.put(12 , "typename");
// map.put(13 , "atomic");
// map.put(14 , "assert");
// map.put(15 , "generic_selection");
// map.put(16 , "selector");
// map.put(17 , "association_list");
// map.put(18 , "association");
// map.put(19 , "expr_stmt");
// map.put(20 , "expr");
// map.put(21 , "decl_stmt");
// map.put(22 , "decl");
// map.put(23 , "init");
// map.put(24 , "range");
// map.put(25 , "break");
// map.put(26 , "continue");
// map.put(27 , "goto");
// map.put(28 , "label");
// map.put(29 , "typedef");
// map.put(30 , "asm");
// map.put(31 , "macro");
// map.put(32 , "enum");
// map.put(33 , "enum_decl");
// map.put(34 , "if");
// map.put(35 , "ternary");
// map.put(36 , "then");
// map.put(37 , "else");
// map.put(38 , "elseif");
// map.put(39 , "while");
// map.put(40 , "typeof");
// map.put(41 , "do");
// map.put(42 , "switch");
// map.put(43 , "case");
// map.put(44 , "default");
// map.put(45 , "for");
// map.put(46 , "foreach");
// map.put(47 , "control");
// map.put(48 , "incr");
// map.put(49 , "function");
// map.put(50 , "function_decl");
// map.put(51 , "lambda");
// map.put(52 , "specifier");
// map.put(53 , "return");
// map.put(54 , "call");
// map.put(55 , "sizeof");
// map.put(56 , "parameter_list");
// map.put(57 , "parameter");
// map.put(58 , "krparameter_list");
// map.put(59 , "krparameter");
// map.put(60 , "argument_list");
// map.put(61 , "argument");
// map.put(62 , "capture");
// map.put(63 , "struct");
// map.put(64 , "struct_decl");
// map.put(65 , "union");
// map.put(66 , "union_decl");
// map.put(67 , "class");
// map.put(68 , "class_decl");
// map.put(69 , "public");
// map.put(70 , "private");
// map.put(71 , "protected");
// map.put(72 , "signals");
// map.put(73 , "forever");
// map.put(74 , "emit");
// map.put(75 , "member_init_list");
// map.put(76 , "constructor");
// map.put(77 , "constructor_decl");
// map.put(78 , "destructor");
// map.put(79 , "destructor_decl");
// map.put(80 , "super");
// map.put(81 , "friend");
// map.put(82 , "extern");
// map.put(83 , "namespace");
// map.put(84 , "using");
// map.put(85 , "try");
// map.put(86 , "catch");
// map.put(87 , "finally");
// map.put(88 , "throw");
// map.put(89 , "throws");
// map.put(90 , "noexcept");
// map.put(91 , "template");
// map.put(92 , "directive");
// map.put(93 , "file");
// map.put(94 , "number");
// map.put(95 , "include");
// map.put(96 , "define");
// map.put(97 , "undef");
// map.put(98 , "line");
// map.put(99 , "ifdef");
// map.put(100 , "ifndef");
// map.put(101 , "elif");
// map.put(102 , "endif");
// map.put(103 , "pragma");
// map.put(104 , "error");
// map.put(105 , "warning");
// map.put(106 , "value");
// map.put(107 , "empty");
// map.put(108 , "region");
// map.put(109 , "endregion");
// map.put(110 , "import");
// map.put(111 , "marker");
// map.put(112 , "parse");
// map.put(113 , "mode");
// map.put(114 , "lock");
// map.put(115 , "fixed");
// map.put(116 , "checked");
// map.put(117 , "unchecked");
// map.put(118 , "unsafe");
// map.put(119 , "using_stmt");
// map.put(120 , "delegate");
// map.put(121 , "event");
// map.put(122 , "constraint");
// map.put(123 , "extends");
// map.put(124 , "implements");
// map.put(125 , "package");
// map.put(126 , "synchronized");
// map.put(127 , "interface");
// map.put(128 , "interface_decl");
// map.put(129 , "annotation_defn");
// map.put(130 , "static");
// map.put(131 , "attribute");
// map.put(132 , "target");
// map.put(133 , "linq");
// map.put(134 , "from");
// map.put(135 , "select");
// map.put(136 , "where");
// map.put(137 , "let");
// map.put(138 , "orderby");
// map.put(139 , "group");
// map.put(140 , "join");
// map.put(141 , "in");
// map.put(142 , "on");
// map.put(143 , "equals");
// map.put(144 , "by");
// map.put(145 , "into");
// map.put(146 , "escape");
// map.put(147 , "annotation");
// map.put(148 , "alignas");
// map.put(149 , "alignof");
// map.put(150 , "typeid");
// map.put(151 , "ref_qualifier");
// map.put(152 , "receiver");
// map.put(153 , "message");
// map.put(154 , "protocol_list");
// map.put(155 , "category");
// map.put(156 , "protocol");
// map.put(157 , "required");
// map.put(158 , "optional");
// map.put(159 , "property");
// map.put(160 , "attribute_list");
// map.put(161 , "synthesize");
// map.put(162 , "dynamic");
// map.put(163 , "encode");
// map.put(164 , "autoreleasepool");
// map.put(165 , "compatibility_alias");
// map.put(166 , "protocol_decl");
// map.put(167 , "cast");
// map.put(168 , "position");
// map.put(169 , "clause");
// map.put(170 , "empty_stmt");
// map.put(171 , "cpp:if");
// map.put(172 , "cpp:else");
// map.put(173 , "literal:string");
// map.put(174 , "literal:number");
// map.put(175 , "literal:char");
// map.put(176 , "literal:boolean");
// map.put(177 , "literal:complex");
// map.put(178 , "literal:null");
@@ -219,41 +404,68 @@ public class NodeMap_new {
} }
static { static {
StatementMap = new HashMap<Integer, String>(); StatementMap = new HashMap<Integer, String>();
StatementMap.put(34 , "if");
// StatementMap.put(8 , "condition");
StatementMap.put(36 , "then");
StatementMap.put(37 , "else");
StatementMap.put(38 , "elseif");
StatementMap.put(39 , "while");
StatementMap.put(45 , "for");
StatementMap.put(41 , "do");
// StatementMap.put(25 , "break");
// StatementMap.put(26 , "continue");
StatementMap.put(53 , "return");
StatementMap.put(42 , "switch");
// StatementMap.put(43 , "case");
// StatementMap.put(44 , "default");
StatementMap.put(9 , "block");
StatementMap.put(27 , "goto");
StatementMap.put(28 , "label");
StatementMap.put(21 , "decl_stmt"); StatementMap.put( 46 , "if_stmt");
// StatementMap.put(22 , "decl");
StatementMap.put(50 , "function_decl"); StatementMap.put( 52 , "while");
StatementMap.put(49 , "function"); StatementMap.put( 26 , "assert:static");
// StatementMap.put(5 , "modifier"); StatementMap.put( 164 , "assert");
StatementMap.put(29 , "typedef"); StatementMap.put( 31 , "expr_stmt");
// StatementMap.put(23 , "init"); StatementMap.put( 33 , "decl_stmt");
// StatementMap.put(24 , "range"); StatementMap.put( 54 , "do");
StatementMap.put(64 , "struct_decl"); StatementMap.put( 58 , "for");
StatementMap.put(63 , "struct"); StatementMap.put( 59 , "foreach");
StatementMap.put(65 , "union"); StatementMap.put( 69 , "return");
StatementMap.put(66 , "union_decl"); StatementMap.put( 37 , "break");
StatementMap.put(32 , "enum"); StatementMap.put( 38 , "continue");
StatementMap.put(33 , "enum_decl"); StatementMap.put( 39 , "goto");
StatementMap.put(19 , "expr_stmt"); StatementMap.put( 40 , "label");
StatementMap.put(82 , "extern");
// StatementMap.put(31 , "macro"); StatementMap.put( 81 , "struct");
StatementMap.put( 82 , "struct_decl");
StatementMap.put( 83 , "union");
StatementMap.put( 84 , "union_decl");
StatementMap.put( 85 , "class");
StatementMap.put( 86 , "class_decl");
StatementMap.put( 44 , "enum");
StatementMap.put( 45 , "enum_decl");
StatementMap.put( 65 , "function");
StatementMap.put( 66 , "function_decl");
// StatementMap.put(34 , "if");
//// StatementMap.put(8 , "condition");
// StatementMap.put(36 , "then");
// StatementMap.put(37 , "else");
// StatementMap.put(38 , "elseif");
// StatementMap.put(39 , "while");
// StatementMap.put(45 , "for");
// StatementMap.put(41 , "do");
//// StatementMap.put(25 , "break");
//// StatementMap.put(26 , "continue");
// StatementMap.put(53 , "return");
// StatementMap.put(42 , "switch");
//// StatementMap.put(43 , "case");
//// StatementMap.put(44 , "default");
// StatementMap.put(9 , "block");
// StatementMap.put(27 , "goto");
// StatementMap.put(28 , "label");
//
// StatementMap.put(21 , "decl_stmt");
//// StatementMap.put(22 , "decl");
// StatementMap.put(50 , "function_decl");
// StatementMap.put(49 , "function");
//// StatementMap.put(5 , "modifier");
// StatementMap.put(29 , "typedef");
//// StatementMap.put(23 , "init");
//// StatementMap.put(24 , "range");
// StatementMap.put(64 , "struct_decl");
// StatementMap.put(63 , "struct");
// StatementMap.put(65 , "union");
// StatementMap.put(66 , "union_decl");
// StatementMap.put(32 , "enum");
// StatementMap.put(33 , "enum_decl");
// StatementMap.put(19 , "expr_stmt");
// StatementMap.put(82 , "extern");
//// StatementMap.put(31 , "macro");
} }
// static { // static {
// StatementMap = new HashMap<Integer, String>(); // StatementMap = new HashMap<Integer, String>();
@@ -152,7 +152,7 @@ public class HierarchicalRegrouperForC {
Predicate<HierarchicalActionSet> predicate = x->NodeMap_new.getKeysByValue(NodeMap_new.StatementMap,x.getAstNodeType()).size() == 1 ; Predicate<HierarchicalActionSet> predicate = x->NodeMap_new.getKeysByValue(NodeMap_new.StatementMap,x.getAstNodeType()).size() == 1 ;
Predicate<HierarchicalActionSet> predicate1 = x->!x.getAstNodeType().equals("block"); Predicate<HierarchicalActionSet> predicate1 = x->!x.getAstNodeType().equals("block");
Predicate<HierarchicalActionSet> predicate2 = x->!x.getAstNodeType().equals("then"); Predicate<HierarchicalActionSet> predicate2 = x->!x.getAstNodeType().equals("block_content");
// Predicate<HierarchicalActionSet> predicate3 = p->p.getAction().getName().equals(subActions.get(0).getAction().getName())); // Predicate<HierarchicalActionSet> predicate3 = p->p.getAction().getName().equals(subActions.get(0).getAction().getName()));
private HierarchicalActionSet removeBlocks(HierarchicalActionSet actionSet){ private HierarchicalActionSet removeBlocks(HierarchicalActionSet actionSet){
List<HierarchicalActionSet> subActions = actionSet.getSubActions(); List<HierarchicalActionSet> subActions = actionSet.getSubActions();
@@ -34,10 +34,11 @@ public class TestPredefinedCases {
List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false); List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false);
hierarchicalActionSets.size(); hierarchicalActionSets.size();
Assert.assertEquals(hierarchicalActionSets.size(),1); Assert.assertEquals(hierarchicalActionSets.size(),1);
Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD if@@if x >= 5 y += 4 @TO@ if x > 5 y += 4 @AT@ 2 @LENGTH@ 16\n" + Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD if_stmt@@x >= 5 y += 4 @TO@ x > 5 y += 4 @AT@ 0 @LENGTH@ 13\n" +
"---UPD condition@@x >= 5 @TO@ x > 5 @AT@ 2 @LENGTH@ 6\n" + "---UPD if@@x >= 5 y += 4 @TO@ x > 5 y += 4 @AT@ 0 @LENGTH@ 13\n" +
"------UPD expr@@x >= 5 @TO@ x > 5 @AT@ 3 @LENGTH@ 6\n" + "------UPD condition@@x >= 5 @TO@ x > 5 @AT@ 2 @LENGTH@ 6\n" +
"---------UPD operator@@>= @TO@ > @AT@ 5 @LENGTH@ 2\n"); "---------UPD expr@@x >= 5 @TO@ x > 5 @AT@ 3 @LENGTH@ 6\n" +
"------------UPD operator@@>= @TO@ > @AT@ 5 @LENGTH@ 2\n");
} }
@Test @Test
@@ -58,18 +59,19 @@ public class TestPredefinedCases {
List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false); List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false);
hierarchicalActionSets.size(); hierarchicalActionSets.size();
Assert.assertEquals(hierarchicalActionSets.size(),1); Assert.assertEquals(hierarchicalActionSets.size(),1);
Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD if@@if line ][i == ' ' continue; @TO@ if line ][i == ' ' space ++ @AT@ 33 @LENGTH@ 28\n" + Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD if_stmt@@line ][i == ' ' continue; @TO@ line ][i == ' ' space ++ @AT@ 30 @LENGTH@ 25\n" +
"---UPD then@@continue; @TO@ space ++ @AT@ 54 @LENGTH@ 9\n" + "---UPD if@@line ][i == ' ' continue; @TO@ line ][i == ' ' space ++ @AT@ 30 @LENGTH@ 25\n" +
"------UPD block@@continue; @TO@ space ++ @AT@ 54 @LENGTH@ 9\n" + "------UPD block@@continue; @TO@ space ++ @AT@ 54 @LENGTH@ 9\n" +
"---------INS expr_stmt@@space ++ @TO@ block@@continue; @AT@ 62 @LENGTH@ 8\n" + "---------UPD block_content@@continue; @TO@ space ++ @AT@ 62 @LENGTH@ 9\n" +
"------------INS expr@@space ++ @TO@ expr_stmt@@space ++ @AT@ 62 @LENGTH@ 8\n" + "------------INS expr_stmt@@space ++ @TO@ block_content@@continue; @AT@ 62 @LENGTH@ 8\n" +
"---------------INS name@@space @TO@ expr@@space ++ @AT@ 62 @LENGTH@ 5\n" + "---------------INS expr@@space ++ @TO@ expr_stmt@@space ++ @AT@ 62 @LENGTH@ 8\n" +
"---------------INS operator@@++ @TO@ expr@@space ++ @AT@ 67 @LENGTH@ 2\n" + "------------------INS name@@space @TO@ expr@@space ++ @AT@ 62 @LENGTH@ 5\n" +
"---------DEL continue@@continue; @AT@ 62 @LENGTH@ 9\n"); "------------------INS operator@@++ @TO@ expr@@space ++ @AT@ 67 @LENGTH@ 2\n" +
"------------DEL continue@@continue; @AT@ 62 @LENGTH@ 9\n");
} }
//TODO //TODO
@Ignore // @Ignore
@Test @Test
public void testWhileCase1() throws IOException { public void testWhileCase1() throws IOException {
Properties appProps = new Properties(); Properties appProps = new Properties();
@@ -86,16 +88,17 @@ public class TestPredefinedCases {
hierarchicalActionSets.size(); hierarchicalActionSets.size();
Assert.assertEquals(hierarchicalActionSets.size(), 1); Assert.assertEquals(hierarchicalActionSets.size(), 1);
Assert.assertEquals(hierarchicalActionSets.get(0).toString(), "UPD do@@y = f x x -- print x x > 0 @TO@ y = f x x -- x > 0 @AT@ 0 @LENGTH@ 62\n" + Assert.assertEquals(hierarchicalActionSets.get(0).toString(), "UPD do@@y = f x x -- print x x > 0 @TO@ y = f x x -- x > 0 @AT@ 0 @LENGTH@ 26\n" +
"---UPD block@@y = f x x -- print x @TO@ y = f x x -- @AT@ 3 @LENGTH@ 42\n" + "---UPD block@@y = f x x -- print x @TO@ y = f x x -- @AT@ 3 @LENGTH@ 20\n" +
"------DEL expr_stmt@@print x @AT@ 33 @LENGTH@ 7\n" + "------UPD block_content@@y = f x x -- print x @TO@ y = f x x -- @AT@ 8 @LENGTH@ 20\n" +
"---------DEL expr@@print x @AT@ 33 @LENGTH@ 7\n" + "---------DEL expr_stmt@@print x @AT@ 33 @LENGTH@ 7\n" +
"------------DEL call@@print x @AT@ 33 @LENGTH@ 7\n" + "------------DEL expr@@print x @AT@ 33 @LENGTH@ 7\n" +
"---------------DEL name@@print @AT@ 33 @LENGTH@ 5\n" + "---------------DEL call@@print x @AT@ 33 @LENGTH@ 7\n" +
"---------------DEL argument_list@@x @AT@ 38 @LENGTH@ 4\n" + "------------------DEL name@@print @AT@ 33 @LENGTH@ 5\n" +
"------------------DEL argument@@x @AT@ 39 @LENGTH@ 1\n" + "------------------DEL argument_list@@x @AT@ 38 @LENGTH@ 1\n" +
"---------------------DEL expr@@x @AT@ 39 @LENGTH@ 1\n" + "---------------------DEL argument@@x @AT@ 39 @LENGTH@ 1\n" +
"------------------------DEL name@@x @AT@ 39 @LENGTH@ 1\n"); "------------------------DEL expr@@x @AT@ 39 @LENGTH@ 1\n" +
"---------------------------DEL name@@x @AT@ 39 @LENGTH@ 1\n");
} }
@@ -113,8 +116,29 @@ public class TestPredefinedCases {
EDiffHunkParser parser = new EDiffHunkParser(); EDiffHunkParser parser = new EDiffHunkParser();
List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false); List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false);
hierarchicalActionSets.size(); Assert.assertEquals(hierarchicalActionSets.size(),1);
// Assert.assertEquals(hierarchicalActionSets.size(),1); Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD block_content@@field = ATOM TST PTR_ERROR_OR_ZERO fields -> mode @TO@ field = ATOM TST IS_ERR fields -> mode PTR_ERROR fields -> mode 0 @AT@ 22 @LENGTH@ 49\n" +
"---INS if_stmt@@IS_ERR fields -> mode PTR_ERROR fields -> mode @TO@ block_content@@field = ATOM TST PTR_ERROR_OR_ZERO fields -> mode @AT@ 45 @LENGTH@ 46\n" +
"------INS if@@IS_ERR fields -> mode PTR_ERROR fields -> mode @TO@ if_stmt@@IS_ERR fields -> mode PTR_ERROR fields -> mode @AT@ 45 @LENGTH@ 46\n" +
"---------INS condition@@IS_ERR fields -> mode @TO@ if@@IS_ERR fields -> mode PTR_ERROR fields -> mode @AT@ 47 @LENGTH@ 21\n" +
"------------MOV expr@@PTR_ERROR_OR_ZERO fields -> mode @TO@ condition@@IS_ERR fields -> mode @AT@ 52 @LENGTH@ 32\n" +
"---------INS block@@PTR_ERROR fields -> mode @TO@ if@@IS_ERR fields -> mode PTR_ERROR fields -> mode @AT@ 78 @LENGTH@ 24\n" +
"------------INS block_content@@PTR_ERROR fields -> mode @TO@ block@@PTR_ERROR fields -> mode @AT@ 78 @LENGTH@ 24\n" +
"---------------MOV return@@PTR_ERROR_OR_ZERO fields -> mode @TO@ block_content@@PTR_ERROR fields -> mode @AT@ 45 @LENGTH@ 32\n" +
"---UPD return@@PTR_ERROR_OR_ZERO fields -> mode @TO@ PTR_ERROR fields -> mode @AT@ 45 @LENGTH@ 32\n" +
"------INS expr@@PTR_ERROR fields -> mode @TO@ return@@PTR_ERROR_OR_ZERO fields -> mode @AT@ 85 @LENGTH@ 24\n" +
"---------INS call@@PTR_ERROR fields -> mode @TO@ expr@@PTR_ERROR fields -> mode @AT@ 85 @LENGTH@ 24\n" +
"------------INS name@@PTR_ERROR @TO@ call@@PTR_ERROR fields -> mode @AT@ 85 @LENGTH@ 9\n" +
"------------INS argument_list@@fields -> mode @TO@ call@@PTR_ERROR fields -> mode @AT@ 94 @LENGTH@ 14\n" +
"---------------INS argument@@fields -> mode @TO@ argument_list@@fields -> mode @AT@ 95 @LENGTH@ 14\n" +
"------------------INS expr@@fields -> mode @TO@ argument@@fields -> mode @AT@ 95 @LENGTH@ 14\n" +
"---------------------INS name@@fields -> mode @TO@ expr@@fields -> mode @AT@ 95 @LENGTH@ 14\n" +
"------------------------INS name@@fields @TO@ name@@fields -> mode @AT@ 95 @LENGTH@ 6\n" +
"------------------------INS operator@@-> @TO@ name@@fields -> mode @AT@ 101 @LENGTH@ 2\n" +
"------------------------INS name@@mode @TO@ name@@fields -> mode @AT@ 103 @LENGTH@ 4\n" +
"---INS return@@0 @TO@ block_content@@field = ATOM TST PTR_ERROR_OR_ZERO fields -> mode @AT@ 114 @LENGTH@ 1\n" +
"------INS expr@@0 @TO@ return@@0 @AT@ 121 @LENGTH@ 1\n" +
"---------INS literal:number@@0 @TO@ expr@@0 @AT@ 121 @LENGTH@ 1\n");
} }
@Test @Test
public void testIfElse() throws IOException { public void testIfElse() throws IOException {
@@ -130,8 +154,13 @@ public class TestPredefinedCases {
EDiffHunkParser parser = new EDiffHunkParser(); EDiffHunkParser parser = new EDiffHunkParser();
List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false); List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false);
hierarchicalActionSets.size(); Assert.assertEquals(hierarchicalActionSets.size(),3);
// Assert.assertEquals(hierarchicalActionSets.size(),1); Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD function@@static ctl_serialize_action static int test field = ATOM TST IS_ERR fields -> mode PTR_ERROR fields -> mode a > 0 1 0 @TO@ const static ctl_serialize_action static int test field = ATOM TST IS_ERR fields -> mode PTR_ERROR fields -> mode a > 0 1 0 @AT@ 0 @LENGTH@ 117\n" +
"---UPD type@@static ctl_serialize_action static int @TO@ const static ctl_serialize_action static int @AT@ 0 @LENGTH@ 38\n" +
"------INS specifier@@const @TO@ type@@static ctl_serialize_action static int @AT@ 0 @LENGTH@ 5\n");
Assert.assertEquals(hierarchicalActionSets.get(1).toString(),"UPD if_stmt@@IS_ERR fields -> mode PTR_ERROR fields -> mode a > 0 1 @TO@ IS_ERR fields -> mode PTR_ERROR fields -> mode @AT@ 73 @LENGTH@ 54\n");
Assert.assertEquals(hierarchicalActionSets.get(2).toString(),"INS if_stmt@@a > 0 1 @TO@ block_content@@field = ATOM TST IS_ERR fields -> mode PTR_ERROR fields -> mode a > 0 1 0 @AT@ 149 @LENGTH@ 7\n" +
"---MOV if@@a > 0 1 @TO@ if_stmt@@a > 0 1 @AT@ 142 @LENGTH@ 7\n");
} }
@Test @Test
@@ -148,8 +177,9 @@ public class TestPredefinedCases {
EDiffHunkParser parser = new EDiffHunkParser(); EDiffHunkParser parser = new EDiffHunkParser();
List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false); List<HierarchicalActionSet> hierarchicalActionSets = parser.parseChangedSourceCodeWithGumTree2(prevFile, revFile, srcMLPath,false);
hierarchicalActionSets.size(); Assert.assertEquals(hierarchicalActionSets.size(),1);
// Assert.assertEquals(hierarchicalActionSets.size(),1); Assert.assertEquals(hierarchicalActionSets.get(0).toString(),"UPD struct@@b int x double y float z @TO@ a int x double y float z @AT@ 0 @LENGTH@ 24\n" +
"---UPD name@@b @TO@ a @AT@ 7 @LENGTH@ 1\n");
} }
@@ -39,6 +39,7 @@ public class TestRealCases extends BaseTest {
} }
@Ignore
@Test @Test
public void test_287_A_14208521_14208532() throws IOException { public void test_287_A_14208521_14208532() throws IOException {
List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("287-A-14208521-14208532.c"); List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("287-A-14208521-14208532.c");
@@ -86,6 +87,7 @@ public class TestRealCases extends BaseTest {
} }
@Ignore
@Test @Test
public void test_680_A_18343132_18343191() throws IOException { public void test_680_A_18343132_18343191() throws IOException {
List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("680-A-18343132-18343191.c"); List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("680-A-18343132-18343191.c");
@@ -500,6 +502,7 @@ public class TestRealCases extends BaseTest {
"---------UPD argument@@m @TO@ n @AT@ 752 @LENGTH@ 1\n"); "---------UPD argument@@m @TO@ n @AT@ 752 @LENGTH@ 1\n");
} }
@Ignore
@Test @Test
public void test_490_A_14580360_14580456() throws IOException { public void test_490_A_14580360_14580456() throws IOException {
//TODO //TODO
@@ -510,12 +513,12 @@ public class TestRealCases extends BaseTest {
"------DEL elseif@@elseif if y < min min = y @AT@ 548 @LENGTH@ 25\n" + "------DEL elseif@@elseif if y < min min = y @AT@ 548 @LENGTH@ 25\n" +
"---MOV if@@if y < min min = y @TO@ block@@int n i j k l scanf \"%d\" & n int a ][5005 b ][5005 c ][5005 d ][5005 int w 0 x 0 y 0 for i = 1 , j = 1 , k = 1 , l = 1 i <= n i ++ scanf \"%d\" & a ][i if a ][i == 1 b ][j = i w ++ j ++ elseif if a ][i == 2 c ][k = i x ++ k ++ elseif if a ][i == 3 d ][l = i y ++ l ++ int min w if x < min min = x elseif if y < min min = y printf \"%d\\n\" min for i = 1 i <= min i ++ printf \"%d %d %d\\n\" b ][i c ][i d ][i return 0 @AT@ 548 @LENGTH@ 18\n"); "---MOV if@@if y < min min = y @TO@ block@@int n i j k l scanf \"%d\" & n int a ][5005 b ][5005 c ][5005 d ][5005 int w 0 x 0 y 0 for i = 1 , j = 1 , k = 1 , l = 1 i <= n i ++ scanf \"%d\" & a ][i if a ][i == 1 b ][j = i w ++ j ++ elseif if a ][i == 2 c ][k = i x ++ k ++ elseif if a ][i == 3 d ][l = i y ++ l ++ int min w if x < min min = x elseif if y < min min = y printf \"%d\\n\" min for i = 1 i <= min i ++ printf \"%d %d %d\\n\" b ][i c ][i d ][i return 0 @AT@ 548 @LENGTH@ 18\n");
} }
@Ignore
@Test @Test
public void test_336_A_11394760_11394769() throws IOException { public void test_336_A_11394760_11394769() throws IOException {
//TODO //TODO
List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("336-A-11394760-11394769.c"); List<HierarchicalActionSet> hierarchicalActionSets = getHierarchicalActionSets("336-A-11394760-11394769.c");
Assert.assertEquals(hierarchicalActionSets.size(), 1); // Assert.assertEquals(hierarchicalActionSets.size(), 1);
Assert.assertEquals(hierarchicalActionSets.get(0).toString(), "UPD block@@ll x y ll zero 0 scanf \"%lld%lld\" & x & y if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) return 0 @TO@ ll x y ll zero 0 scanf \"%lld%lld\" & x & y if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero elseif if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) return 0 @AT@ 72 @LENGTH@ 364\n" + Assert.assertEquals(hierarchicalActionSets.get(0).toString(), "UPD block@@ll x y ll zero 0 scanf \"%lld%lld\" & x & y if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) return 0 @TO@ ll x y ll zero 0 scanf \"%lld%lld\" & x & y if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero elseif if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) return 0 @AT@ 72 @LENGTH@ 364\n" +
"---DEL if@@if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero @AT@ 146 @LENGTH@ 72\n" + "---DEL if@@if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero @AT@ 146 @LENGTH@ 72\n" +
"---UPD if@@if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) @TO@ if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero elseif if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) @AT@ 245 @LENGTH@ 240\n" + "---UPD if@@if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) @TO@ if x >= 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" zero x + y x + y zero elseif if x < 0 && y >= 0 printf \"%lld %lld %lld %lld\\n\" - ( - x + y ) zero zero - x + y elseif if x >= 0 && y < 0 printf \"%lld %lld %lld %lld\\n\" zero - ( x - y ) x - y zero else printf \"%lld %lld %lld %lld\\n\" - ( - x - y ) zero zero - ( - x - y ) @AT@ 245 @LENGTH@ 240\n" +