Call jjtree/javacc with UTF-8 as default encoding

Fixes #2970
This commit is contained in:
Andreas Dangel
2020-12-17 18:31:13 +01:00
parent 0488c853e3
commit c37f208d3e
12 changed files with 165 additions and 88 deletions

View File

@ -30,15 +30,23 @@
<delete dir="${target}/net/sourceforge/pmd/lang/ast/dummy" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/ast/dummy" />
<echo>Using JavaCC home: ${javacc-home.path}</echo>
<jjtree target="etc/grammar/dummy.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/ast/dummy"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/ast/dummy" />
<arg value="etc/grammar/dummy.jjt" />
</java>
<!-- Generate CharStream interface -->
<javacc usercharstream="true"
target="${target}/net/sourceforge/pmd/lang/ast/dummy/dummy.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/ast/dummy"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/ast/dummy" />
<arg value="${target}/net/sourceforge/pmd/lang/ast/dummy/dummy.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/ast/dummy/CharStream.java"
token="net.sourceforge.pmd.lang.ast.dummy"
value="net.sourceforge.pmd.lang.ast" />

View File

@ -29,11 +29,15 @@
<delete dir="${target}/net/sourceforge/pmd/lang/cpp/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/cpp/ast" />
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="etc/grammar/cpp.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/cpp/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/cpp/ast" />
<arg value="etc/grammar/cpp.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/cpp/ast/CppParserTokenManager.java"
token="class CppParserTokenManager"
value="class CppParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager" />

View File

@ -28,15 +28,23 @@
<target name="javajjtree" description="Generates the Java parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/java/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/java/ast" />
<jjtree target="etc/grammar/Java.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/java/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/java/ast" />
<arg value="etc/grammar/Java.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="${target}/net/sourceforge/pmd/lang/java/ast/Java.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/java/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/java/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/java/ast/Java.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/java/ast/Node.java" />
<delete file="${target}/net/sourceforge/pmd/lang/java/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/java/ast/CharStream.java" />

View File

@ -29,11 +29,15 @@
<delete dir="${target}/net/sourceforge/pmd/lang/ecmascript5/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/ecmascript5/ast" />
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="etc/grammar/es5.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/ecmascript5/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/ecmascript5/ast" />
<arg value="etc/grammar/es5.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/ecmascript5/ast/Ecmascript5ParserTokenManager.java"
token="class Ecmascript5ParserTokenManager"
value="class Ecmascript5ParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager" />

View File

@ -28,17 +28,25 @@
<target name="jspjjtree" description="Generates the JSP parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/jsp/ast/" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/jsp/ast/" />
<jjtree target="etc/grammar/JspParser.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/jsp/ast/"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/jsp/ast" />
<arg value="etc/grammar/JspParser.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
unicodeinput="true"
javaunicodeescape="false"
target="${target}/net/sourceforge/pmd/lang/jsp/ast/JspParser.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/jsp/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-UNICODE_INPUT:true" />
<arg value="-JAVA_UNICODE_ESCAPE:false" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/jsp/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/jsp/ast/JspParser.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/jsp/ast/Node.java" />
<delete file="${target}/net/sourceforge/pmd/lang/jsp/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/jsp/ast/CharStream.java" />

View File

@ -29,11 +29,15 @@
<delete dir="${target}/net/sourceforge/pmd/lang/matlab/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/matlab/ast" />
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="etc/grammar/matlab.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/matlab/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/matlab/ast" />
<arg value="etc/grammar/matlab.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/matlab/ast/MatlabParserTokenManager.java"
token="class MatlabParserTokenManager"
value="class MatlabParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager" />

View File

@ -28,15 +28,23 @@
<target name="modelicajjtree" description="Generates the Modelica parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/modelica/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/modelica/ast" />
<jjtree target="etc/grammar/Modelica.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/modelica/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/modelica/ast" />
<arg value="etc/grammar/Modelica.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="${target}/net/sourceforge/pmd/lang/modelica/ast/Modelica.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/modelica/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/modelica/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/modelica/ast/Modelica.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/modelica/ast/Node.java" />
<delete file="${target}/net/sourceforge/pmd/lang/modelica/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/modelica/ast/CharStream.java" />

View File

@ -29,11 +29,15 @@
<delete dir="${target}/net/sourceforge/pmd/lang/objectivec/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/objectivec/ast" />
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="etc/grammar/ObjC2.0.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/objectivec/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/objectivec/ast" />
<arg value="etc/grammar/ObjC2.0.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/objectivec/ast/ObjectiveCParserTokenManager.java"
token="class ObjectiveCParserTokenManager"
value="class ObjectiveCParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager" />

View File

@ -28,15 +28,23 @@
<target name="plsqljjtree" description="Generates the PlSQL parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/plsql/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/plsql/ast" />
<jjtree target="etc/grammar/PldocAST.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/plsql/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/plsql/ast" />
<arg value="etc/grammar/PldocAST.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="false"
target="${target}/net/sourceforge/pmd/lang/plsql/ast/PldocAST.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/plsql/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:false" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/plsql/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/plsql/ast/PldocAST.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/plsql/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/plsql/ast/Node.java" />

View File

@ -29,11 +29,15 @@
<delete dir="${target}/net/sourceforge/pmd/lang/python/ast" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/python/ast" />
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
target="etc/grammar/python.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/python/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/python/ast" />
<arg value="etc/grammar/python.jj" />
</java>
<replace file="${target}/net/sourceforge/pmd/lang/python/ast/PythonParserTokenManager.java"
token="class PythonParserTokenManager"
value="class PythonParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager" />

View File

@ -28,18 +28,27 @@
<target name="jspjjtree" description="Generates the VF parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/vf/ast/" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/vf/ast/" />
<jjtree target="etc/grammar/VfParser.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/vf/ast/"
javacchome="${javacc-home.path}" />
<!-- Ensure generated using CharStream interface debugparser="true"
debugtokenmanager="true"-->
<javacc static="false"
usercharstream="true"
unicodeinput="true"
javaunicodeescape="false"
target="${target}/net/sourceforge/pmd/lang/vf/ast/VfParser.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/vf/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/vf/ast" />
<arg value="etc/grammar/VfParser.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-UNICODE_INPUT:true" />
<arg value="-JAVA_UNICODE_ESCAPE:false" />
<!-- <arg value="-DEBUG_PARSER:true" /> -->
<!-- <arg value="-DEBUG_TOKEN_MANAGER:true" /> -->
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/vf/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/vf/ast/VfParser.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/vf/ast/Node.java" />
<delete file="${target}/net/sourceforge/pmd/lang/vf/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/vf/ast/CharStream.java" />

View File

@ -28,17 +28,25 @@
<target name="vmjjtree" description="Generates the VM parser and AST source files" unless="javaccBuildNotRequired">
<delete dir="${target}/net/sourceforge/pmd/lang/vm/ast/" />
<mkdir dir="${target}/net/sourceforge/pmd/lang/vm/ast/" />
<jjtree target="etc/grammar/VmParser.jjt"
outputdirectory="${target}/net/sourceforge/pmd/lang/vm/ast/"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="jjtree"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/vm/ast" />
<arg value="etc/grammar/VmParser.jjt" />
</java>
<!-- Ensure generated using CharStream interface -->
<javacc static="false"
usercharstream="true"
unicodeinput="true"
javaunicodeescape="false"
target="${target}/net/sourceforge/pmd/lang/vm/ast/VmParser.jj"
outputdirectory="${target}/net/sourceforge/pmd/lang/vm/ast"
javacchome="${javacc-home.path}" />
<java fork="true"
classname="javacc"
classpath="${javacc-home.path}/javacc.jar">
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-STATIC:false" />
<arg value="-USER_CHAR_STREAM:true" />
<arg value="-UNICODE_INPUT:true" />
<arg value="-JAVA_UNICODE_ESCAPE:false" />
<arg value="-OUTPUT_DIRECTORY:${target}/net/sourceforge/pmd/lang/vm/ast" />
<arg value="${target}/net/sourceforge/pmd/lang/vm/ast/VmParser.jj" />
</java>
<delete file="${target}/net/sourceforge/pmd/lang/vm/ast/Node.java" />
<delete file="${target}/net/sourceforge/pmd/lang/vm/ast/SimpleNode.java" />
<delete file="${target}/net/sourceforge/pmd/lang/vm/ast/CharStream.java" />