<commit_before><?xml version="1.0"?>

<project default="compile">
    <target name="settings">
        <property file="ant.settings"/>
        <fail
            message="Please copy ant.settings.template to ant.settings, and set the variables in it."
            unless="jasmin.jar"
        />
    </target>

    <target name="compile" depends="settings,sablecc,copypeephole,settings,singletons,options,jflex-lexer,ppg-parser">
        <javac
            destdir="classes"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
            debug="true"
        >
            <src path="src"/>
            <src path="generated/singletons"/>
            <src path="generated/sablecc"/>
            <src path="generated/options"/>
            <src path="generated/jedd"/>
            <src path="generated/jj"/>
        </javac>
    </target>

    <target name="singletons" depends="singletons-dep" unless="singletons-uptodate">
        <exec executable="${basedir}/src/make_singletons" dir="${basedir}/src" output="${basedir}/generated/singletons/soot/Singletons.java"/>
    </target>
    <target name="singletons-dep">
        <uptodate property="singletons-uptodate" targetfile="generated/singletons/soot/Singletons.java">
            <srcfiles dir="src" includes="package.list,singletons.list"/>
        </uptodate>
    </target>

    <target name="options" depends="settings">
        <xslt
            style="src/soot/options/make-soot-options.xsl"
            in="src/soot/options/soot_options.xml"
            out="generated/options/soot/options/Options.java"
        />
    </target>

    <target name="copypeephole" depends="sablecc,settings">
        <copy file="src/soot/baf/toolkits/base/peephole.dat" tofile="classes/soot/baf/toolkits/base/peephole.dat"/>
        <copy file="generated/sablecc/soot/jimple/parser/parser/parser.dat" tofile="classes/soot/jimple/parser/parser/parser.dat"/>
        <copy file="generated/sablecc/soot/jimple/parser/lexer/lexer.dat" tofile="classes/soot/jimple/parser/lexer/lexer.dat"/>
    </target>

    <target name="determine-sablecc-uptodate">
        <uptodate property="sablecc.uptodate" srcfile="src/jimple.scc" targetfile="generated/sablecc/soot/jimple/parser/parser/Parser.java"/>
    </target>

    <target name="sablecc" depends="determine-sablecc-uptodate,settings" unless="sablecc.uptodate">
        <apply executable="sablecc">
            <arg value="-d generated/sablecc"/>
            <fileset dir="src" includes="jimple.scc"/>
        </apply>
    </target>

    <target name="javadoc">
        <javadoc
            sourcepath="src"
            destdir="doc"
            maxmemory="200m"
            windowtitle="Soot API"
        >
            <fileset dir="src" includes="**/*.java"/>
        </javadoc>
    </target>

    <target name="clean">
        <delete quiet="true">
            <fileset dir="classes" includes="**/*.class" />
            <fileset dir="testclasses" includes="**/*.class" />
            <fileset dir="eclipse/ca.mcgill.sable.soot/classes" includes="**/*.class" />
        </delete>
    </target>

    <target name="veryclean" depends="clean,veryclean-singletons,veryclean-jedd,veryclean-options,veryclean-sablecc,veryclean-jj"/>
    <target name="veryclean-singletons">
        <delete quiet="true">
            <fileset dir="generated/singletons" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-jedd">
        <delete quiet="true">
            <fileset dir="generated/jedd" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-options">
        <delete quiet="true">
            <fileset dir="generated/options" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-sablecc">
        <delete quiet="true">
            <fileset dir="generated/sablecc" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-jj">
        <delete quiet="true">
            <fileset dir="generated/jj" includes="**/*" />
        </delete>
    </target>

    <target name="badfields" depends="compile,settings">
        <java
            classname="soot.tools.BadFields"
            maxmemory="200m"
            fork="true"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
        >
            <arg value="-w"/>
            <arg value="-f"/>
            <arg value="none"/>
            <arg value="-process-dir"/>
            <arg value="classes"/>
            <arg value="soot.Main"/>
        </java>
    </target>

    <target name="buildtests" depends="compile,settings">
        <mkdir dir="testclasses"/>
        <javac
            srcdir="tests"
            destdir="testclasses"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
            debug="true"
            />
    </target>

    <target name="runtests" depends="buildtests,settings">
        <junit printsummary="yes">
            <classpath>
                <pathelement location="testclasses"/>
                <pathelement location="classes"/>
                <pathelement location="${polyglot.jar}"/>
                <pathelement location="${jasmin.jar}"/>
            </classpath>

            <formatter type="plain"/>
            <batchtest>
                <fileset dir="testclasses" includes="**/*.class"/>
            </batchtest>
        </junit>
    </target>

    <target name="release" depends="barebones,settings">
        <property file="ant.settings"/>
    </target>

    <target name="barebones" depends="clean,options,sablecc,settings">
        <property file="ant.settings"/>
        <tar destfile="${release.loc}/soot-${soot.version}-barebones.tar.gz" compression="gzip" longfile="gnu">
            <tarfileset dir="."/>
        </tar>
        <jar destfile="${release.loc}/soot-${soot.version}-barebones.jar">
            <fileset dir="."/>
        </jar>
    </target>

    <target name="classesjar" depends="settings,compile">
        <property file="ant.settings"/>
        <jar destfile="${release.loc}/sootclasses-${soot.version}.jar">
            <fileset dir="classes"/>
        </jar>
    </target>

    <target name="eclipse-plugin" depends="compile,settings">
        <xslt
            style="src/soot/options/phase_options_dialog.xsl"
            in="src/soot/options/soot_options.xml"
            out="eclipse/ca.mcgill.sable.soot/src/ca/mcgill/sable/soot/testing/PhaseOptionsDialog.java"
        />
        <javac
            destdir="eclipse/ca.mcgill.sable.soot/classes"
            debug="true"
        >
            <src path="eclipse/ca.mcgill.sable.soot/src"/>
            <classpath>
                <pathelement location="classes"/>
                <fileset dir="${eclipse.loc}/plugins/" includes="**/*.jar"/>
            </classpath>
        </javac>
        <jar destfile="eclipse/ca.mcgill.sable.soot/soot-plugin.jar">
            <fileset dir="eclipse/ca.mcgill.sable.soot/classes"/>
        </jar>
    </target>

    <!-- Build a JFlex lexer based on parameters supplied to the target.
       @param lexer.dir     The directory, relative to $basedir, in which
                            the JFlex file is located.
       @param lexer.class   The name of the lexer as declared with %class
                            in the JFlex file.
       @param jflex.file    The name of the JFlex file.
   -->
  <target name="jflex-lexer" depends="jflex-lexer-deps,settings"
                             unless="jflex.lexer.up-to-date">
    <java classname="JFlex.Main"
	  fork="true"
	  dir="."
      classpath="${jflex.jar}"
	  failonerror="true">
      <arg line="-d generated/jj/soot/javaToJimple/jj/parse/ src/soot/javaToJimple/jj/parse/jj.flex"/>
    </java>
  </target>

  <!-- Set the property jflex.lexer.up-to-date if the lexer is in fact
       up to date.  Called by the jflex-lexer target.
   -->
  <target name="jflex-lexer-deps">
    <dependset>
      <srcfileset dir="src/soot/javaToJimple/jj/parse/" includes="jj.flex"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/" includes="Lexer_c.java"/>
    </dependset>
    <available property="jflex.lexer.up-to-date"
        file="generated/jj/soot/javaToJimple/jj/parse/Lexer_c.java"/>
  </target>
  
  <!-- Build a PPG parser based on parameters supplied to the target.
       @param parser.dir    The directory, relative to $basedir, in which
                            the PPG file is located.
       @param ppg.file      The name of the PPG file.
       @param cup.file      The name of the CUP file to output.
       @param parser.class  The name to be passed to CUP with -parser.
       @param symbol.class  The name to be passed to CUP with -symbols.
   -->
  <target name="ppg-parser" depends="ppg-parser-deps,settings" 
          unless="ppg.parser.up-to-date">
    <java classname="ppg.PPG"
          fork="true"
          dir="."
          classpath="${polyglot.jar}"
	  output="generated/jj/soot/javaToJimple/jj/parse/jj_ppg.cup"
	  failonerror="true">
      <arg line="src/soot/javaToJimple/jj/parse/jj.ppg"/>
    </java>
    <antcall target="cup-parser"/>
  </target>

  <!-- Set the property ppg.parser.up-to-date if the parser is in fact
       up to date.  Called by the ppg-parser target.
   -->
  <target name="ppg-parser-deps">
    <dependset>
      <srcfileset dir="src/soot/javaToJimple/jj/parse/" includes="jj.ppg"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/">
        <include name="jj_ppg.cup"/>
        <include name="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
	<include name="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>
      </targetfileset>
    </dependset>
    <condition property="ppg.parser.up-to-date">
      <and>
        <available file="generated/jj/soot/javaToJimple/jj/parse/jj_ppg.cup"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>	   
      </and>	       
    </condition>
  </target>

  <!-- Build a CUP parser based on parameters supplied to the target.
       @param parser.dir    The directory, relative to $basedir, in which
                            the CUP file is located.
       @param parser.class  The name to be passed to CUP with -parser.
       @param symbol.class  The name to be passed to CUP with -symbols.
       @param cup.file      The name of the CUP file.
   -->
  <target name="cup-parser" depends="cup-parser-using-jar,settings" 
          unless="cup.parser.up-to-date">
  </target>


  <!-- The following target builds a cup parser using the version of
       cup already sitting in the java_cup.jar file. This is needed to
       allow the building of cup to be bootstrapped. -->
  <target name="cup-parser-using-jar" depends="cup-parser-deps,settings" 
          unless="cup.parser.up-to-date">
    <java classname="java_cup.Main"
          fork="true"
          dir="generated/jj/soot/javaToJimple/jj/parse/"
          classpath="${polyglot.jar}"
	  failonerror="true">
      <arg line="jj_ppg.cup"/>
    </java>
  </target>

  <!-- Set the property cup.parser.up-to-date if the parser is in fact
       up to date.  Called by the cup-parser-using-jar target.
   -->
  <target name="cup-parser-deps">
    <dependset>
      <srcfileset dir="generated/jj/soot/javaToJimple/jj/parse/" includes="jj_ppg.cup"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/">
        <include name="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
	<include name="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>
      </targetfileset>
    </dependset>
    <condition property="cup.parser.up-to-date">
      <and>
        <available file="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>	   
      </and>	       
    </condition>	      
  </target>
  
</project>
<commit_msg>-fix for eclipse-plugin target to add properties files to soot-plugin.jar<commit_after><?xml version="1.0"?>

<project default="compile">
    <target name="settings">
        <property file="ant.settings"/>
        <fail
            message="Please copy ant.settings.template to ant.settings, and set the variables in it."
            unless="jasmin.jar"
        />
    </target>

    <target name="compile" depends="settings,sablecc,copypeephole,settings,singletons,options,jflex-lexer,ppg-parser">
        <javac
            destdir="classes"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
            debug="true"
        >
            <src path="src"/>
            <src path="generated/singletons"/>
            <src path="generated/sablecc"/>
            <src path="generated/options"/>
            <src path="generated/jedd"/>
            <src path="generated/jj"/>
        </javac>
    </target>

    <target name="singletons" depends="singletons-dep" unless="singletons-uptodate">
        <exec executable="${basedir}/src/make_singletons" dir="${basedir}/src" output="${basedir}/generated/singletons/soot/Singletons.java"/>
    </target>
    <target name="singletons-dep">
        <uptodate property="singletons-uptodate" targetfile="generated/singletons/soot/Singletons.java">
            <srcfiles dir="src" includes="package.list,singletons.list"/>
        </uptodate>
    </target>

    <target name="options" depends="settings">
        <xslt
            style="src/soot/options/make-soot-options.xsl"
            in="src/soot/options/soot_options.xml"
            out="generated/options/soot/options/Options.java"
        />
    </target>

    <target name="copypeephole" depends="sablecc,settings">
        <copy file="src/soot/baf/toolkits/base/peephole.dat" tofile="classes/soot/baf/toolkits/base/peephole.dat"/>
        <copy file="generated/sablecc/soot/jimple/parser/parser/parser.dat" tofile="classes/soot/jimple/parser/parser/parser.dat"/>
        <copy file="generated/sablecc/soot/jimple/parser/lexer/lexer.dat" tofile="classes/soot/jimple/parser/lexer/lexer.dat"/>
    </target>

    <target name="determine-sablecc-uptodate">
        <uptodate property="sablecc.uptodate" srcfile="src/jimple.scc" targetfile="generated/sablecc/soot/jimple/parser/parser/Parser.java"/>
    </target>

    <target name="sablecc" depends="determine-sablecc-uptodate,settings" unless="sablecc.uptodate">
        <apply executable="sablecc">
            <arg value="-d generated/sablecc"/>
            <fileset dir="src" includes="jimple.scc"/>
        </apply>
    </target>

    <target name="javadoc">
        <javadoc
            sourcepath="src"
            destdir="doc"
            maxmemory="200m"
            windowtitle="Soot API"
        >
            <fileset dir="src" includes="**/*.java"/>
        </javadoc>
    </target>

    <target name="clean">
        <delete quiet="true">
            <fileset dir="classes" includes="**/*.class" />
            <fileset dir="testclasses" includes="**/*.class" />
            <fileset dir="eclipse/ca.mcgill.sable.soot/classes" includes="**/*.class" />
        </delete>
    </target>

    <target name="veryclean" depends="clean,veryclean-singletons,veryclean-jedd,veryclean-options,veryclean-sablecc,veryclean-jj"/>
    <target name="veryclean-singletons">
        <delete quiet="true">
            <fileset dir="generated/singletons" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-jedd">
        <delete quiet="true">
            <fileset dir="generated/jedd" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-options">
        <delete quiet="true">
            <fileset dir="generated/options" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-sablecc">
        <delete quiet="true">
            <fileset dir="generated/sablecc" includes="**/*" />
        </delete>
    </target>
    <target name="veryclean-jj">
        <delete quiet="true">
            <fileset dir="generated/jj" includes="**/*" />
        </delete>
    </target>

    <target name="badfields" depends="compile,settings">
        <java
            classname="soot.tools.BadFields"
            maxmemory="200m"
            fork="true"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
        >
            <arg value="-w"/>
            <arg value="-f"/>
            <arg value="none"/>
            <arg value="-process-dir"/>
            <arg value="classes"/>
            <arg value="soot.Main"/>
        </java>
    </target>

    <target name="buildtests" depends="compile,settings">
        <mkdir dir="testclasses"/>
        <javac
            srcdir="tests"
            destdir="testclasses"
            classpath="classes:${polyglot.jar}:${jasmin.jar}"
            debug="true"
            />
    </target>

    <target name="runtests" depends="buildtests,settings">
        <junit printsummary="yes">
            <classpath>
                <pathelement location="testclasses"/>
                <pathelement location="classes"/>
                <pathelement location="${polyglot.jar}"/>
                <pathelement location="${jasmin.jar}"/>
            </classpath>

            <formatter type="plain"/>
            <batchtest>
                <fileset dir="testclasses" includes="**/*.class"/>
            </batchtest>
        </junit>
    </target>

    <target name="release" depends="barebones,settings">
        <property file="ant.settings"/>
    </target>

    <target name="barebones" depends="clean,options,sablecc,settings">
        <property file="ant.settings"/>
        <tar destfile="${release.loc}/soot-${soot.version}-barebones.tar.gz" compression="gzip" longfile="gnu">
            <tarfileset dir="."/>
        </tar>
        <jar destfile="${release.loc}/soot-${soot.version}-barebones.jar">
            <fileset dir="."/>
        </jar>
    </target>

    <target name="classesjar" depends="settings,compile">
        <property file="ant.settings"/>
        <jar destfile="${release.loc}/sootclasses-${soot.version}.jar">
            <fileset dir="classes"/>
        </jar>
    </target>

    <!--not done yet
    <target name="quickstart" depends="settings,eclipse-plugin,classesjar">
        <property file="ant.settings"/>
        <jar destfile="${eclipse.loc}/plugins/soot-eclipse-quickstart-${soot.version}.jar">
            <includesfile name="${polyglot.jar}"/>
            <fileset dir="eclipse/ca.mcgill.sable.soot/" includes="soot-plugin.jar,plugin.xml,plugin.properties"/>
            <fileset dir="${release.loc}/" includes="sootclasses-${soot.version}.jar"/>
            <fileset dir="eclipse/ca.mcgill.sable.soot/" includes="icons/*.png,icons/*.jpg,icons/*.gif"/>
            <fileset dir="${jasmin.jar}"/>
        </jar>
    </target>-->
    
    <target name="eclipse-plugin" depends="compile,settings">
        <xslt
            style="src/soot/options/phase_options_dialog.xsl"
            in="src/soot/options/soot_options.xml"
            out="eclipse/ca.mcgill.sable.soot/src/ca/mcgill/sable/soot/testing/PhaseOptionsDialog.java"
        />
        <javac
            destdir="eclipse/ca.mcgill.sable.soot/classes"
            debug="true"
        >
            <src path="eclipse/ca.mcgill.sable.soot/src"/>
            <classpath>
                <pathelement location="classes"/>
                <fileset dir="${eclipse.loc}/plugins/" includes="**/*.jar"/>
            </classpath>
        </javac>
        <jar destfile="eclipse/ca.mcgill.sable.soot/soot-plugin.jar">
            <fileset dir="eclipse/ca.mcgill.sable.soot/classes"/>
            <fileset dir="eclipse/ca.mcgill.sable.soot/src" includes="**/*.properties"/>
        </jar>
    </target>

    <!-- Build a JFlex lexer based on parameters supplied to the target.
       @param lexer.dir     The directory, relative to $basedir, in which
                            the JFlex file is located.
       @param lexer.class   The name of the lexer as declared with %class
                            in the JFlex file.
       @param jflex.file    The name of the JFlex file.
   -->
  <target name="jflex-lexer" depends="jflex-lexer-deps,settings"
                             unless="jflex.lexer.up-to-date">
    <java classname="JFlex.Main"
	  fork="true"
	  dir="."
      classpath="${jflex.jar}"
	  failonerror="true">
      <arg line="-d generated/jj/soot/javaToJimple/jj/parse/ src/soot/javaToJimple/jj/parse/jj.flex"/>
    </java>
  </target>

  <!-- Set the property jflex.lexer.up-to-date if the lexer is in fact
       up to date.  Called by the jflex-lexer target.
   -->
  <target name="jflex-lexer-deps">
    <dependset>
      <srcfileset dir="src/soot/javaToJimple/jj/parse/" includes="jj.flex"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/" includes="Lexer_c.java"/>
    </dependset>
    <available property="jflex.lexer.up-to-date"
        file="generated/jj/soot/javaToJimple/jj/parse/Lexer_c.java"/>
  </target>
  
  <!-- Build a PPG parser based on parameters supplied to the target.
       @param parser.dir    The directory, relative to $basedir, in which
                            the PPG file is located.
       @param ppg.file      The name of the PPG file.
       @param cup.file      The name of the CUP file to output.
       @param parser.class  The name to be passed to CUP with -parser.
       @param symbol.class  The name to be passed to CUP with -symbols.
   -->
  <target name="ppg-parser" depends="ppg-parser-deps,settings" 
          unless="ppg.parser.up-to-date">
    <java classname="ppg.PPG"
          fork="true"
          dir="."
          classpath="${polyglot.jar}"
	  output="generated/jj/soot/javaToJimple/jj/parse/jj_ppg.cup"
	  failonerror="true">
      <arg line="src/soot/javaToJimple/jj/parse/jj.ppg"/>
    </java>
    <antcall target="cup-parser"/>
  </target>

  <!-- Set the property ppg.parser.up-to-date if the parser is in fact
       up to date.  Called by the ppg-parser target.
   -->
  <target name="ppg-parser-deps">
    <dependset>
      <srcfileset dir="src/soot/javaToJimple/jj/parse/" includes="jj.ppg"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/">
        <include name="jj_ppg.cup"/>
        <include name="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
	<include name="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>
      </targetfileset>
    </dependset>
    <condition property="ppg.parser.up-to-date">
      <and>
        <available file="generated/jj/soot/javaToJimple/jj/parse/jj_ppg.cup"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>	   
      </and>	       
    </condition>
  </target>

  <!-- Build a CUP parser based on parameters supplied to the target.
       @param parser.dir    The directory, relative to $basedir, in which
                            the CUP file is located.
       @param parser.class  The name to be passed to CUP with -parser.
       @param symbol.class  The name to be passed to CUP with -symbols.
       @param cup.file      The name of the CUP file.
   -->
  <target name="cup-parser" depends="cup-parser-using-jar,settings" 
          unless="cup.parser.up-to-date">
  </target>


  <!-- The following target builds a cup parser using the version of
       cup already sitting in the java_cup.jar file. This is needed to
       allow the building of cup to be bootstrapped. -->
  <target name="cup-parser-using-jar" depends="cup-parser-deps,settings" 
          unless="cup.parser.up-to-date">
    <java classname="java_cup.Main"
          fork="true"
          dir="generated/jj/soot/javaToJimple/jj/parse/"
          classpath="${polyglot.jar}"
	  failonerror="true">
      <arg line="jj_ppg.cup"/>
    </java>
  </target>

  <!-- Set the property cup.parser.up-to-date if the parser is in fact
       up to date.  Called by the cup-parser-using-jar target.
   -->
  <target name="cup-parser-deps">
    <dependset>
      <srcfileset dir="generated/jj/soot/javaToJimple/jj/parse/" includes="jj_ppg.cup"/>
      <targetfileset dir="generated/jj/soot/javaToJimple/jj/parse/">
        <include name="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
	<include name="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>
      </targetfileset>
    </dependset>
    <condition property="cup.parser.up-to-date">
      <and>
        <available file="generated/jj/soot/javaToJimple/jj/parse/Grm.java"/>
        <available file="generated/jj/soot/javaToJimple/jj/parse/sym.java"/>	   
      </and>	       
    </condition>	      
  </target>
  
</project>

{'fraction_non_alphanumeric': 0.15578175895765473, 'fraction_numerical': 0.0006514657980456026, 'mean_word_length': 2.321747362726535, 'pattern_counts': {'":': 0, '<': 421, '<?xml version=': 2, '>': 421, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 7}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7261778', 'n_tokens_mistral': 7858, 'n_tokens_neox': 7628, 'n_words': 1375}