You'll also want to:
Create a new subclass of ParseNode for ArrayElementParseNode
Create new factory method in ParseNodeFactory that instantiates this new kind of ParseNode, given an array plus an index