[antlr-interest] Heterogeneous AST support?

Ric Klaren ric.klaren at gmail.com
Tue Jun 21 10:11:20 PDT 2005


Paul Johnson wrote:
> just noticed that the build procedure doesn't build the cpp version of 
> the heteroAST example, which isn't a good sign. configure.in builds all 
> the C++ examples except this one. Anyone happen to know why?

Seems like it got lost in the transition to the new Makefiles. In 
configure.in is a bunch of lines for all the cpp examples. Copy one and 
change it for heteroAST. Rerun autoconf in the toplevel directory. And 
add the attached Makefile.in to cpp/examples/heteroAST rerun configure 
and you should be going...

Cheers,

Ric


-------------- next part --------------
##############################################################################
# $Id:$
###############################################################################

##xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@stdvars@
##xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

## do not change this value 
subdir=examples/cpp/heteroAST


srcdir = @abs_top_srcdir@/examples/cpp/heteroAST
objdir = @abs_this_builddir@/examples/cpp/heteroAST

this : test
test : test1 

all: heteroAST test

g_FILES = \
	$(srcdir)/calc.g \
	$(eol)

g_cxx_FILES = \
  $(objdir)/CalcLexer.cpp \
	$(objdir)/CalcParser.cpp \
  $(eol)

g_hpp_FILES = \
	$(objdir)/CalcLexer.hpp \
  $(objdir)/CalcParser.hpp \
  $(objdir)/CalcParserTokenTypes.hpp \
  $(eol)

g_txt_FILES = \
	$(objdir)/CalcParserTokenTypes.txt \
	$(eol)

g_gen_FILES = \
	$(g_cxx_FILES) \
	$(g_hpp_FILES) \
	$(g_txt_FILES) \
	$(eol)

g_obj_FILES = \
	$(objdir)/CalcLexer at OBJEXT@ \
	$(objdir)/CalcParser at OBJEXT@ \
  $(eol)

## Source files
heteroAST_cxx_FILES = \
	$(g_cxx_FILES) \
	$(srcdir)/Main.cpp  \
	$(eol)

## Object files
heteroAST_obj_FILES = \
	$(g_obj_FILES) \
	$(objdir)/Main at OBJEXT@  \
	$(eol)

## Test commands ..
test1_cmd = $(objdir)/heteroAST < $(srcdir)/test.in

## Tests to be executed
test1 : heteroAST
	@ v="$(verbose)"; \
    if test $$v -gt 0 ; then \
      echo "$(test1_cmd)" ; \
    else \
      echo "exec test1 .."; \
    fi
	@ $(test1_cmd)

## How to make binaries
heteroAST : $(heteroAST_obj_FILES) @ANTLR_LIB@
	@ @CXX_LINK_CMD@ $@ $(heteroAST_obj_FILES)

## How to compile ANTLR grammar files
$(g_gen_FILES) : $(g_FILES) @ANTLR_JAR@
	@ANTLR_COMPILE_CMD@  $(g_FILES)

## GNU make - how to make object file
$(objdir)/%@OBJEXT@ : $(srcdir)/%.cpp
	@ @CXX_COMPILE_CMD@ $<

## GNU make - how to make object file
$(objdir)/%@OBJEXT@ : $(objdir)/%.cpp
	@ @CXX_COMPILE_CMD@ $<

## GNU make - how to make object file
%@OBJEXT@ : $(srcdir)/%.cpp
	@ @CXX_COMPILE_CMD@ $<

## GNU make - how to make object file
%@OBJEXT@ : $(objdir)/%.cpp
	@ @CXX_COMPILE_CMD@ $<

## Housecleaning
clean:
	rm -rf *.o *.obj *.exe heteroAST  $(g_gen_FILES) test 

distclean: clean
	$(RM) Makefile

# Dependencies
$(objdir)/CalcLexer at OBJEXT@ :      \
 $(objdir)/CalcLexer.hpp           \
 $(srcdir)/PLUSNode.hpp            \
 $(srcdir)/BinaryOperatorAST.hpp   \
 $(srcdir)/CalcAST.hpp             \
 $(srcdir)/MULTNode.hpp            \
 $(srcdir)/INTNode.hpp             \
 $(objdir)/CalcParserTokenTypes.hpp

$(objdir)/CalcParser at OBJEXT@     :  \
 $(objdir)/CalcParser.hpp           \
 $(srcdir)/PLUSNode.hpp             \
 $(srcdir)/BinaryOperatorAST.hpp    \
 $(srcdir)/CalcAST.hpp              \
 $(srcdir)/MULTNode.hpp             \
 $(srcdir)/INTNode.hpp              \
 $(objdir)/CalcParserTokenTypes.hpp

$(objdir)/Main at OBJEXT@           :  \
 $(objdir)/CalcLexer.hpp            \
 $(objdir)/CalcParserTokenTypes.hpp \
 $(objdir)/CalcParser.hpp           \
 $(srcdir)/PLUSNode.hpp             \
 $(srcdir)/BinaryOperatorAST.hpp    \
 $(srcdir)/CalcAST.hpp              \
 $(srcdir)/MULTNode.hpp             \
 $(srcdir)/INTNode.hpp              

## If cxx.sh script changed ..
$(heteroAST_obj_FILES) : @abs_this_builddir@/scripts/cxx.sh

## If link.sh script changed ..
$(heteroAST_obj_FILES) : @abs_this_builddir@/scripts/link.sh

### get configured dependencies - for example, just list
### autoconf variable ANTLR_JAR as reference and it will
### be  done  automatically  as stddeps contains appropr.
### rule. For details, checkout scripts/config.vars[.in] 
@stddeps@




More information about the antlr-interest mailing list