]> git.saurik.com Git - cycript.git/blobdiff - Parser.hpp
CYDisplay{Start,Finish} obsolete by rl_redisplay.
[cycript.git] / Parser.hpp
index e120123696694e0d0fcfe243452b6cc2ac0cc92e..be97c0b49d09d91f1abdcd993adc2f4d76f114e7 100644 (file)
@@ -1670,7 +1670,8 @@ struct CYTypeVariable :
 };
 
 struct CYTypedIdentifier :
-    CYNext<CYTypedIdentifier>
+    CYNext<CYTypedIdentifier>,
+    CYThing
 {
     CYIdentifier *identifier_;
     CYTypeModifier *type_;
@@ -1680,6 +1681,8 @@ struct CYTypedIdentifier :
         type_(NULL)
     {
     }
+
+    virtual void Output(CYOutput &out) const;
 };
 
 struct CYTypedParameter :
@@ -1693,6 +1696,7 @@ struct CYTypedParameter :
     {
     }
 
+    CYArgument *Argument(CYContext &context);
     CYFunctionParameter *Parameters(CYContext &context);
     CYExpression *TypeSignature(CYContext &context, CYExpression *prefix);
 };
@@ -1717,6 +1721,36 @@ struct CYLambda :
     virtual void Output(CYOutput &out, CYFlags flags) const;
 };
 
+struct CYTypeDefinition :
+    CYStatement
+{
+    CYTypedIdentifier *typed_;
+
+    CYTypeDefinition(CYTypedIdentifier *typed) :
+        typed_(typed)
+    {
+    }
+
+    virtual CYStatement *Replace(CYContext &context);
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYTypeFunctionWith :
+    CYTypeModifier
+{
+    CYTypedParameter *parameters_;
+
+    CYTypeFunctionWith(CYTypedParameter *parameters, CYTypeModifier *next = NULL) :
+        CYTypeModifier(next),
+        parameters_(parameters)
+    {
+    }
+
+    CYPrecedence(2)
+
+    virtual CYExpression *Replace(CYContext &context);
+};
+
 namespace cy {
 namespace Syntax {