Analysing code without executing it