Analyzing syntactic constructs of Java programs with machine learning