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; }
if (lhs instanceof IndexNode) { IndexNode iNode = (IndexNode)lhs; if (iNode.getBase() instanceof IdentNode) { lObject = processLhs(ModelElementFactory.create(parserResult, (IdentNode)iNode.getBase()), parent, false); assignmentOffset = iNode.getFinish(); if (lObject != null && iNode.getIndex() instanceof LiteralNode) { LiteralNode lNode = (LiteralNode)iNode.getIndex(); if (lNode.isString()) { Identifier newPropName = ModelElementFactory.create(parserResult, lNode);
BinaryNode binNode = (BinaryNode) lastVisited; if (binNode.lhs() instanceof IndexNode) { Node index = ((IndexNode)binNode.lhs()).getIndex(); if (!(index instanceof LiteralNode && ((LiteralNode)index).isString())) { treatAsAnonymous = true;
@Override public boolean enterIndexNode(IndexNode indexNode) { indexNode.getBase().accept(this); return false; }
Node binLhs = binNode.lhs(); if (binLhs instanceof IndexNode) { Node index = ((IndexNode)binLhs).getIndex(); if (!(index instanceof LiteralNode && ((LiteralNode)index).isString())) { treatAsAnonymous = true;
@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())); if (indexNode.getIndex() instanceof LiteralNode) { LiteralNode lNode = (LiteralNode)indexNode.getIndex(); name.add(new Identifier(lNode.getPropertyName(), new OffsetRange(lNode.getStart(), lNode.getFinish()))); } else if (indexNode.getIndex() instanceof IdentNode) {
@Override public Node leaveIndexNode(IndexNode indexNode) { if (indexNode.getIndex() instanceof LiteralNode) { Node base = indexNode.getBase(); JsObjectImpl parent = null; if (base instanceof AccessNode) { if (parent != null && indexNode.getIndex() instanceof LiteralNode) { LiteralNode literal = (LiteralNode)indexNode.getIndex(); if (literal.isString()) { String index = literal.getPropertyName(); JsObjectImpl property = (JsObjectImpl)parent.getProperty(index); if (property != null) { property.addOccurrence(new OffsetRange(indexNode.getIndex().getStart(), indexNode.getIndex().getFinish())); } else { Identifier name = ModelElementFactory.create(parserResult, (LiteralNode)indexNode.getIndex()); if (name != null) { property = new JsObjectImpl(parent, name, name.getOffsetRange(), parserResult.getSnapshot().getMimeType(), null);