]> git.saurik.com Git - cycript.git/blobdiff - Syntax.hpp
Add __proto__ as token, only for syntax highlight.
[cycript.git] / Syntax.hpp
index d7d783bc3ecc1eca07dd1bdd71b24168c1bc397b..cb39f405cff53fbdd27da9f67fed5111ab592a9e 100644 (file)
@@ -1090,7 +1090,7 @@ struct CYElementValue :
 {
     CYExpression *value_;
 
-    CYElementValue(CYExpression *value, CYElement *next) :
+    CYElementValue(CYExpression *value, CYElement *next = NULL) :
         CYNext<CYElement>(next),
         value_(value)
     {
@@ -2256,6 +2256,22 @@ struct CYExternal :
     virtual void Output(CYOutput &out, CYFlags flags) const;
 };
 
+struct CYTypeExpression :
+    CYTarget
+{
+    CYTypedIdentifier *typed_;
+
+    CYTypeExpression(CYTypedIdentifier *typed) :
+        typed_(typed)
+    {
+    }
+
+    CYPrecedence(0)
+
+    virtual CYTarget *Replace(CYContext &context);
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
 struct CYTypeDefinition :
     CYStatement
 {
@@ -2308,6 +2324,34 @@ struct CYTypeFunctionWith :
     virtual CYTypeFunctionWith *Function() { return this; }
 };
 
+struct CYTypeStructField :
+    CYNext<CYTypeStructField>
+{
+    CYTypedIdentifier *typed_;
+
+    CYTypeStructField(CYTypedIdentifier *typed, CYTypeStructField *next = NULL) :
+        CYNext<CYTypeStructField>(next),
+        typed_(typed)
+    {
+    }
+};
+
+struct CYTypeStruct :
+    CYTypeSpecifier
+{
+    CYIdentifier *name_;
+    CYTypeStructField *fields_;
+
+    CYTypeStruct(CYIdentifier *name, CYTypeStructField *fields) :
+        name_(name),
+        fields_(fields)
+    {
+    }
+
+    virtual CYTarget *Replace(CYContext &context);
+    virtual void Output(CYOutput &out) const;
+};
+
 namespace cy {
 namespace Syntax {