antlr4 icon indicating copy to clipboard operation
antlr4 copied to clipboard

Generated parser code contains error

Open Gashmob opened this issue 1 year ago • 6 comments

I create a compiler with antlr and llvm in c++. I've created the two .g4 files and in my CMakeLists.txt I call the antlr jar to generate the lexer and the parser. Then I compile all my files with the same CMakeLists file and I got these errors :

Filc/src/generated/FilParser.cpp:803:16: error: invalid use of member function ‘antlrcppfil::FilParser::ExceptionContext* antlrcppfil::FilParser::ExprContext::exception()’ (did you forget the ‘()’ ?)
  803 |     _localctx->exception = std::current_exception();
      |     ~~~~~~~~~~~^~~~~~~~~
      |                         ()
Filc/src/generated/FilParser.cpp:804:43: error: invalid use of non-static member function ‘antlrcppfil::FilParser::ExceptionContext* antlrcppfil::FilParser::ExprContext::exception()’
  804 |     _errHandler->recover(this, _localctx->exception);
      |                                ~~~~~~~~~~~^~~~~~~~~

I looking in some tutorials and on stackoverflow why i've got these errors. But I didn't found any mention of that. And in tutorials code they have the same code as me, but it compile.

So I tried to update my antlr version to version 4.11.1 (originally I use 4.8) but it doesn't change anything.

For information, I use c++ 17, and this is my CMakeLists.txt :

project(Filc)

cmake_minimum_required(VERSION 3.10)

set(CMAKE_CXX_STANDARD 17)

set(antlr4-jar ${PROJECT_SOURCE_DIR}/bin/antlr-4.11.1-complete.jar)

set(antlr4-output
        ${PROJECT_SOURCE_DIR}/src/generated/FilLexer.cpp
        ${PROJECT_SOURCE_DIR}/src/generated/FilLexer.h
        ${PROJECT_SOURCE_DIR}/src/generated/FilParser.cpp
        ${PROJECT_SOURCE_DIR}/src/generated/FilParserBaseVisitor.cpp
        ${PROJECT_SOURCE_DIR}/src/generated/FilParserBaseVisitor.h
        ${PROJECT_SOURCE_DIR}/src/generated/FilParserVisitor.cpp
        ${PROJECT_SOURCE_DIR}/src/generated/FilParserVisitor.h
)

add_custom_target(GenerateLexerParser
        COMMAND java -jar ${antlr4-jar} -Dlanguage=Cpp -visitor -no-listener -o ${PROJECT_SOURCE_DIR}/src/generated/ -package antlrcppfil ${PROJECT_SOURCE_DIR}/src/antlr/FilLexer.g4 ${PROJECT_SOURCE_DIR}/src/antlr/FilParser.g4
        DEPENDS ${PROJECT_SOURCE_DIR}/src/antlr/FilLexer.g4 ${PROJECT_SOURCE_DIR}/src/antlr/FilParser.g4
)

include_directories(
        src
        src/generated
        src/utils
        antlr-runtime/src
)

add_executable(filc
        src/main.cpp
        src/utils/cxxopts.hpp
        src/generated/FilLexer.cpp
        src/generated/FilLexer.h
        src/generated/FilParser.cpp
        src/generated/FilParserBaseVisitor.cpp
        src/generated/FilParserBaseVisitor.h
        src/generated/FilParserVisitor.cpp
        src/generated/FilParserVisitor.h
)

add_dependencies(filc  GenerateLexerParser)

target_link_libraries(filc  antlr4-runtime.a)

install(TARGETS filc DESTINATION bin)

I've asked on stackoverflow and be redirected here.

Gashmob avatar Sep 08 '22 10:09 Gashmob

The generated snippet is correct.

There are a lot of dependencies that could be out of date (cmake, java, g++, make, etc), any of which could cause problems. Your CMakeList.txt doesn't look up to date. Make sure you copy the cmake directory and contents to your code.

ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated/build/antlr4cpp_generated_src/ANTLRv4Parser$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated/build/antlr4cpp_generated_src/ANTLRv4Parser$ cmake --version
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated$ make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated/build/antlr4cpp_generated_src/ANTLRv4Parser$ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated$ java --version
openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
ken@DESKTOP-DL44R7B:~/grammars-v4/antlr/antlr4/Generated$ cat CMakeLists.txt
# Template generated code from trgen 0.17.0

cmake_minimum_required (VERSION 3.14)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

set(CMAKE_CXX_STANDARD 17)
set(ANTLR_EXECUTABLE "/tmp/antlr4-4.11.1-complete.jar")
set(Java_JAVA_EXECUTABLE "java")
set(ANTLR4_TAG v4.11.1)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
#SET(GCC_COVERAGE_COMPILE_FLAGS "-g -pg")
#SET(GCC_COVERAGE_LINK_FLAGS    "-g -pg")
#SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
#SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")

add_definitions(-DANTLR4CPP_STATIC)

include(ExternalAntlr4Cpp)
include_directories(${ANTLR4_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/)
find_package(ANTLR REQUIRED)

antlr_target(
    ANTLRv4Lexer
    ANTLRv4Lexer.g4
    LEXER
    )
antlr_target(
    ANTLRv4Parser
    ANTLRv4Parser.g4
    PARSER
    DEPENDS_ANTLR ANTLRv4Lexer
    COMPILE_FLAGS -lib ${ANTLR_ANTLRv4Lexer_OUTPUT_DIR}
    )

include_directories(${ANTLR_ANTLRv4Lexer_OUTPUT_DIR})
include_directories(${ANTLR_ANTLRv4Parser_OUTPUT_DIR})

add_executable(Test
    Program.cpp
    ErrorListener.cpp
    ErrorListener.h
    CaseChangingCharStream.cpp
    CaseChangingCharStream.h
    /home/ken/grammars-v4/antlr/antlr4/Cpp/LexerAdaptor.cpp
${ANTLR_ANTLRv4Lexer_CXX_OUTPUTS}
    ${ANTLR_ANTLRv4Parser_CXX_OUTPUTS}
    )


target_link_libraries(Test antlr4_static Threads::Threads)

kaby76 avatar Sep 08 '22 15:09 kaby76

So, I've followed the instructions. There are the versions of each programm :

❯ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.3
Release:	20.3
Codename:	una
❯ cmake --version
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
❯ make --version
GNU Make 4.2.1
Construit pour x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>
Ceci est un logiciel libre : vous êtes autorisé à le modifier et à la redistribuer.
Il ne comporte AUCUNE GARANTIE, dans la mesure de ce que permet la loi.
❯ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

❯ java --version
openjdk 17.0.4 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-120.04, mixed mode, sharing)

This is my new cmake dir :

❯ ls cmake
antlr4-generator.cmake.in  antlr4-runtime.cmake.in  ExternalAntlr4Cpp.cmake  FindANTLR.cmake

This is my new CMakeLists.txt :

project(Filc)

# minimum required CMAKE version
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

# compiler must be 17
set(CMAKE_CXX_STANDARD 17)

# required if linking to static library
add_definitions(-DANTLR4CPP_STATIC)

# using /MD flag for antlr4_runtime (for Visual C++ compilers only)
set(ANTLR4_WITH_STATIC_CRT OFF)

# Specify the version of the antlr4 library needed for this project.
# By default the latest version of antlr4 will be used.  You can specify a
# specific, stable version by setting a repository tag value or a link
# to a zip file containing the libary source.
set(ANTLR4_TAG 4.11.1)
set(ANTLR4_ZIP_REPOSITORY https://github.com/antlr/antlr4/archive/refs/tags/4.11.1.zip)

# add external build for antlrcpp
include(ExternalAntlr4Cpp)
# add antlr4cpp artifacts to project environment
include_directories(${ANTLR4_INCLUDE_DIRS})

# set variable pointing to the antlr tool that supports C++
# this is not required if the jar file can be found under PATH environment
set(ANTLR_EXECUTABLE ${PROJECT_SOURCE_DIR}/bin/antlr-4.11.1-complete.jar)
# add macros to generate ANTLR Cpp code from grammar
find_package(ANTLR REQUIRED)

# Call macro to add lexer and grammar to your build dependencies.
antlr_target(Lexer ${PROJECT_SOURCE_DIR}/src/antlr/FilLexer.g4 LEXER
        PACKAGE antlrcppfil)
antlr_target(Parser ${PROJECT_SOURCE_DIR}/src/antlr/FilParser.g4 PARSER
        PACKAGE antlrcppfil
        DEPENDS_ANTLR Lexer
        COMPILE_FLAGS -lib ${ANTLR_Lexer_OUTPUT_DIR})

# include generated files in project environment
include_directories(${ANTLR_Lexer_OUTPUT_DIR})
include_directories(${ANTLR_Parser_OUTPUT_DIR})

include_directories(
        src
        src/utils
)

# add generated grammar to binary target
add_executable(filc
        src/main.cpp
        src/utils/cxxopts.hpp
        ${ANTLR_Lexer_CXX_OUTPUTS}
        ${ANTLR_Parser_CXX_OUTPUTS})
target_link_libraries(filc antlr4_static)

target_compile_options(filc PUBLIC -O3)

install(TARGETS filc DESTINATION bin)

And this is the result of make :

❯ make
Scanning dependencies of target antlr4_runtime
[  6%] Creating directories for 'antlr4_runtime'
[ 13%] Performing download step (download, verify and extract) for 'antlr4_runtime'
-- Downloading...
   dst='/home/kevin/DATA/Programmation/FIL/Filc/build/4.11.1.zip'
   timeout='none'
-- Using src='https://github.com/antlr/antlr4/archive/refs/tags/4.11.1.zip'
-- Downloading... done
-- extracting...
     src='/home/kevin/DATA/Programmation/FIL/Filc/build/4.11.1.zip'
     dst='/home/kevin/DATA/Programmation/FIL/Filc/build/antlr4_runtime/src/antlr4_runtime'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 20%] No patch step for 'antlr4_runtime'
[ 26%] No update step for 'antlr4_runtime'
[ 33%] Performing configure step for 'antlr4_runtime'
loading initial cache file /home/kevin/DATA/Programmation/FIL/Filc/build/antlr4_runtime/tmp/antlr4_runtime-cache-.cmake
-- Building without demo. To enable demo build use: -DWITH_DEMO=True
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kevin/DATA/Programmation/FIL/Filc/build/antlr4_runtime/src/antlr4_runtime/runtime/Cpp
[ 40%] No build step for 'antlr4_runtime'
[ 46%] No install step for 'antlr4_runtime'
[ 53%] Completed 'antlr4_runtime'
[ 53%] Built target antlr4_runtime
Scanning dependencies of target antlr4_runtime-build_static
[ 60%] Performing build_static step for 'antlr4_runtime'
Scanning dependencies of target antlr4_static
[  0%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ANTLRErrorListener.cpp.o
[  0%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ANTLRErrorStrategy.cpp.o
[  2%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ANTLRFileStream.cpp.o
[  2%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ANTLRInputStream.cpp.o
[  4%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/BailErrorStrategy.cpp.o
[  4%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/BaseErrorListener.cpp.o
[  4%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/BufferedTokenStream.cpp.o
[  6%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/CharStream.cpp.o
[  6%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/CommonToken.cpp.o
[  6%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/CommonTokenFactory.cpp.o
[  8%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/CommonTokenStream.cpp.o
[  8%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ConsoleErrorListener.cpp.o
[  8%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/DefaultErrorStrategy.cpp.o
[ 10%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/DiagnosticErrorListener.cpp.o
[ 10%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Exceptions.cpp.o
[ 10%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/FailedPredicateException.cpp.o
[ 12%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/InputMismatchException.cpp.o
[ 12%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/IntStream.cpp.o
[ 12%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/InterpreterRuleContext.cpp.o
[ 14%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Lexer.cpp.o
[ 14%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/LexerInterpreter.cpp.o
[ 14%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/LexerNoViableAltException.cpp.o
[ 16%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ListTokenSource.cpp.o
[ 16%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/NoViableAltException.cpp.o
[ 18%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Parser.cpp.o
[ 18%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ParserInterpreter.cpp.o
[ 18%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ParserRuleContext.cpp.o
[ 20%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/ProxyErrorListener.cpp.o
[ 20%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/RecognitionException.cpp.o
[ 20%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Recognizer.cpp.o
[ 22%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/RuleContext.cpp.o
[ 22%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/RuleContextWithAltNum.cpp.o
[ 22%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/RuntimeMetaData.cpp.o
[ 25%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Token.cpp.o
[ 25%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/TokenSource.cpp.o
[ 25%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/TokenStream.cpp.o
[ 27%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/TokenStreamRewriter.cpp.o
[ 27%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/UnbufferedCharStream.cpp.o
[ 27%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/UnbufferedTokenStream.cpp.o
[ 29%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/Vocabulary.cpp.o
[ 29%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/WritableToken.cpp.o
[ 31%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATN.cpp.o
[ 31%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNConfig.cpp.o
[ 31%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNConfigSet.cpp.o
[ 33%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNDeserializationOptions.cpp.o
[ 33%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNDeserializer.cpp.o
[ 33%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNSimulator.cpp.o
[ 35%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNState.cpp.o
[ 35%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ATNStateType.cpp.o
[ 35%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ActionTransition.cpp.o
[ 37%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/AmbiguityInfo.cpp.o
[ 37%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ArrayPredictionContext.cpp.o
[ 37%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/AtomTransition.cpp.o
[ 39%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ContextSensitivityInfo.cpp.o
[ 39%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/DecisionEventInfo.cpp.o
[ 39%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/DecisionInfo.cpp.o
[ 41%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/DecisionState.cpp.o
[ 41%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/EpsilonTransition.cpp.o
[ 43%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ErrorInfo.cpp.o
[ 43%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LL1Analyzer.cpp.o
[ 43%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerATNConfig.cpp.o
[ 45%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerATNSimulator.cpp.o
[ 45%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerAction.cpp.o
[ 45%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerActionExecutor.cpp.o
[ 47%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerChannelAction.cpp.o
[ 47%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerCustomAction.cpp.o
[ 47%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerIndexedCustomAction.cpp.o
[ 50%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerModeAction.cpp.o
[ 50%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerMoreAction.cpp.o
[ 50%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerPopModeAction.cpp.o
[ 52%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerPushModeAction.cpp.o
[ 52%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerSkipAction.cpp.o
[ 52%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LexerTypeAction.cpp.o
[ 54%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/LookaheadEventInfo.cpp.o
[ 54%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/NotSetTransition.cpp.o
[ 56%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/OrderedATNConfigSet.cpp.o
[ 56%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ParseInfo.cpp.o
[ 56%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ParserATNSimulator.cpp.o
[ 58%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PrecedencePredicateTransition.cpp.o
[ 58%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredicateEvalInfo.cpp.o
[ 58%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredicateTransition.cpp.o
[ 60%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredictionContext.cpp.o
[ 60%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredictionContextCache.cpp.o
[ 60%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredictionContextMergeCache.cpp.o
[ 62%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/PredictionMode.cpp.o
[ 62%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/ProfilingATNSimulator.cpp.o
[ 62%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/RangeTransition.cpp.o
[ 64%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/RuleTransition.cpp.o
[ 64%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/SemanticContext.cpp.o
[ 64%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/SetTransition.cpp.o
[ 66%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/SingletonPredictionContext.cpp.o
[ 66%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/StarLoopbackState.cpp.o
[ 66%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/Transition.cpp.o
[ 68%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/TransitionType.cpp.o
[ 68%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/atn/WildcardTransition.cpp.o
[ 70%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/dfa/DFA.cpp.o
[ 70%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/dfa/DFASerializer.cpp.o
[ 70%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/dfa/DFAState.cpp.o
[ 72%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/dfa/LexerDFASerializer.cpp.o
[ 72%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/internal/Synchronization.cpp.o
[ 72%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/misc/InterpreterDataReader.cpp.o
[ 75%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/misc/Interval.cpp.o
[ 75%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/misc/IntervalSet.cpp.o
[ 75%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/misc/MurmurHash.cpp.o
[ 77%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/misc/Predicate.cpp.o
[ 77%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/support/Any.cpp.o
[ 77%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/support/Arrays.cpp.o
[ 79%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/support/CPPUtils.cpp.o
[ 79%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/support/StringUtils.cpp.o
[ 79%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/support/Utf8.cpp.o
[ 81%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/ErrorNodeImpl.cpp.o
[ 81%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/IterativeParseTreeWalker.cpp.o
[ 83%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/ParseTree.cpp.o
[ 83%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/ParseTreeListener.cpp.o
[ 83%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/ParseTreeVisitor.cpp.o
[ 85%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/ParseTreeWalker.cpp.o
[ 85%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/TerminalNodeImpl.cpp.o
[ 85%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/Trees.cpp.o
[ 87%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/Chunk.cpp.o
[ 87%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/ParseTreeMatch.cpp.o
[ 87%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/ParseTreePattern.cpp.o
[ 89%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/ParseTreePatternMatcher.cpp.o
[ 89%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/RuleTagToken.cpp.o
[ 89%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/TagChunk.cpp.o
[ 91%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/TextChunk.cpp.o
[ 91%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/pattern/TokenTagToken.cpp.o
[ 91%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPath.cpp.o
[ 93%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathElement.cpp.o
[ 93%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathLexer.cpp.o
[ 95%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathLexerErrorListener.cpp.o
[ 95%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathRuleAnywhereElement.cpp.o
[ 95%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathRuleElement.cpp.o
[ 97%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathTokenAnywhereElement.cpp.o
[ 97%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathTokenElement.cpp.o
[ 97%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathWildcardAnywhereElement.cpp.o
[100%] Building CXX object runtime/CMakeFiles/antlr4_static.dir/src/tree/xpath/XPathWildcardElement.cpp.o
[100%] Linking CXX static library libantlr4-runtime.a
[100%] Built target antlr4_static
[ 60%] Built target antlr4_runtime-build_static
[ 66%] Building Lexer with ANTLR 4.11.1
[ 73%] Building Parser with ANTLR 4.11.1
Scanning dependencies of target filc
[ 80%] Building CXX object CMakeFiles/filc.dir/src/main.cpp.o
[ 86%] Building CXX object CMakeFiles/filc.dir/antlr4cpp_generated_src/FilLexer/FilLexer.cpp.o
[ 93%] Building CXX object CMakeFiles/filc.dir/antlr4cpp_generated_src/FilParser/FilParser.cpp.o
/home/kevin/DATA/Programmation/FIL/Filc/build/antlr4cpp_generated_src/FilParser/FilParser.cpp: In member function ‘antlrcppfil::FilParser::ExprContext* antlrcppfil::FilParser::expr(int)’:
/home/kevin/DATA/Programmation/FIL/Filc/build/antlr4cpp_generated_src/FilParser/FilParser.cpp:788:16: error: invalid use of member function ‘antlrcppfil::FilParser::ExceptionContext* antlrcppfil::FilParser::ExprContext::exception()’ (did you forget the ‘()’ ?)
  788 |     _localctx->exception = std::current_exception();
      |     ~~~~~~~~~~~^~~~~~~~~
      |                         ()
/home/kevin/DATA/Programmation/FIL/Filc/build/antlr4cpp_generated_src/FilParser/FilParser.cpp:789:43: error: invalid use of non-static member function ‘antlrcppfil::FilParser::ExceptionContext* antlrcppfil::FilParser::ExprContext::exception()’
  789 |     _errHandler->recover(this, _localctx->exception);
      |                                ~~~~~~~~~~~^~~~~~~~~
/home/kevin/DATA/Programmation/FIL/Filc/build/antlr4cpp_generated_src/FilParser/FilParser.cpp:474:30: note: declared here
  474 | FilParser::ExceptionContext* FilParser::ExprContext::exception() {
      |                              ^~~~~~~~~
make[2]: *** [CMakeFiles/filc.dir/build.make:120 : CMakeFiles/filc.dir/antlr4cpp_generated_src/FilParser/FilParser.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:79 : CMakeFiles/filc.dir/all] Erreur 2
make: *** [Makefile:130 : all] Erreur 2

So, I don't why, but it still doesn't works

Gashmob avatar Sep 09 '22 12:09 Gashmob

Ah. Check if you have a symbol called "exception" in your grammar somewhere. Looks like a "symbol conflict".

kaby76 avatar Sep 09 '22 12:09 kaby76

You're right, it's just that. I've already changed class, enum, null, but not think to exception. Thank you very much

Gashmob avatar Sep 09 '22 14:09 Gashmob

This issue should be reopened because we need to add "exception" to the list of escaped keywords. @KvanTTT

kaby76 avatar Sep 09 '22 18:09 kaby76

Agree.

KvanTTT avatar Sep 09 '22 18:09 KvanTTT