xref: /llvm-project/flang/lib/Parser/char-set.cpp (revision b98ad941a40c96c841bceb171725c925500fce6c)
164ab3302SCarolineConcatto //===-- lib/Parser/char-set.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 "flang/Parser/char-set.h"
1064ab3302SCarolineConcatto 
1164ab3302SCarolineConcatto namespace Fortran::parser {
1264ab3302SCarolineConcatto 
ToString() const1364ab3302SCarolineConcatto std::string SetOfChars::ToString() const {
1464ab3302SCarolineConcatto   std::string result;
1564ab3302SCarolineConcatto   SetOfChars set{*this};
1664ab3302SCarolineConcatto   for (char ch{' '}; !set.empty(); ++ch) {
1764ab3302SCarolineConcatto     if (set.Has(ch)) {
1864ab3302SCarolineConcatto       set = set.Difference(ch);
1964ab3302SCarolineConcatto       result += ch;
2064ab3302SCarolineConcatto     }
2164ab3302SCarolineConcatto   }
2264ab3302SCarolineConcatto   return result;
2364ab3302SCarolineConcatto }
24*1f879005STim Keith } // namespace Fortran::parser
25