private ParseTree parseAssignmentOrSpread() { if (peek(TokenType.SPREAD)) { return parseSpreadExpression(); } return parseAssignmentExpression(); }
private ParseTree parseComputedPropertyName() { eat(TokenType.OPEN_SQUARE); ParseTree assign = parseAssignmentExpression(); eat(TokenType.CLOSE_SQUARE); return assign; }
private ParseTree parseAssignmentOrSpread() { if (peek(TokenType.SPREAD)) { return parseSpreadExpression(); } return parseAssignmentExpression(); }
private ParseTree parseComputedPropertyName() { eat(TokenType.OPEN_SQUARE); ParseTree assign = parseAssignmentExpression(); eat(TokenType.CLOSE_SQUARE); return assign; }
private SpreadExpressionTree parseSpreadExpression() { SourcePosition start = getTreeStartLocation(); eat(TokenType.SPREAD); ParseTree operand = parseAssignmentExpression(); return new SpreadExpressionTree(getTreeLocation(start), operand); }
private SpreadExpressionTree parseSpreadExpression() { SourcePosition start = getTreeStartLocation(); eat(TokenType.SPREAD); ParseTree operand = parseAssignmentExpression(); return new SpreadExpressionTree(getTreeLocation(start), operand); }
private ParseTree parseComprehension( ComprehensionTree.ComprehensionType type, TokenType startToken, TokenType endToken) { SourcePosition start = getTreeStartLocation(); eat(startToken); ImmutableList.Builder<ParseTree> children = ImmutableList.builder(); while (peek(TokenType.FOR) || peek(TokenType.IF)) { if (peek(TokenType.FOR)) { children.add(parseComprehensionFor()); } else { children.add(parseComprehensionIf()); } } ParseTree tailExpression = parseAssignmentExpression(); eat(endToken); return new ComprehensionTree( getTreeLocation(start), type, children.build(), tailExpression); }
private ParseTree parseComprehension( ComprehensionTree.ComprehensionType type, TokenType startToken, TokenType endToken) { SourcePosition start = getTreeStartLocation(); eat(startToken); ImmutableList.Builder<ParseTree> children = ImmutableList.builder(); while (peek(TokenType.FOR) || peek(TokenType.IF)) { if (peek(TokenType.FOR)) { children.add(parseComprehensionFor()); } else { children.add(parseComprehensionIf()); } } ParseTree tailExpression = parseAssignmentExpression(); eat(endToken); return new ComprehensionTree( getTreeLocation(start), type, children.build(), tailExpression); }
private ParseTree parseComprehensionIf() { SourcePosition start = getTreeStartLocation(); eat(TokenType.IF); eat(TokenType.OPEN_PAREN); ParseTree initializer = parseAssignmentExpression(); eat(TokenType.CLOSE_PAREN); return new ComprehensionIfTree( getTreeLocation(start), initializer); }
private ParseTree parseComprehensionIf() { SourcePosition start = getTreeStartLocation(); eat(TokenType.IF); eat(TokenType.OPEN_PAREN); ParseTree initializer = parseAssignmentExpression(); eat(TokenType.CLOSE_PAREN); return new ComprehensionIfTree( getTreeLocation(start), initializer); }
ParseTree defaultValue = parseAssignmentExpression(); assignmentTarget = new DefaultParameterTree(getTreeLocation(start), assignmentTarget, defaultValue);
ParseTree defaultValue = parseAssignmentExpression(); assignmentTarget = new DefaultParameterTree(getTreeLocation(start), assignmentTarget, defaultValue);
private ParseTree parsePropertyNameAssignment() { SourcePosition start = getTreeStartLocation(); Token name = eatObjectLiteralPropertyName(); Token colon = eatOpt(TokenType.COLON); if (colon == null) { if (name.type != TokenType.IDENTIFIER) { reportExpectedError(peekToken(), TokenType.COLON); } else if (Keywords.isKeyword( name.asIdentifier().value, /* includeTypeScriptKeywords= */ false)) { reportError(name, "Cannot use keyword in short object literal"); } else if (peek(TokenType.EQUAL)) { IdentifierExpressionTree idTree = new IdentifierExpressionTree( getTreeLocation(start), (IdentifierToken) name); eat(TokenType.EQUAL); ParseTree defaultValue = parseAssignmentExpression(); return new DefaultParameterTree(getTreeLocation(start), idTree, defaultValue); } } ParseTree value = colon == null ? null : parseAssignmentExpression(); return new PropertyNameAssignmentTree(getTreeLocation(start), name, value); }
private ParseTree parsePropertyNameAssignment() { SourcePosition start = getTreeStartLocation(); Token name = eatObjectLiteralPropertyName(); Token colon = eatOpt(TokenType.COLON); if (colon == null) { if (name.type != TokenType.IDENTIFIER) { reportExpectedError(peekToken(), TokenType.COLON); } else if (Keywords.isKeyword(name.asIdentifier().value) && !Keywords.isTypeScriptSpecificKeyword(name.asIdentifier().value)) { reportError(name, "Cannot use keyword in short object literal"); } else if (peek(TokenType.EQUAL)) { IdentifierExpressionTree idTree = new IdentifierExpressionTree( getTreeLocation(start), (IdentifierToken) name); eat(TokenType.EQUAL); ParseTree defaultValue = parseAssignmentExpression(); return new DefaultParameterTree(getTreeLocation(start), idTree, defaultValue); } } ParseTree value = colon == null ? null : parseAssignmentExpression(); return new PropertyNameAssignmentTree(getTreeLocation(start), name, value); }
private ParseTree parseComprehensionFor() { SourcePosition start = getTreeStartLocation(); eat(TokenType.FOR); eat(TokenType.OPEN_PAREN); ParseTree initializer; if (peekId()) { initializer = parseIdentifierExpression(); } else { initializer = parsePattern(PatternKind.ANY); } eatPredefinedString(PredefinedName.OF); ParseTree collection = parseAssignmentExpression(); eat(TokenType.CLOSE_PAREN); return new ComprehensionForTree( getTreeLocation(start), initializer, collection); }
private ParseTree parseComprehensionFor() { SourcePosition start = getTreeStartLocation(); eat(TokenType.FOR); eat(TokenType.OPEN_PAREN); ParseTree initializer; if (peekId()) { initializer = parseIdentifierExpression(); } else { initializer = parsePattern(PatternKind.ANY); } eatPredefinedString(PredefinedName.OF); ParseTree collection = parseAssignmentExpression(); eat(TokenType.CLOSE_PAREN); return new ComprehensionForTree( getTreeLocation(start), initializer, collection); }
ParseTree value = parseAssignmentExpression(); return new ComputedPropertyDefinitionTree(getTreeLocation(start), name, value); } else {
&& peek(TokenType.EQUAL)) { eat(TokenType.EQUAL); ParseTree defaultValue = parseAssignmentExpression(); parameter = new DefaultParameterTree(getTreeLocation(start), parameter, defaultValue);
getTreeLocation(start), idToken); eat(TokenType.EQUAL); ParseTree defaultValue = parseAssignmentExpression(); return new DefaultParameterTree(getTreeLocation(start), idTree, defaultValue);
getTreeLocation(start), idToken); eat(TokenType.EQUAL); ParseTree defaultValue = parseAssignmentExpression(); return new DefaultParameterTree(getTreeLocation(start), idTree, defaultValue);