mirror of
https://github.com/zeldaret/tp
synced 2026-05-24 15:21:08 -04:00
052119c7a7
* splitter: v0.1 * basic demangle stuff * splitter: v0.2 - add from, to options to select line range in .s to process - infer referred labels from both loads and stores - dump our own function labels in addition to externs into functions.h, to provide forward declarations for labels that other functions might use. - fix off-by-one which was eating the last instruction of some functions * splitter: v0.3 merged a bunch of work lepelog did, including: - demangling support - better function identification - automatic FORCEACTIVE and did a little bit of cleanup * splitter: improve sda hack and format * splitter: fix comment_out(), patch GQR references * splitter: some speed optimizations * remove debug print * splitter: forceactive options * refactor demangler, add support for more operators and more mangling symbols * array and member (still one non working case) * fix some operands in demangler * make parents for funcs_out * splitter: fix off-by-one in last line of last function in some .s files Co-authored-by: lepelog <lepelog@users.noreply.github.com> Co-authored-by: Pheenoh <pheenoh@gmail.com>
18 lines
419 B
Python
18 lines
419 B
Python
import itertools
|
|
import click
|
|
from pathlib import Path
|
|
|
|
|
|
def pairwise(iterable):
|
|
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
|
|
a, b = itertools.tee(iterable)
|
|
next(b, None)
|
|
return itertools.zip_longest(a, b)
|
|
|
|
|
|
class PathPath(click.Path):
|
|
"""A Click path argument that returns a pathlib Path, not a string"""
|
|
|
|
def convert(self, value, param, ctx):
|
|
return Path(super().convert(value, param, ctx))
|