s = [] for arg in f.args: s.append('{}: {}'.format(arg[0], translate_argument(*arg, f=f))) return ', '.join(s) def format_body_arguments(f): s = [] for arg in f.args: rty = translate_argument(*arg, f=f) s.append(translate_body_argument(arg[0], rty)) return ', '.join(s) def prepare(code): lines = filter(lambda line: not re.match(r'^\s*//.*', line), code.split('\n')) lines = re.sub(r'\s+', ' ', ''.join(lines)).strip().split(';') lines = filter(lambda line: not re.match(r'^\s*$', line), lines) return [Function.parse(line) for line in lines] def do(functions): for f in functions: print('\n#[inline]') print(format_header(f) + ' {') print(' ' + format_body(f) + '\n}') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--sys', required=True) arguments = parser.parse_args() path = os.path.join(arguments.sys, 'src', 'lib.rs') do(prepare(read_functions(path)))
rty = translate_return_type(f.ret) if rty.startswith("f"): return None return rty def prepare(level, code): lines = filter(lambda line: not re.match(r'^\s*//.*', line), code.split('\n')) lines = re.sub(r'\s+', ' ', "".join(lines)).strip().split(';') lines = filter(lambda line: not re.match(r'^\s*$', line), lines) return [Function.parse(level, line) for line in lines] def do(functions, reference): for f in functions: if reference is not None: print_documentation(f, reference) print("\n#[inline]") print(format_header(f) + " {") print(" " + format_body(f) + "\n}") if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--sys', required=True) parser.add_argument('--doc') arguments = parser.parse_args() sections = read_functions(os.path.join(arguments.sys, 'src', 'lib.rs')) assert(len(sections) == 3) do(prepare(1, sections[0]), arguments.doc) do(prepare(2, sections[1]), arguments.doc) do(prepare(3, sections[2]), arguments.doc)
s = [] for arg in f.args: s.append("{}: {}".format(arg[0], translate_argument(*arg, f=f))) return ", ".join(s) def format_body_arguments(f): s = [] for arg in f.args: rty = translate_argument(*arg, f=f) s.append(translate_body_argument(arg[0], rty)) return ", ".join(s) def prepare(code): lines = filter(lambda line: not re.match(r'^\s*//.*', line), code.split('\n')) lines = re.sub(r'\s+', ' ', "".join(lines)).strip().split(';') lines = filter(lambda line: not re.match(r'^\s*$', line), lines) return [Function.parse(line) for line in lines] def do(functions): for f in functions: print("\n#[inline]") print(format_header(f) + " {") print(" " + format_body(f) + "\n}") if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--sys', required=True) arguments = parser.parse_args() path = os.path.join(arguments.sys, 'src', 'lib.rs') do(prepare(read_functions(path)))
return rty def prepare(level, code): lines = filter(lambda line: not re.match(r'^\s*//.*', line), code.split('\n')) lines = re.sub(r'\s+', ' ', "".join(lines)).strip().split(';') lines = filter(lambda line: not re.match(r'^\s*$', line), lines) return [Function.parse(level, line) for line in lines] def do(functions, reference): for f in functions: if reference is not None: print_documentation(f, reference) print("\n#[inline]") print(format_header(f) + " {") print(" " + format_body(f) + "\n}") if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--sys', required=True) parser.add_argument('--doc') arguments = parser.parse_args() sections = read_functions(os.path.join(arguments.sys, 'src', 'lib.rs')) assert (len(sections) == 3) do(prepare(1, sections[0]), arguments.doc) do(prepare(2, sections[1]), arguments.doc) do(prepare(3, sections[2]), arguments.doc)