Using decision trees to infer semantic functions of attribute grammars