public static function resolveExpression($expression)
 {
     $expression = trim($expression);
     $matched_subexpression = array();
     if (preg_match('/^\\{\\$([^\\}]+)\\}$/', $expression, $matched_subexpression)) {
         $subexpression = trim($matched_subexpression[1]);
         $matched_subexpression_components = array();
         if (preg_match('/^([^\\.]+)\\.(.+)$/', $subexpression, $matched_subexpression_components)) {
             $scope_name = $matched_subexpression_components[1];
             $attribute = $matched_subexpression_components[2];
             $return_value = new __FlowAttribute();
             $scope = self::resolveScope($scope_name);
             $return_value->setScope($scope);
             $return_value->setAttribute($attribute);
         }
     } else {
         $return_value = $expression;
     }
     return $return_value;
 }
 protected function _parseAttribute(__ConfigurationSection &$flow_section)
 {
     $attribute = new __FlowAttribute();
     if ($flow_section->hasAttribute('attribute') && $flow_section->hasAttribute('scope')) {
         $flow_attribute = new __FlowAttribute();
         $flow_attribute->setAttribute($flow_section->getAttribute('attribute'));
         $scope = __WebflowExpressionHelper::resolveScope($flow_section->getAttribute('scope'));
         $flow_attribute->setScope($scope);
         $attribute->setAttribute($flow_attribute);
     }
     if ($flow_section->hasAttribute('value')) {
         $value = __WebflowExpressionHelper::resolveExpression($flow_section->getAttribute('value'));
         $attribute->setValue($value);
     }
     return $attribute;
 }