Loading ...
Sorry, an error occurred while loading the content.

14606Re: [antlr-interest] C++ file timestamps and makefiles

Expand Messages
  • Stuart Dootson
    Dec 16, 2004
    • 0 Attachment
      On Thu, 16 Dec 2004 11:55:10 -0500, Bryan Ewbank <ewbank@...> wrote:
      >
      > I've noticed some strange behavior, and need confirmation. It appears
      > that ANTRL only creates C++ output files if the output file is
      > different than the previously generated file.
      >
      > For example, unless I add a new token, the *TokenTypes* files are not
      > updated. If I change the action associated with a rule, only the
      > *.cpp file is changed - the *.hpp is unchanged.
      >
      > Is this expected of ANTLR, or do I need to be looking elsewhere to
      > figure out what is going on?
      >
      > Thanks
      > - Bryan Ewbank

      I've observed that behaviour - I thought I remembered there being a
      command-line switch or option to alter the behaviour, but I can't find
      it now :-(

      What I do is to delete any Antlr outputs before running Antlr,
      ensuring they are all generated again. Unless I do this, Visual Studio
      & make think that the Antlr outputs are always out of date and need
      regenerating. Here's an example from a makefile rule - it uses cantlr,
      not the Java Antlr, but it's the same principle.

      TestLanguageLexer.cpp, TestLanguageLexer.hpp,
      TestLanguageLexerTokenTypes.hpp, TestLanguageParser.cpp,
      TestLanguageParser.hpp : TestLanguage.g
      if exist TestLanguageLexer.cpp del TestLanguageLexer.cpp
      if exist TestLanguageLexer.hpp del TestLanguageLexer.hpp
      if exist TestLanguageLexerTokenTypes.hpp del TestLanguageLexerTokenTypes.hpp
      if exist TestLanguageParser.cpp del TestLanguageParser.cpp
      if exist TestLanguageParser.hpp del TestLanguageParser.hpp
      cantlr $(CANTLRFLAGS) TestLanguage.g

      Stuart Dootson
    • Show all 6 messages in this topic