xref: /llvm-project/flang/lib/Parser/debug-parser.cpp (revision 92a541978618674ce112b2f500853218fed24db8)
164ab3302SCarolineConcatto //===-- lib/Parser/debug-parser.cpp ---------------------------------------===//
264ab3302SCarolineConcatto //
364ab3302SCarolineConcatto // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
464ab3302SCarolineConcatto // See https://llvm.org/LICENSE.txt for license information.
564ab3302SCarolineConcatto // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
664ab3302SCarolineConcatto //
764ab3302SCarolineConcatto //===----------------------------------------------------------------------===//
864ab3302SCarolineConcatto 
964ab3302SCarolineConcatto #include "debug-parser.h"
1064ab3302SCarolineConcatto #include "flang/Parser/user-state.h"
1164ab3302SCarolineConcatto #include <string>
1264ab3302SCarolineConcatto 
1364ab3302SCarolineConcatto namespace Fortran::parser {
1464ab3302SCarolineConcatto 
Parse(ParseState & state) const1564ab3302SCarolineConcatto std::optional<Success> DebugParser::Parse(ParseState &state) const {
1664ab3302SCarolineConcatto   if (auto ustate{state.userState()}) {
1764ab3302SCarolineConcatto     if (auto out{ustate->debugOutput()}) {
1864ab3302SCarolineConcatto       std::string note{str_, length_};
1964ab3302SCarolineConcatto       Message message{state.GetLocation(), "parser debug: %s"_en_US, note};
2064ab3302SCarolineConcatto       message.SetContext(state.context().get());
21*92a54197Speter klausler       message.Emit(*out, ustate->allCooked(), true);
2264ab3302SCarolineConcatto     }
2364ab3302SCarolineConcatto   }
24*92a54197Speter klausler   return Success{};
2564ab3302SCarolineConcatto }
261f879005STim Keith } // namespace Fortran::parser
27