static S tok_reverseFunctionArguments(S s) { ret join(tok_reverseFunctionArguments(javaTok(s)); } static LS tok_reverseFunctionArguments(LS tok) { LS tok = first(findFullFunctionDefs(tok, true)); S name = tok_methodName(tok); bool isVoid = tok_staticFunctionAlwaysReturnsVoid(tok, name); IntRange r = tok_findArgs(tok); LS args = tok_parseArgsList(tok); // TODO: type params? LPair typesAndNames = tok_typesAndNamesOfParams(subList(tok, r)); replaceSublist(tok, shrinkIntRange(r, 1), ll(joinWithComma(reversed(args)))); replaceSublist(tok, cloneList(tok_methodBody(tok)), ll( " {\n " + (isVoid ? "" : "ret ") + name + "(" + joinWithComma(secondOfPairs(typesAndNames)) + ");" + "\n}\n")); ret tok; }