Loading EDG/pom.xml +18 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- ~ e-Knife for Java, a program slicer based on Expression Dependence Graphs. ~ Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. ~ ~ This program is free software: you can redistribute it and/or modify it under ~ the terms of the GNU Affero General Public License as published by the Free ~ Software Foundation, either version 3 of the License, or (at your option) ~ any later version. ~ ~ This program is distributed in the hope that it will be useful, but WITHOUT ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ~ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General ~ Public License for more details. ~ ~ You should have received a copy of the GNU Affero General Public License ~ along with this program. If not, see <https://www.gnu.org/licenses/>. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> Loading EDG/src/main/java/edg/ASTBuilder.java +22 −8 Original line number Diff line number Diff line /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package edg; import edg.edge.EdgeGenerator; import edg.graph.*; import edg.traverser.EDGTraverser; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import edg.edge.EdgeGenerator; import edg.graph.EDG; import edg.graph.EdgeInfo; import edg.graph.Node; import edg.graph.NodeInfo; import edg.graph.VariableInfo; import edg.traverser.EDGTraverser; // TODO Caracteristicas de los lenguajes: single assignment, orden metodos y atributos, bloque aisla contextos // TODO Hay que crear las siguientes expresiones: compound pattern public class ASTBuilder Loading EDG/src/main/java/edg/DotFactory.java +23 −5 Original line number Diff line number Diff line package edg; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ import java.io.File; import java.util.Arrays; import java.util.List; import java.util.Map; package edg; import edg.constraint.EdgeConstraint; import edg.graph.EDG; Loading @@ -12,6 +25,11 @@ import edg.graph.EdgeInfo; import edg.graph.Node; import misc.Misc; import java.io.File; import java.util.Arrays; import java.util.List; import java.util.Map; public class DotFactory { public static void createDot(File outputFile, EDG edg) Loading EDG/src/main/java/edg/EDGFactory.java +21 −8 Original line number Diff line number Diff line package edg; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Stack; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package edg; import edg.ASTBuilder.Where; import edg.graph.EDG; import edg.graph.NodeInfo; import edg.graph.Node; import edg.graph.NodeInfo; import edg.traverser.EDGTraverser; import java.util.*; public abstract class EDGFactory { private EDG edg; Loading EDG/src/main/java/edg/EDGFactoryNew.java +21 −10 Original line number Diff line number Diff line package edg; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ import java.util.List; package edg; import edg.graph.Node; import edg.graph.NodeInfo; import edg.constraint.AccessConstraint; import edg.constraint.DataConstructorConstraint; import edg.constraint.EdgeConstraint; import edg.edge.ControlEdgeGenerator; import edg.edge.ExceptionEdgeGenerator; import edg.edge.FlowEdgeGeneratorNew; import edg.edge.InterproceduralEdgeGeneratorNew; import edg.edge.SummaryEdgeGeneratorNew; import edg.graph.EDG; import edg.graph.Edge; import edg.graph.EdgeInfo; import edg.graph.*; import edg.traverser.EDGTraverser; import edg.traverser.EDGTraverserNew; import edg.graph.LAST; import java.util.List; public class EDGFactoryNew { Loading Loading
EDG/pom.xml +18 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- ~ e-Knife for Java, a program slicer based on Expression Dependence Graphs. ~ Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. ~ ~ This program is free software: you can redistribute it and/or modify it under ~ the terms of the GNU Affero General Public License as published by the Free ~ Software Foundation, either version 3 of the License, or (at your option) ~ any later version. ~ ~ This program is distributed in the hope that it will be useful, but WITHOUT ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ~ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General ~ Public License for more details. ~ ~ You should have received a copy of the GNU Affero General Public License ~ along with this program. If not, see <https://www.gnu.org/licenses/>. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> Loading
EDG/src/main/java/edg/ASTBuilder.java +22 −8 Original line number Diff line number Diff line /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package edg; import edg.edge.EdgeGenerator; import edg.graph.*; import edg.traverser.EDGTraverser; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import edg.edge.EdgeGenerator; import edg.graph.EDG; import edg.graph.EdgeInfo; import edg.graph.Node; import edg.graph.NodeInfo; import edg.graph.VariableInfo; import edg.traverser.EDGTraverser; // TODO Caracteristicas de los lenguajes: single assignment, orden metodos y atributos, bloque aisla contextos // TODO Hay que crear las siguientes expresiones: compound pattern public class ASTBuilder Loading
EDG/src/main/java/edg/DotFactory.java +23 −5 Original line number Diff line number Diff line package edg; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ import java.io.File; import java.util.Arrays; import java.util.List; import java.util.Map; package edg; import edg.constraint.EdgeConstraint; import edg.graph.EDG; Loading @@ -12,6 +25,11 @@ import edg.graph.EdgeInfo; import edg.graph.Node; import misc.Misc; import java.io.File; import java.util.Arrays; import java.util.List; import java.util.Map; public class DotFactory { public static void createDot(File outputFile, EDG edg) Loading
EDG/src/main/java/edg/EDGFactory.java +21 −8 Original line number Diff line number Diff line package edg; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Stack; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package edg; import edg.ASTBuilder.Where; import edg.graph.EDG; import edg.graph.NodeInfo; import edg.graph.Node; import edg.graph.NodeInfo; import edg.traverser.EDGTraverser; import java.util.*; public abstract class EDGFactory { private EDG edg; Loading
EDG/src/main/java/edg/EDGFactoryNew.java +21 −10 Original line number Diff line number Diff line package edg; /* * e-Knife for Java, a program slicer based on Expression Dependence Graphs. * Copyright (c) 2023. David Insa, Sergio Pérez, Josep Silva, Salvador Tamarit. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ import java.util.List; package edg; import edg.graph.Node; import edg.graph.NodeInfo; import edg.constraint.AccessConstraint; import edg.constraint.DataConstructorConstraint; import edg.constraint.EdgeConstraint; import edg.edge.ControlEdgeGenerator; import edg.edge.ExceptionEdgeGenerator; import edg.edge.FlowEdgeGeneratorNew; import edg.edge.InterproceduralEdgeGeneratorNew; import edg.edge.SummaryEdgeGeneratorNew; import edg.graph.EDG; import edg.graph.Edge; import edg.graph.EdgeInfo; import edg.graph.*; import edg.traverser.EDGTraverser; import edg.traverser.EDGTraverserNew; import edg.graph.LAST; import java.util.List; public class EDGFactoryNew { Loading