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) const1564ab3302SCarolineConcattostd::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