]> git.saurik.com Git - cycript.git/commitdiff
Avoid ECMAScript6 conflicts with RubyBlock syntax.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 2 Dec 2015 00:44:37 +0000 (16:44 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 2 Dec 2015 00:44:37 +0000 (16:44 -0800)
Cycript.yy.in

index f025f6a20da41b37ec31476617a7f917fdf045eb..1ff67360afe30c12c004f7fafd0c051c8a3374e5 100644 (file)
@@ -576,7 +576,7 @@ _finline int yylex(cy::parser::semantic_type *semantic, CYLocation *location, vo
 /* }}} */
 /* Token Priorities {{{ */
 %nonassoc ""
 /* }}} */
 /* Token Priorities {{{ */
 %nonassoc ""
-%left "++" "--"
+%left "++" "--" "{"
 
 %nonassoc "if"
 %nonassoc "else"
 
 %nonassoc "if"
 %nonassoc "else"
@@ -1990,12 +1990,12 @@ RubyProcParameterList
     ;
 
 RubyProcParameters
     ;
 
 RubyProcParameters
-    : "|" RubyProcParameterList "|" { $$ = $2; }
-    | "||" { $$ = NULL; }
+    : LexSetRegExp "|" RubyProcParameterList "|" { $$ = $3; }
+    | LexSetRegExp "||" { $$ = NULL; }
     ;
 
 RubyProcParametersOpt
     ;
 
 RubyProcParametersOpt
-    : RubyProcParameters
+    : RubyProcParameters { $$ = $1; }
     | { $$ = NULL; }
     ;
 
     | { $$ = NULL; }
     ;
 
@@ -2004,11 +2004,11 @@ RubyProcExpression
     ;
 
 PrimaryExpression
     ;
 
 PrimaryExpression
-    : "{" LexPushInOff RubyProcParameters StatementListOpt "}" LexPopIn { $$ = CYNew CYRubyProc($3, $4); }
+    : BRACE LexPushInOff RubyProcParameters StatementListOpt "}" LexPopIn { $$ = CYNew CYRubyProc($3, $4); }
     ;
 
     ;
 
-CallExpression
-    : CallExpression_ RubyProcExpression { $$ = CYNew CYRubyBlock($1, $2); }
+PostfixExpression
+    : LeftHandSideExpression RubyProcExpression { $$ = CYNew CYRubyBlock($1, $2); }
     ;
 /* }}} */
 
     ;
 /* }}} */