#include "Location.hpp"
#include "Parser.hpp"
+enum CYMark {
+ CYMarkIgnore,
+ CYMarkScript,
+ CYMarkModule,
+};
+
class _visible CYDriver {
public:
CYPool &pool_;
void *scanner_;
+ std::vector<char> buffer_;
+ bool tail_;
+
std::stack<bool> in_;
+ std::stack<bool> return_;
+ std::stack<bool> template_;
+ std::stack<bool> yield_;
bool newline_;
bool last_;
-
- struct {
- bool AtImplementation;
- bool Class;
- bool Function;
- bool OpenBrace;
- bool NewLine;
- } no_;
+ bool next_;
std::istream &data_;
+ CYMark mark_;
int debug_;
bool strict_;
- bool commented_;
+ bool highlight_;
enum Condition {
RegExpCondition,
CYDriver(CYPool &pool, std::istream &data, const std::string &filename = "");
~CYDriver();
- bool Parse();
+ bool Parse(CYMark mark = CYMarkScript);
void Replace(CYOptions &options);
- Condition GetCondition();
void SetCondition(Condition condition);
void PushCondition(Condition condition);