public int getNumArguments() { return node.getArguments().size(); }
private boolean tryJavaInvocation(FunctionCall node) throws IOException { if (!(node.getTarget() instanceof PropertyGet)) { return false; } PropertyGet propertyGet = (PropertyGet) node.getTarget(); String callMethod = getJavaMethod(propertyGet.getTarget()); if (callMethod == null || !propertyGet.getProperty().getIdentifier().equals("invoke")) { return false; } MethodReference method = MethodReference.parseIfPossible(callMethod); if (method == null) { return false; } writer.appendMethodBody(method).append('('); printList(node.getArguments()); writer.append(')'); return true; }
private void print(FunctionCall node, int precedence) throws IOException { if (tryJavaInvocation(node)) { return; } if (precedence < PRECEDENCE_FUNCTION) { writer.append('('); } int innerPrecedence = node instanceof NewExpression ? PRECEDENCE_FUNCTION - 1 : PRECEDENCE_FUNCTION; if (node instanceof NewExpression) { writer.append("new "); } print(node.getTarget(), innerPrecedence); writer.append('('); printList(node.getArguments()); writer.append(')'); if (node instanceof NewExpression) { NewExpression newExpr = (NewExpression) node; if (newExpr.getInitializer() != null) { writer.ws(); print(newExpr.getInitializer()); } } if (precedence < PRECEDENCE_FUNCTION) { writer.append(')'); } }
private CAstNode[] gatherCallArguments(Node call, WalkContext context) { List<AstNode> nodes = ((FunctionCall)call).getArguments(); CAstNode[] args = new CAstNode[ nodes.size() ]; for(int i = 0; i < nodes.size(); i++) { args[i] = visit(nodes.get(i), context); } return args; }
private String createLookupString(FunctionCall fn) { StringBuilder sb = new StringBuilder(); String name = ""; switch(fn.getTarget().getType()) { case Token.NAME : name = ((Name) fn.getTarget()).getIdentifier(); break; } sb.append(name); sb.append("("); Iterator<AstNode> i = fn.getArguments().iterator(); while (i.hasNext()) { i.next(); sb.append("p"); if(i.hasNext()) sb.append(","); } sb.append(")"); return sb.toString(); }
@Override public String getFunctionNameLookup(FunctionCall call, SourceCompletionProvider provider) { if (call != null) { StringBuilder sb = new StringBuilder(); if (call.getTarget() instanceof PropertyGet) { PropertyGet get = (PropertyGet) call.getTarget(); sb.append(get.getProperty().getIdentifier()); } sb.append("("); int count = call.getArguments().size(); for (int i = 0; i < count; i++) { sb.append("p"); if (i < count - 1) { sb.append(","); } } sb.append(")"); return sb.toString(); } return null; }
/** * Get all nodes within AstNode and add to an ArrayList * * @param node */ private void collectAllNodes(AstNode node) { if (node.getType() == Token.CALL) { // collect all argument nodes FunctionCall call = (FunctionCall) node; Iterator<AstNode> args = call.getArguments().iterator(); while (args.hasNext()) { AstNode arg = args.next(); VisitorAll all = new VisitorAll(); arg.visit(all); paramNodes.addAll(all.getAllNodes()); } } }
/** * Visits this node, the target object, and the arguments. */ @Override public void visit(NodeVisitor v) { if (v.visit(this)) { target.visit(v); for (AstNode arg : getArguments()) { arg.visit(v); } } } }
private MethodReference getJavaMethodSelector(AstNode node) { if (!(node instanceof FunctionCall)) { return null; } FunctionCall call = (FunctionCall) node; if (!isJavaMethodRepository(call.getTarget())) { return null; } if (call.getArguments().size() != 1) { diagnostics.error(location, "javaMethods.get method should take exactly one argument"); return null; } StringBuilder nameBuilder = new StringBuilder(); if (!extractMethodName(call.getArguments().get(0), nameBuilder)) { diagnostics.error(location, "javaMethods.get method should take string constant"); return null; } MethodReference method = MethodReference.parseIfPossible(nameBuilder.toString()); if (method == null) { diagnostics.error(location, "Wrong method reference: " + nameBuilder); } return method; }
/** * Visits this node, the target object, and the arguments. */ @Override public void visit(NodeVisitor v) { if (v.visit(this)) { target.visit(v); for (AstNode arg : getArguments()) { arg.visit(v); } } } }
/** * Visits this node, the target object, and the arguments. */ @Override public void visit(NodeVisitor v) { if (v.visit(this)) { target.visit(v); for (AstNode arg : getArguments()) { arg.visit(v); } } } }
/** * Visits this node, the target object, and the arguments. */ @Override public void visit(NodeVisitor v) { if (v.visit(this)) { target.visit(v); for (AstNode arg : getArguments()) { arg.visit(v); } } } }
if (!call.getArguments().isEmpty() && call.getArguments().get(0) instanceof StringLiteral) { String className = nameOf(call.getArguments().get(0)); maybeWarnMissingRequires(className, "Ext.create");
int count = call.getArguments().size(); AstNode paramNode = call.getArguments().get(i); JavaScriptResolver resolver = provider.getJavaScriptEngine().getJavaScriptResolver(provider); Logger.log("PARAM: " + JavaScriptHelper.convertNodeToSource(paramNode));
private Node transformFunctionCall(FunctionCall node) { Node call = createCallOrNew(Token.CALL, transform(node.getTarget())); call.setLineno(node.getLineno()); decompiler.addToken(Token.LP); List<AstNode> args = node.getArguments(); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); call.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); return call; }
private Node transformFunctionCall(FunctionCall node) { Node call = createCallOrNew(Token.CALL, transform(node.getTarget())); call.setLineno(node.getLineno()); decompiler.addToken(Token.LP); List<AstNode> args = node.getArguments(); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); call.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); return call; }
private Node transformFunctionCall(FunctionCall node) { Node call = createCallOrNew(Token.CALL, transform(node.getTarget())); call.setLineno(node.getLineno()); decompiler.addToken(Token.LP); List<AstNode> args = node.getArguments(); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); call.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); return call; }
private Node transformFunctionCall(FunctionCall node) { Node call = createCallOrNew(Token.CALL, transform(node.getTarget())); call.setLineno(node.getLineno()); decompiler.addToken(Token.LP); List<AstNode> args = node.getArguments(); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); call.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); return call; }
private boolean tryJavaInvocation(FunctionCall node) throws IOException { if (!(node.getTarget() instanceof PropertyGet)) { return false; } PropertyGet propertyGet = (PropertyGet) node.getTarget(); String callMethod = getJavaMethod(propertyGet.getTarget()); if (callMethod == null || !propertyGet.getProperty().getIdentifier().equals("invoke")) { return false; } MethodReference method = MethodReference.parseIfPossible(callMethod); if (method == null) { return false; } writer.appendMethodBody(method).append('('); printList(node.getArguments()); writer.append(')'); return true; }
private void print(FunctionCall node, int precedence) throws IOException { if (tryJavaInvocation(node)) { return; } if (precedence < PRECEDENCE_FUNCTION) { writer.append('('); } int innerPrecedence = node instanceof NewExpression ? PRECEDENCE_FUNCTION - 1 : PRECEDENCE_FUNCTION; if (node instanceof NewExpression) { writer.append("new "); } print(node.getTarget(), innerPrecedence); writer.append('('); printList(node.getArguments()); writer.append(')'); if (node instanceof NewExpression) { writer.ws(); NewExpression newExpr = (NewExpression) node; if (newExpr.getInitializer() != null) { print(newExpr.getInitializer()); } } if (precedence < PRECEDENCE_FUNCTION) { writer.append(')'); } }