]> git.saurik.com Git - cycript.git/blobdiff - E4X/Syntax.hpp
Mostly fixed the E4X situation, checkpointing for NoRE hell.
[cycript.git] / E4X / Syntax.hpp
index 84d23e24a7b2d71c3d0de5447bae2af915b138bb..9bec64d99958656daa3c37c362d7c2cb6a81e3ae 100644 (file)
@@ -1,4 +1,4 @@
-/* Cycript - Remote Execution Server and Disassembler
+/* Cycript - Inlining/Optimizing JavaScript Compiler
  * Copyright (C) 2009  Jay Freeman (saurik)
 */
 
@@ -56,4 +56,59 @@ struct CYDefaultXMLNamespace :
     virtual void Output(CYOutput &out, CYFlags flags) const;
 };
 
+struct CYPropertyIdentifier {
+};
+
+struct CYSelector
+{
+};
+
+struct CYWildcard :
+    CYPropertyIdentifier,
+    CYSelector
+{
+    virtual CYExpression *Replace(CYContext &context);
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYQualified :
+    CYPropertyIdentifier
+{
+    CYSelector *namespace_;
+    CYSelector *name_;
+
+    CYQualified(CYSelector *_namespace, CYSelector *name) :
+        namespace_(_namespace),
+        name_(name)
+    {
+    }
+};
+
+struct CYPropertyVariable :
+    CYExpression
+{
+    CYPropertyIdentifier *identifier_;
+
+    CYPropertyVariable(CYPropertyIdentifier *identifier) :
+        identifier_(identifier)
+    {
+    }
+
+    CYPrecedence(0)
+
+    virtual CYExpression *Replace(CYContext &context);
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYAttribute :
+    CYPropertyIdentifier
+{
+    CYQualified *identifier_;
+
+    CYAttribute(CYQualified *identifier) :
+        identifier_(identifier)
+    {
+    }
+};
+
 #endif/*CYCRIPT_E4X_SYNTAX_HPP*/