class krySSACommandParser { public: virtual ~krySSACommandParser() {}; void ParseCommandIntoParameters(kryString & cmd, kryArray ¶ms, kryArray ¶m_offsets, int offset); void ParseParameterList(kryString & str, kryArray & params, kryArray ¶m_offsets, int offset); void ParseSSATag(kryString str, int offset = 0, gboolean in_parenthesis = FALSE); void ParseSubtitleString(kryString str); virtual void OnString(kryString & str, int offset) {} virtual void OnCommandGroupStart(kryString str, int offset) {} virtual void OnCommandGroupEnd(kryString str, int offset) {} virtual void OnCommandParameterStart(kryString str) {} virtual void OnCommandParameterEnd(kryString str) {} virtual void OnCommandParameter(kryString &str) {} virtual void OnCommandParameterSeparator(kryString str) {} virtual void OnCommandUnparsed(kryString & str) {}; virtual void OnCommandText(kryString & str) {}; virtual void OnCommandEnd() {}; virtual void OnCommand(kryString &cmd, int offset, int length, kryArray ¶ms, kryArray ¶m_offsets) {}; };