Extract PSI to separate module
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<project name="KotlinLexer" default="lexer">
|
||||
<property name="home" value="${basedir}"/>
|
||||
<property name="builddir" value="${basedir}/build"/>
|
||||
<property name="flex.classpath" value=""/>
|
||||
<property name="out.dir" value="${builddir}/tmpout"/>
|
||||
|
||||
<macrodef name="flex">
|
||||
<attribute name="flexfile"/>
|
||||
<attribute name="destdir"/>
|
||||
<attribute name="skeleton" default="${builddir}/idea-flex.skeleton"/>
|
||||
<sequential>
|
||||
<delete dir="${out.dir}"/>
|
||||
<mkdir dir="${out.dir}"/>
|
||||
<java classname="jflex.Main"
|
||||
jvmargs="-Xmx512M"
|
||||
fork="true"
|
||||
failonerror="true">
|
||||
<arg value="-skel"/>
|
||||
<arg value="@{skeleton}"/>
|
||||
<arg value="-d"/>
|
||||
<arg value="${out.dir}"/>
|
||||
<arg value="@{flexfile}"/>
|
||||
<classpath>
|
||||
<pathelement path="${flex.classpath}"/>
|
||||
</classpath>
|
||||
</java>
|
||||
<move todir="@{destdir}">
|
||||
<fileset dir="${out.dir}">
|
||||
<include name="*.java"/>
|
||||
</fileset>
|
||||
</move>
|
||||
<delete dir="${out.dir}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<target name="check-idea-flex.skeleton.exists">
|
||||
<available file="${builddir}/idea-flex.skeleton" property="skeleton.exists"/>
|
||||
</target>
|
||||
|
||||
<target name="get-idea-flex.skeleton.if.not.exists" depends="check-idea-flex.skeleton.exists" unless="skjeleton.exisits">
|
||||
<get src="https://raw.github.com/JetBrains/intellij-community/master/tools/lexer/idea-flex.skeleton"
|
||||
dest="${builddir}/idea-flex.skeleton" usetimestamp="true"/>
|
||||
</target>
|
||||
|
||||
<target name="lexer" depends="get-idea-flex.skeleton.if.not.exists">
|
||||
<flex flexfile="${home}/src/org/jetbrains/kotlin/lexer/Kotlin.flex"
|
||||
destdir="${home}/src/org/jetbrains/kotlin/lexer/"/>
|
||||
|
||||
<!-- This is a hack, but we don't want to alter the skeleton we are using now, because being in sync with IDEA is more important-->
|
||||
<replaceregexp file="${home}/src/org/jetbrains/kotlin/lexer/_JetLexer.java"
|
||||
match="throw new KotlinLexerException\(message\);"
|
||||
replace="throw new KotlinLexerException(message + "\\\\n at '" + yytext() + "'\\\\n" + zzBuffer);"/>
|
||||
|
||||
<flex flexfile="${home}/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex"
|
||||
destdir="${home}/src/org/jetbrains/kotlin/kdoc/lexer/"/>
|
||||
</target>
|
||||
</project>
|
||||
Reference in New Issue
Block a user