@Override
	public Token parse() {
		if (!first.isIdentifier())
			throw new RuntimeException("Expected identifier for function name, found: " + first);
		
		name = first.getValue();
		Token test = first.getNext();
		if (!test.isOperator(Operator.BRACKET_LEFT))
			throw new RuntimeException("Expected '(' for function parmater list, found: " + test);
		
		test = test.getNext();
		while (test.isIdentifier()){
			Variable param = new Variable(test,scope);
			parameters.add(param);
			test = param.parse();
			if (test.isOperator(Operator.COMMA))
				test = test.getNext();
		}

		if (!test.isOperator(Operator.BRACKET_RIGHT))
			throw new RuntimeException("Expected ')' for function parmater list, found: " + test);
		
		return test.getNext();
	}