code: function() {
      var node
        , segs = []
        , star;
  
      star = this.accept('*');
      if (star) segs.push(new nodes.Literal('*'));
  
      while (true) {
        if (this.accept('{')) {
          this.state.push('interpolation');
          segs.push(this.expression());
          this.expect('}');
          this.state.pop();
        } else if (node = this.accept('-')){
          segs.push(new nodes.Literal('-'));
        } else if (node = this.accept('ident')){
          segs.push(node.val);
        } else {
          break;
        }
      }
      if (!segs.length) this.expect('ident');
      return segs;
    }
docs: '*'? (ident | '{' expression '}')+