code: function integrateProp(aNode, name, value, options) {
      // parse two way binding, e.g. value="{=ident=}"
      var xMatch = value.match(/^\{=\s*(.*?)\s*=\}$/);
  
      if (xMatch) {
          aNode.props.push({
              name: name,
              expr: parseExpr(xMatch[1]),
              x: 1,
              raw: value
          });
  
          return;
      }
  
      // parse normal prop
      var prop = {
          name: name,
          expr: parseText(value, options.delimiters),
          raw: value
      };
  
      // 这里不能把只有一个插值的属性抽取
      // 因为插值里的值可能是html片段，容易被注入
      // 组件的数据绑定在组件init时做抽取
      switch (name) {
          case 'class':
          case 'style':
              each(prop.expr.segs, function (seg) {
                  if (seg.type === ExprType.INTERP) {
                      seg.filters.push({
                          type: ExprType.CALL,
                          name: createAccessor([
                              {
                                  type: ExprType.STRING,
                                  value: '_' + prop.name
                              }
                          ]),
                          args: []
                      });
                  }
              });
              break;
  
          case 'checked':
              if (aNode.tagName === 'input') {
                  postProp(prop);
              }
              break;
      }
  
      aNode.props.push(prop);
  }
docs: 解析抽象节点绑定属性
  
  @inner
  @param {ANode} aNode 抽象节点
  @param {string} name 属性名称
  @param {string} value 属性值
  @param {Object} options 解析参数
  @param {Array?} options.delimiters 插值分隔符列表