int position = getParenthesisBalance(tokens, 0, "(", ")");
List<Object> parameterTokens = getSubListAndClear(tokens, 1, position);
LList paras = new LList();
for(Object t: parameterTokens) {
if(!t.equals(",")) {
List<Object> current = new ArrayList<Object>();
current.add(t);
current.add(";");
LList inner = parse(current);
paras.add(inner.get(0));
}
}
LList lambda = new LList();
lambda.add(type("lambda"));
lambda.add(paras);
LList begin = new LList(type("begin"));
getSubListAndClear(tokens, 0, tokens.indexOf(new Token("{")));
tokens = tokens.subList(1, tokens.size() - 1);
for(List<Object> list: split(tokens)) {
begin.add(parse(list));
}
lambda.add(begin);
return lambda;