private IndexSignatureTree parseIndexSignature() { SourcePosition start = getTreeStartLocation(); eat(TokenType.OPEN_SQUARE); IdentifierToken name = eatIdOrKeywordAsId(); eat(TokenType.COLON); ParseTree indexType = parseTypeName(); // must be 'string' or 'number' eat(TokenType.CLOSE_SQUARE); eat(TokenType.COLON); ParseTree declaredType = parseType(); ParseTree nameTree = new MemberVariableTree(getTreeLocation(start), name, false, false, null, indexType); return new IndexSignatureTree(getTreeLocation(start), nameTree, declaredType); }
private IndexSignatureTree parseIndexSignature() { SourcePosition start = getTreeStartLocation(); eat(TokenType.OPEN_SQUARE); IdentifierToken name = eatIdOrKeywordAsId(); eat(TokenType.COLON); ParseTree indexType = parseTypeName(); // must be 'string' or 'number' eat(TokenType.CLOSE_SQUARE); eat(TokenType.COLON); ParseTree declaredType = parseType(); ParseTree nameTree = new MemberVariableTree(getTreeLocation(start), name, false, false, null, indexType); return new IndexSignatureTree(getTreeLocation(start), nameTree, declaredType); }