diff options
author | Frederick Yin <fkfd@fkfd.me> | 2022-08-29 22:59:56 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@fkfd.me> | 2022-08-29 22:59:56 +0800 |
commit | d303447dc7a830489828be2e66ccf8c36af4aed6 (patch) | |
tree | 53c02938a9b85ff94a5621371faa360f5630a6d8 /projects/hackc/__main__.py | |
parent | 7f54baf2668a58f2908f8242b2fbafc65a7f684a (diff) |
hackc: backslash escape extension
Diffstat (limited to 'projects/hackc/__main__.py')
-rw-r--r-- | projects/hackc/__main__.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/projects/hackc/__main__.py b/projects/hackc/__main__.py index a7bc06f..1cb5c3f 100644 --- a/projects/hackc/__main__.py +++ b/projects/hackc/__main__.py @@ -4,7 +4,7 @@ import os from .parser import Parser -def compile_jack(input_path: Path, verbose: bool): +def compile_jack(input_path: Path, extensions: list, verbose: bool): try: filenames = os.listdir(input_path) files = [Path(input_path / f) for f in filenames] @@ -16,7 +16,7 @@ def compile_jack(input_path: Path, verbose: bool): return for input_fn in jack_files: - parser = Parser(input_fn) + parser = Parser(input_fn, extensions=extensions) parser.tokenize() parser.print_tokens() @@ -24,6 +24,13 @@ def compile_jack(input_path: Path, verbose: bool): if __name__ == "__main__": parser = ArgumentParser("hackc") parser.add_argument("-v", "--verbose", action="store_true", help="verbose mode") + parser.add_argument( + "-E", + "--extension", + metavar="extension", + action="append", + help="enable extension of standard Jack", + ) parser.add_argument("input_path", help="Jack file or directory") args = parser.parse_args() - compile_jack(Path(args.input_path), args.verbose) + compile_jack(Path(args.input_path), args.extension or [], args.verbose) |