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; }
private boolean isResultString(BinaryNode binaryNode) { boolean bResult = false; TokenType tokenType = binaryNode.tokenType(); Node lhs = binaryNode.lhs(); Node rhs = binaryNode.rhs(); if (tokenType == TokenType.ADD && ((lhs instanceof LiteralNode && ((LiteralNode) lhs).isString()) || (rhs instanceof LiteralNode && ((LiteralNode) rhs).isString()))) { bResult = true; } else { if (lhs instanceof JoinPredecessorExpression) { lhs = ((JoinPredecessorExpression)lhs).getExpression(); } if (rhs instanceof JoinPredecessorExpression) { rhs = ((JoinPredecessorExpression)rhs).getExpression(); } if (lhs instanceof BinaryNode) { bResult = isResultString((BinaryNode) lhs); } else if (rhs instanceof BinaryNode) { bResult = isResultString((BinaryNode) rhs); } } return bResult; }
if (ln.isString()) { result.add(FunctionArgumentAccessor.getDefault().createForString( position, argument.getStart(), ln.getString()));
if (binNode.lhs() instanceof IndexNode) { Node index = ((IndexNode)binNode.lhs()).getIndex(); if (!(index instanceof LiteralNode && ((LiteralNode)index).isString())) { treatAsAnonymous = true;
if (iNode.getIndex() instanceof LiteralNode) { LiteralNode lNode = (LiteralNode)iNode.getIndex(); if (lNode.isString()) { name.add(new Identifier(lNode.getPropertyName(), new OffsetRange(lNode.getStart(), lNode.getFinish())));
if (binLhs instanceof IndexNode) { Node index = ((IndexNode)binLhs).getIndex(); if (!(index instanceof LiteralNode && ((LiteralNode)index).isString())) { treatAsAnonymous = true;
if (lNode.isString()) { Identifier newPropName = ModelElementFactory.create(parserResult, lNode); if (newPropName != null) {
if (literal.isString()) { String index = literal.getPropertyName(); JsObjectImpl property = (JsObjectImpl)parent.getProperty(index);