X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/a4dbf05b95779412f4f4036dad4e4ddcdd9b40f1..a3f4a8e1ba1a704df8178f48f4d689adc1be51ed:/Parser.hpp diff --git a/Parser.hpp b/Parser.hpp index f48e81b..a994ead 100644 --- a/Parser.hpp +++ b/Parser.hpp @@ -453,12 +453,39 @@ class CYDriver { CYProgram *program_; Errors errors_; + bool auto_; + + struct Context { + CYExpression *context_; + + Context(CYExpression *context) : + context_(context) + { + } + + typedef std::vector Words; + Words words_; + }; + + typedef std::vector Contexts; + Contexts contexts_; + + CYExpression *context_; + + enum Mode { + AutoNone, + AutoPrimary, + AutoDirect, + AutoIndirect, + AutoMessage + } mode_; + private: void ScannerInit(); void ScannerDestroy(); public: - CYDriver(const std::string &filename); + CYDriver(apr_pool_t *pool = NULL, const std::string &filename = ""); ~CYDriver(); Condition GetCondition();