@Override public boolean enterIndexNode(IndexNode indexNode) { indexNode.getBase().accept(this); return false; }
private boolean fillName(IndexNode node, List<String> result) { Node index = node.getIndex(); Node base = node.getBase(); if (index instanceof LiteralNode && base instanceof AccessNode) { LiteralNode literal = (LiteralNode) index; if (literal.isString()) { result.add(0, literal.getString()); List<Identifier> fqn = getName((AccessNode) base, parserResult); for (int i = fqn.size() - 1; i >= 0; i--) { result.add(0, fqn.get(i).getName()); } return true; } } return false; }
@Override public boolean enterIndexNode(IndexNode indexNode) { addToPath(indexNode); indexNode.getBase().accept(this); int size = exp.size(); if (size > 1 && ST_PRO.equals(exp.get(size - 2))) { exp.remove(size - 2); } if (exp.isEmpty()) { exp.add(ST_ARR); } else { boolean propertyAccess = false; if (indexNode.getIndex() instanceof LiteralNode) { LiteralNode lNode = (LiteralNode)indexNode.getIndex(); if (lNode.isString()) { exp.add(ST_PRO); exp.add(lNode.getPropertyName()); propertyAccess = true; } } if (!propertyAccess) { exp.add(exp.size() - 1, ST_ARR); } } //add(exp, indexNode.getStart(), false); //reset(); return false; }
} else if (lhs instanceof IndexNode) { IndexNode indexNode = (IndexNode)lhs; if (indexNode.getBase() instanceof AccessNode) { List<Identifier> aName = getName((AccessNode)indexNode.getBase(), parserResult); if (aName != null) { name.addAll(getName((AccessNode)indexNode.getBase(), parserResult)); } else if (indexNode.getBase() instanceof IdentNode) { name.add(create(parserResult, (IdentNode)indexNode.getBase()));
return null; base = iNode.getBase();
@Override public Node leaveIndexNode(IndexNode indexNode) { if (indexNode.getIndex() instanceof LiteralNode) { Node base = indexNode.getBase(); JsObjectImpl parent = null; if (base instanceof AccessNode) {