]> git.saurik.com Git - cycript.git/commitdiff
Remove CYDriver::statement_: we always have lookahead.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 6 Jun 2012 21:00:59 +0000 (14:00 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 6 Jun 2012 21:00:59 +0000 (14:00 -0700)
Cycript.l.in
Cycript.yy.in
Parser.cpp
Parser.hpp

index e109ca99a44be5704fd0f933c1c0097f1258ea31..b53159c0dffe45aeac9b77fdd2fcebc38cf63dde 100644 (file)
@@ -30,7 +30,6 @@ typedef cy::parser::token tk;
 
 #define F(value) do { \
     int token(value); \
-    yyextra->statement_ = false; \
     return token; \
 } while (false)
 
@@ -238,7 +237,7 @@ XMLName {XMLNameStart}{XMLNamePart}*
 "("    L C F(tk::OpenParen);
 ")"    L C F(tk::CloseParen);
 
-"{"    L C F(yyextra->statement_ ? tk::OpenBrace__ : yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
+"{"    L C F(yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
 "}"    L C F(tk::CloseBrace);
 
 "["    L C F(tk::OpenBracket);
@@ -250,7 +249,7 @@ XMLName {XMLNameStart}{XMLNamePart}*
 
 @begin ObjectiveC
 "@end"            L C F(tk::AtEnd);
-"@implementation" L C F(yyextra->statement_ ? tk::AtImplementation_ : tk::AtImplementation);
+"@implementation" L C F(tk::AtImplementation);
 "@import"         L C F(tk::AtImport);
 "@selector"       L C F(tk::AtSelector);
 @end
@@ -269,7 +268,7 @@ XMLName {XMLNameStart}{XMLNamePart}*
 "else"         L C I(word, Word("else"), tk::Else);
 "finally"      L C I(word, Word("finally"), tk::Finally);
 "for"          L C I(word, Word("for"), tk::For);
-"function"     L C I(word, Word("function"), yyextra->statement_ ? tk::Function_ : tk::Function);
+"function"     L C I(word, Word("function"), tk::Function);
 "if"           L C I(word, Word("if"), tk::If);
 "in"           L C I(word, Word("in"), yyextra->in_.top() ? tk::In_ : tk::In);
 "instanceof"   L C I(word, Word("instanceof"), tk::InstanceOf);
index 803cffb94f6ae39eeed1a15064a1487e5b8ac895..f65cfd518d205c1f8898eda6996ab97b39d4cdba 100644 (file)
@@ -525,20 +525,16 @@ LexSetRegExp
     ;
 
 LexSetStatement
-    : {
-        if (yychar == 0)
-            driver.statement_ = true;
-        else switch (yychar) {
-            case token::Function:
-                yychar = token::Function_;
-            break;
-
-            case token::OpenBrace:
-            case token::OpenBrace_:
-                yychar = token::OpenBrace__;
-            break;
-        }
-    }
+    : { switch (yychar) {
+        case token::Function:
+            yychar = token::Function_;
+        break;
+
+        case token::OpenBrace:
+        case token::OpenBrace_:
+            yychar = token::OpenBrace__;
+        break;
+    } }
     ;
 /* }}} */
 
index 2e951f32687dfe507eb2a1bf5f00c457cb46705f..fae6bf373dfb5c2006213a127d3c1c3e93db4b48 100644 (file)
@@ -28,7 +28,6 @@ CYRange WordEndRange_  (0x3ff001000000000LLU, 0x7fffffe87fffffeLLU); // A-Za-z_$
 
 CYDriver::CYDriver(const std::string &filename) :
     state_(CYClear),
-    statement_(false),
     data_(NULL),
     size_(0),
     file_(NULL),
index d809e770f5e54ee4e62d6cf5bb765f0da28ca44a..53320a3c96c145f0b012618c43b0cb9012405d8e 100644 (file)
@@ -451,7 +451,6 @@ class CYDriver {
     void *scanner_;
 
     CYState state_;
-    bool statement_;
     std::stack<bool> in_;
 
     const char *data_;