mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-30 04:15:35 +02:00
93 lines
No EOL
2.8 KiB
XML
93 lines
No EOL
2.8 KiB
XML
<!--
|
|
Copyright (c) 2009, 2010 IBM Corporation and others.
|
|
All rights reserved. This program and the accompanying materials
|
|
are made available under the terms of the Eclipse Public License v1.0
|
|
which accompanies this distribution, and is available at
|
|
http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
Contributors:
|
|
IBM Corporation - initial API and implementation
|
|
-->
|
|
|
|
<project name="CDT Extensible LR Parser Framework" basedir=".">
|
|
|
|
<!--
|
|
Common tasks that can be used to generate a parser using LPG and the
|
|
LR parser framework.
|
|
|
|
There are two ANT properties that must be defined:
|
|
1) lpg_exe - This property must be set to the full path to the LPG generator executable (lpg.exe).
|
|
2) lpg_template - This property must be set to the full path to the folder that contains the LRParserTemplate.g file.
|
|
|
|
Additionally if the $Import or $Include directives are being used in a grammar
|
|
file then the LPG_INCLUDE environment variable must be set to the directory
|
|
of the files being included.
|
|
lpg_include - is an optional property to set, if it is set, LPG_INCLUDE will be set by its value before execute lpg_exe.
|
|
-->
|
|
|
|
<fail unless="lpg_exe">
|
|
Property $${lpg_exe} not set.
|
|
This property must be set to the full path to the LPG generator executable.
|
|
</fail>
|
|
|
|
<fail unless="lpg_template">
|
|
Property $${lpg_template} not set.
|
|
This property must be set to the full path to the LPG templates folder.
|
|
</fail>
|
|
|
|
|
|
<!--
|
|
Parameters:
|
|
${grammar_dir} - directory that contains the grammar files
|
|
${grammar_name} - the name of the main grammar file to run LPG on (not including the .g extension)
|
|
${output_dir} - name of directory where generated files should go
|
|
-->
|
|
<target name="generate" depends="moveFile">
|
|
|
|
|
|
<echo message="Code generation is done."/>
|
|
|
|
|
|
</target>
|
|
|
|
<target name="init">
|
|
|
|
<property name="grammar_file" value="${grammar_dir}/${grammar_name}.g"/>
|
|
<echo message="lpg_exe=${lpg_exe}"/>
|
|
<echo message="lpg_template=${lpg_template}"/>
|
|
<echo message="lpg_include=${lpg_include}"/>
|
|
<echo message="grammar_file=${grammar_file}.g"/>
|
|
<echo message="output_dir=${output_dir}"/>
|
|
|
|
|
|
</target>
|
|
|
|
<target name="generateWithIncludeSet" if="lpg_include" depends="init">
|
|
|
|
<exec executable="${lpg_exe}">
|
|
<arg value="${grammar_file}"/>
|
|
<env key="LPG_TEMPLATE" path="${lpg_template}"/>
|
|
<env key="LPG_INCLUDE" path="${lpg_include}"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="generateWithoutIncludeSet" unless="lpg_include" depends="generateWithIncludeSet">
|
|
|
|
|
|
<exec executable="${lpg_exe}">
|
|
<arg value="${grammar_file}"/>
|
|
<env key="LPG_TEMPLATE" path="${lpg_template}"/>
|
|
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="moveFile" depends="generateWithoutIncludeSet">
|
|
<move overwrite="true" toDir="${output_dir}">
|
|
<fileset dir=".">
|
|
<include name="${grammar_name}*.*"/>
|
|
</fileset>
|
|
</move>
|
|
</target>
|
|
|
|
|
|
</project> |