diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp index b713ae67c32644d43116adc4161e2baeffd28930..86389a32f0ec313a00b416f233ff695bd3a21767 100644 --- a/libwccl/parser/Parser.cpp +++ b/libwccl/parser/Parser.cpp @@ -4,6 +4,7 @@ #include <antlr/NoViableAltException.hpp> #include <antlr/MismatchedTokenException.hpp> +#include <antlr/TokenStreamRecognitionException.hpp> namespace Wccl { @@ -190,6 +191,11 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator( << "(as tset ) " << e.getFileLineColumnString() << " " << e.getMessage(); + } catch(antlr::TokenStreamRecognitionException &e) { + errors << std::endl + << "(as tset ) " + << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage(); } catch (antlr::ANTLRException& e) { errors << std::endl << "(as tset ) " << e.getMessage(); @@ -213,6 +219,11 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator( << "(as strset ) " << e.getFileLineColumnString() << " " << e.getMessage(); + } catch(antlr::TokenStreamRecognitionException &e) { + errors << std::endl + << "(as strset ) " + << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage(); } catch (antlr::ANTLRException& e) { errors << std::endl << "(as strset ) " << e.getMessage(); @@ -236,6 +247,11 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator( << "(as bool ) " << e.getFileLineColumnString() << " " << e.getMessage(); + } catch(antlr::TokenStreamRecognitionException &e) { + errors << std::endl + << "(as bool ) " + << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage(); } catch (antlr::ANTLRException& e) { errors << std::endl << "(as bool ) " << e.getMessage(); @@ -254,6 +270,11 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator( << "(as position) " << e.getFileLineColumnString() << " " << e.getMessage() << std::endl; + } catch(antlr::TokenStreamRecognitionException &e) { + errors << std::endl + << "(as position) " + << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage(); } catch(antlr::NoViableAltException &e) { errors << std::endl << "(as position) " diff --git a/wcclparser/bool_main.cpp b/wcclparser/bool_main.cpp index c1570b0192c50eeb7b63dc657797a782d51b54a4..05c842797d63463530c98d4bcd7bbd73253ea714 100644 --- a/wcclparser/bool_main.cpp +++ b/wcclparser/bool_main.cpp @@ -2,8 +2,10 @@ #include <libwccl/values/bool.h> #include <libwccl/parser/Parser.h> #include <libwccl/parser/ANTLRParserResult.h> + #include <antlr/NoViableAltException.hpp> #include <antlr/MismatchedTokenException.hpp> +#include <antlr/TokenStreamRecognitionException.hpp> // ---------------------------------------------------------------------------- @@ -68,11 +70,15 @@ int main() } catch(antlr::NoViableAltException &e) { std::cerr << e.getFileLineColumnString() << " " << e.getMessage() << std::endl; + } catch(antlr::TokenStreamRecognitionException &e) { + std::cerr << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage() << std::endl; } catch (Wccl::InvalidVariableName &e) { std::cerr << "Wccl::InvalidVariableName" << std::endl; } catch (Wccl::VariableTypeMismatch &e) { std::cerr << "Wccl::VariableTypeMismatch" << std::endl; - } catch (...) { + } + catch (...) { std::cerr << "[N] Syntax error!" << std::endl; } } diff --git a/wcclparser/strop_main.cpp b/wcclparser/strop_main.cpp index 13be60bd501fb89d186cdf3eb22b8f514ad2467f..aaf4c97f401a4113af38a9892c7285f1dbb54f59 100644 --- a/wcclparser/strop_main.cpp +++ b/wcclparser/strop_main.cpp @@ -4,6 +4,7 @@ #include <libwccl/parser/ANTLRParserResult.h> #include <antlr/NoViableAltException.hpp> #include <antlr/MismatchedTokenException.hpp> +#include <antlr/TokenStreamRecognitionException.hpp> // ---------------------------------------------------------------------------- @@ -67,6 +68,9 @@ int main() } catch(antlr::NoViableAltException &e) { std::cerr << e.getFileLineColumnString() << " " << e.getMessage() << std::endl; + } catch(antlr::TokenStreamRecognitionException &e) { + std::cerr << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage() << std::endl; } catch (Wccl::InvalidVariableName &e) { std::cerr << "Wccl::InvalidVariableName" << std::endl; } catch (Wccl::VariableTypeMismatch &e) { diff --git a/wcclparser/tagset_main.cpp b/wcclparser/tagset_main.cpp index ddfaaa49af18a7f0eb313866e500b4f4f2ca5fc9..94f84f9bef84294f45e86595f28fb3a80ec1f614 100644 --- a/wcclparser/tagset_main.cpp +++ b/wcclparser/tagset_main.cpp @@ -4,6 +4,7 @@ #include <libwccl/parser/ANTLRParserResult.h> #include <antlr/NoViableAltException.hpp> #include <antlr/MismatchedTokenException.hpp> +#include <antlr/TokenStreamRecognitionException.hpp> #include <libcorpus2/tagsetmanager.h> @@ -69,6 +70,9 @@ int main() } catch(antlr::NoViableAltException &e) { std::cerr << e.getFileLineColumnString() << " " << e.getMessage() << std::endl; + } catch(antlr::TokenStreamRecognitionException &e) { + std::cerr << e.getLine() << ":" << e.getColumn() + << " " << e.getMessage() << std::endl; } catch (Wccl::InvalidVariableName &e) { std::cerr << "Wccl::InvalidVariableName" << std::endl; } catch (Wccl::VariableTypeMismatch &e) {