def get_compiler(self, compiler=None, flags=None):
if self._args:<EOL><INDENT>compiler = compiler or self._args.compiler<EOL>flags = flags or self._args.compiler_flags<EOL><DEDENT>if compiler is None:<EOL><INDENT>for c in self['<STR_LIT>'].keys():<EOL><INDENT>if find_executable(c) is not None:<EOL><INDENT>compiler = c<EOL>break<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise RuntimeError("<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(list(self['<STR_LIT>'].keys())))<EOL><DEDENT><DEDENT>if flags is None:<EOL><INDENT>flags = self['<STR_LIT>'].get(compiler, '<STR_LIT>')<EOL><DEDENT>return compiler, flags.split('<STR_LIT:U+0020>')<EOL>
Return tuple of compiler and compiler flags.

Selects compiler and flags from machine description file, commandline arguments or call
arguements.