<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<project basedir="." default="build" name="webcommon/javascript2.vue">
    <description>Builds, tests, and runs the project org.netbeans.modules.js.vue.</description>
    <import file="../../nbbuild/templates/projectized.xml"/>
    <target name="build-init" description="Regenerate the ANTLRv4 parser" depends="projectized.build-init" extensionOf="-pre-compile">
        <property name="lexer.outdir" location="${src.dir}/org/netbeans/modules/javascript2/vue/grammar/antlr4/coloring"/>
        <path id="antlr4.tool">
            <fileset dir="../../ide/libs.antlr4.runtime/external" includes="*.jar"/>
            <fileset dir="../../ide/libs.antlr3.runtime/external" includes="antlr-runtime-*.jar"/>
        </path>
        <!--coloring-->
        <java classname="org.antlr.v4.Tool" classpathref="antlr4.tool" fork="true" dir="${lexer.outdir}">
            <arg value="-o"/>
            <arg value="${lexer.outdir}"/>
            <arg value="VueAntlrColoringLexer.g4"/>
        </java>
        
        <delete dir="${lexer.outdir}" includes="*.tokens"/>
        <delete dir="${lexer.outdir}" includes="*.interp"/>
    </target>
</project>
