X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/8a392978b2d6e7db62cdf6d576e071d70fef9b94..bf998c10baabbd95f2d59d29f9edea0eb107b156:/Driver.hpp diff --git a/Driver.hpp b/Driver.hpp index fbc96d9..adb03f2 100644 --- a/Driver.hpp +++ b/Driver.hpp @@ -33,12 +33,12 @@ #include "Pooling.hpp" #include "Standard.hpp" +struct CYClassTail; struct CYExpression; struct CYScript; struct CYWord; enum CYMark { - CYMarkIgnore, CYMarkScript, CYMarkModule, }; @@ -53,22 +53,24 @@ class _visible CYDriver { std::stack in_; std::stack return_; + std::stack super_; std::stack template_; std::stack yield_; + std::stack class_; + + CYMark mark_; + int hold_; bool newline_; bool last_; - bool next_; - std::istream &data_; - CYMark mark_; + std::streambuf &data_; int debug_; bool strict_; bool highlight_; enum Condition { - RegExpCondition, XMLContentCondition, XMLTagCondition, }; @@ -118,12 +120,13 @@ class _visible CYDriver { void ScannerDestroy(); public: - CYDriver(CYPool &pool, std::istream &data, const std::string &filename = ""); + CYDriver(CYPool &pool, std::streambuf &data, const std::string &filename = ""); ~CYDriver(); - bool Parse(CYMark mark = CYMarkScript); + bool Parse(CYMark mark = CYMarkModule); void Replace(CYOptions &options); + void SetRegEx(bool equal); void SetCondition(Condition condition); void PushCondition(Condition condition);