             ]
           }
     
-
+    # normalize ::this selector
+    
+    target = {
+        commands: [
+          ['eq', ['get$','width',['$reserved','this']],    ['get$','x',['$reserved','this']]]
+          ['eq', ['get$','x',['$reserved','this']],        ['get$','y',['$reserved','this']]]
+        ]
+      }
+    
+    parse """
+            ::[width] == ::this[x] == &[y]
+          """
+        , target
+        
+    parse """
+            /* parans ignored */
+            (::)[width] == (::this)[x] == (&)[y]
+          """
+        , target
+    
 
 
   # Virtual Elements

            ]
          }
    ###

  ###
  describe '/ contextual ::this iterators /', ->

    parse """
            .node[height] >= .node(.inports)[height];
            .box {
              width: == ::this(.header)[width];
            }
          """
        ,
          {
            commands: [
              ['var','.box[width]', 'width', ['$class', 'box']]
              ['var','.box(.header)[width]', 'width', ['$class', 'header', ['$class', 'box']]]
              ['foreach', ['$class', 'box'],
              ['var','#box[intrinsic-width]', 'intrinsic-width', ['$id', 'box']]
              ['eq',['get','#box[width]','#box'],['get','#box[intrinsic-width]','#box']]
              ['var','[grid-col-width]']
              ['eq',['get','[grid-col-width]'],['get','#box[intrinsic-width]','#box']]
            ]
          }
  ###

  # 2D
  # ====================================================================

            }
  
  
  describe '/* Parans */', ->        
    
    
    parse """
            /* paran craziness */
            ((((#box1)[width]) + (("area")[width]))) == ((((#box2)[width]) + ((::window)[width])));
          """
        ,
          {
            commands: [
              ['eq', 
                ['plus',['get$', 'width', ['$id', 'box1']], ['get$', 'width', ['$virtual', 'area']]], 
                ['plus',['get$', 'width', ['$id', 'box2']], ['get$', 'width', ['$reserved', 'window']]], 
              ]
            ]
          }
    
    #parse """
    #        /* 2D expressions w/ paran craziness */
    #        ((((#box1)[size]) + (("area")[size]))) == ((((#box2)[size]) + ((::window)[size])));
    #      """
    #    ,
    #      {
    #        commands: [
    #          ['eq', 
    #            ['plus',['get$', 'width', ['$id', 'box1']], ['get$', 'width', ['$virtual', 'area']]], 
    #            ['plus',['get$', 'width', ['$id', 'box2']], ['get$', 'width', ['$reserved', 'window']]], 
    #          ],
    #          ['eq', 
    #            ['plus',['get$', 'height', ['$id', 'box1']], ['get$', 'height', ['$virtual', 'area']]], 
    #            ['plus',['get$', 'height', ['$id', 'box2']], ['get$', 'height', ['$reserved', 'window']]], 
    #          ]
    #        ]
    #      }