private ArithmeticResult funcCall(Block codeBlock) throws IOException, SyntaxFormatException {
		if (checkCurrentType(TokenType.CALL)) {
			moveToNextToken();
			String funcName = lexer.getCurrentToken().getIdentifierName();
			assertAndMoveNext(TokenType.IDENTIRIER);
			ArrayList<ArithmeticResult> argumentList = new ArrayList<ArithmeticResult>();
			if (checkCurrentType(TokenType.BEGIN_PARENTHESIS)) { // 0 or 1 time
				moveToNextToken();
				ArithmeticResult args = expression(codeBlock);
				if (args != null) {
					argumentList.add(args);
					while (checkCurrentType(TokenType.COMMA)) {
						moveToNextToken();
						ArithmeticResult moreArgs = expression(codeBlock);
						if (moreArgs == null) {
							throwFormatException("no expression after comma");
						}
						argumentList.add(moreArgs);
					}
				}
				assertAndMoveNext(TokenType.END_PARENTHESIS);
			}
			return inter.comuteFunctionCall(funcName, argumentList, codeBlock);
		}
		return null;
	}