/** * This class implements the parenthesis operator. * @private */Ext.define('Ext.parse.symbol.Paren', { extend: 'Ext.parse.Symbol', arity: 'binary', isBinary: true, priority: 80, led: function (left) { // Handles function call operator var me = this, args = [], parser = me.parser, id = left.id, type = left.arity; if (id !== '.' && id !== '[') { if ((type !== "unary" || id !== "function") && type !== "ident" && id !== "(" && id !== "&&" && id !== "||" && id !== "?") { parser.syntaxError(left.at, "Expected a variable name."); } } me.arity = 'invoke'; me.isInvoke = true; me.operand = left; me.args = args; while (parser.token.id !== ')') { if (args.length) { parser.advance(','); } args.push(parser.parseExpression()); } parser.advance(')'); return me; }, nud: function () { // Handles parenthesized expressions var parser = this.parser, ret = parser.parseExpression(); parser.advance(")"); return ret; }});