]> git.saurik.com Git - cycript.git/blobdiff - Cycript.yy.in
Replace the svnversion mechanism with git describe.
[cycript.git] / Cycript.yy.in
index 22a601ad8aaa4f0a1304130a9c6ee3dfbbf2bd21..f289f76773bae1461946a4ed57664b23a1be4c35 100644 (file)
@@ -437,8 +437,10 @@ int cylex(YYSTYPE *, cy::location *, void *);
 %type <infix_> RelationalExpressionNoIn_
 %type <statement_> ReturnStatement
 %type <rubyProc_> RubyProcExpression
+%type <rubyProc_> RubyProcExpressionNoOA
 %type <functionParameter_> RubyProcParameterList
 %type <functionParameter_> RubyProcParameterList_
+%type <functionParameter_> RubyProcParameters
 %type <functionParameter_> RubyProcParametersOpt
 %type <expression_> ShiftExpression
 %type <expression_> ShiftExpressionNoBF
@@ -759,7 +761,7 @@ ElementList
 /* }}} */
 /* 11.1.5 Object Initialiser {{{ */
 ObjectLiteral
-    : OpenBrace PropertyNameAndValueListOpt "}" { $$ = CYNew CYObject($2); }
+    : Brace PropertyNameAndValueListOpt "}" { $$ = CYNew CYObject($2); }
     ;
 
 PropertyNameAndValueList_
@@ -1592,7 +1594,7 @@ ClassStatement
     ;
 
 CategoryName
-    : "(" Word ")"
+    : "(" WordOpt ")"
     ;
 
 CategoryStatement
@@ -1937,8 +1939,13 @@ RubyProcParameterList
     | { $$ = NULL; }
     ;
 
-RubyProcParametersOpt
+RubyProcParameters
     : "|" RubyProcParameterList "|" { $$ = $2; }
+    | "||" { $$ = NULL; }
+    ;
+
+RubyProcParametersOpt
+    : RubyProcParameters
     | { $$ = NULL; }
     ;
 
@@ -1946,6 +1953,14 @@ RubyProcExpression
     : "{" RubyProcParametersOpt StatementListOpt "}" { $$ = CYNew CYRubyProc($2, $3); }
     ;
 
+RubyProcExpressionNoOA
+    : "{" RubyProcParameters StatementListOpt "}" { $$ = CYNew CYRubyProc($2, $3); }
+    ;
+
+PrimaryExpressionNo
+    : RubyProcExpressionNoOA { $$ = $1; }
+    ;
+
 LeftHandSideExpression
     : LeftHandSideExpression RubyProcExpression { $$ = CYNew CYRubyBlock($1, $2); }
     ;