X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/442609f78b9211e29761d7fe877097ab3cd95bb0..51b2dc6b0c969f9297c8464cb91e93d65819e0ae:/Driver.hpp diff --git a/Driver.hpp b/Driver.hpp index 2a0955a..efd2bc6 100644 --- a/Driver.hpp +++ b/Driver.hpp @@ -29,7 +29,20 @@ #include #include "Location.hpp" -#include "Parser.hpp" +#include "Options.hpp" +#include "Pooling.hpp" +#include "Standard.hpp" + +struct CYClassTail; +struct CYExpression; +struct CYScript; +struct CYWord; + +enum CYMark { + CYMarkIgnore, + CYMarkScript, + CYMarkModule, +}; class _visible CYDriver { public: @@ -40,20 +53,25 @@ class _visible CYDriver { bool tail_; std::stack in_; + std::stack return_; + std::stack super_; std::stack template_; + std::stack yield_; + + std::stack class_; bool newline_; bool last_; bool next_; std::istream &data_; + CYMark mark_; int debug_; bool strict_; bool highlight_; enum Condition { - RegExpCondition, XMLContentCondition, XMLTagCondition, }; @@ -106,9 +124,10 @@ class _visible CYDriver { CYDriver(CYPool &pool, std::istream &data, const std::string &filename = ""); ~CYDriver(); - bool Parse(); + bool Parse(CYMark mark = CYMarkScript); void Replace(CYOptions &options); + void SetRegEx(bool equal); void SetCondition(Condition condition); void PushCondition(Condition condition);