X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/3ea7eed0e5ab3447a2cc73016594971b507a2344..e06e5ee1f12b9b79b34570e65c1f5e9c12b9b8c3:/Parser.hpp diff --git a/Parser.hpp b/Parser.hpp index d809e77..7197428 100644 --- a/Parser.hpp +++ b/Parser.hpp @@ -1,5 +1,5 @@ /* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2010 Jay Freeman (saurik) + * Copyright (C) 2009-2012 Jay Freeman (saurik) */ /* GNU Lesser General Public License, Version 3 {{{ */ @@ -451,7 +451,7 @@ class CYDriver { void *scanner_; CYState state_; - bool statement_; + bool nobrace_; std::stack in_; const char *data_; @@ -627,6 +627,8 @@ struct CYCompound : virtual CYExpression *Replace(CYContext &context); void Output(CYOutput &out, CYFlags flags) const; + + virtual CYExpression *Primitive(CYContext &context); }; struct CYDeclaration; @@ -680,13 +682,13 @@ struct CYForInComprehension : virtual void Output(CYOutput &out) const; }; -struct CYForEachInComprehension : +struct CYForOfComprehension : CYComprehension { CYIdentifier *name_; CYExpression *set_; - CYForEachInComprehension(CYIdentifier *name, CYExpression *set) : + CYForOfComprehension(CYIdentifier *name, CYExpression *set) : name_(name), set_(set) { @@ -1268,14 +1270,14 @@ struct CYForIn : virtual void Output(CYOutput &out, CYFlags flags) const; }; -struct CYForEachIn : +struct CYForOf : CYStatement { CYForInInitialiser *initialiser_; CYExpression *set_; CYStatement *code_; - CYForEachIn(CYForInInitialiser *initialiser, CYExpression *set, CYStatement *code) : + CYForOf(CYForInInitialiser *initialiser, CYExpression *set, CYStatement *code) : initialiser_(initialiser), set_(set), code_(code)