#pragma once #include class OscirenderAudioProcessor; class TextParser { public: TextParser(OscirenderAudioProcessor &p, juce::String text, juce::Font font); ~TextParser(); std::vector> draw(); private: void parse(juce::String text, juce::Font font); juce::AttributedString parseFormattedText(const juce::String& text, juce::Font font); void processFormattedTextBody(const juce::String& text, juce::AttributedString& result, juce::Font font); OscirenderAudioProcessor &audioProcessor; std::vector> shapes; juce::Font lastFont; juce::String text; juce::AttributedString attributedString; };