From f8bdea1bd9313d18ebb5d28a2b2ba155ba609aa9 Mon Sep 17 00:00:00 2001 From: j8takagi Date: Wed, 1 Jul 2026 21:22:52 +0900 Subject: [PATCH] =?utf8?q?casl2=E3=81=A8comet2=E3=82=B3=E3=83=9E=E3=83=B3?= =?utf8?q?=E3=83=89=E3=81=AB=E3=80=81=E9=80=86=E3=82=A2=E3=82=BB=E3=83=B3?= =?utf8?q?=E3=83=96=E3=83=AB=E7=B5=90=E6=9E=9C=E3=82=92=E8=A1=A8=E7=A4=BA?= =?utf8?q?=E3=81=99=E3=82=8B-r=E3=82=AA=E3=83=97=E3=82=B7=E3=83=A7?= =?utf8?q?=E3=83=B3=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/casl2.c | 9 ++++++-- src/comet2.c | 30 ++++++++++++++----------- test/system/casl2_opt/opt_h/0.txt | 2 +- test/system/casl2_opt/opt_opterr/0.txt | 2 +- test/system/comet2_opt/opt_h/0.txt | 2 +- test/system/comet2_opt/opt_opterr/0.txt | 2 +- 6 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/casl2.c b/src/casl2.c index 641fd5a..99ea410 100644 --- a/src/casl2.c +++ b/src/casl2.c @@ -34,6 +34,7 @@ static struct option longopts[] = { { "tracelogical", no_argument, NULL, 'T' }, { "dump", no_argument, NULL, 'd' }, { "monitor", no_argument, NULL, 'm' }, + { "reverse", no_argument, NULL, 'r' }, { "memorysize", required_argument, NULL, 'M' }, { "clocks", required_argument, NULL, 'C' }, { "version", no_argument, NULL, 'v' }, @@ -83,7 +84,7 @@ int main(int argc, char *argv[]) const char *version = PACKAGE_VERSION; const char *cmdversion = "casl2 of YACASL2 version %s\n"; const char *usage = - "Usage: %s [-slLaAtTdmvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...]\n"; + "Usage: %s [-slLaAtTdmrvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...]\n"; /* エラーの定義 */ cerr_init(); @@ -92,7 +93,7 @@ int main(int argc, char *argv[]) addcerrlist_exec(); /* オプションの処理 */ - while((opt = getopt_long(argc, argv, "tTdslLmao::O::AM:C:vh", longopts, NULL)) != -1) { + while((opt = getopt_long(argc, argv, "tTdslLmaro::O::AM:C:vh", longopts, NULL)) != -1) { switch(opt) { case 's': asmode.src = true; @@ -130,6 +131,10 @@ int main(int argc, char *argv[]) break; case 'm': execmode.step = true; + execmode.reverse = true; + break; + case 'r': + execmode.reverse = true; break; case 'M': if((memsize = memsize_str2word(optarg)) == 0) { diff --git a/src/comet2.c b/src/comet2.c index 73796ca..c3101f1 100644 --- a/src/comet2.c +++ b/src/comet2.c @@ -7,19 +7,19 @@ * comet2コマンドのオプション */ static struct option longopts[] = { - {"trace", no_argument, NULL, 't'}, - {"tracearithmetic", no_argument, NULL, 't'}, - {"tracelogical", no_argument, NULL, 'T'}, - {"dump", no_argument, NULL, 'd'}, - {"monitor", no_argument, NULL, 'm'}, - {"memorysize", required_argument, NULL, 'M'}, - {"clocks", required_argument, NULL, 'C'}, - {"version", no_argument, NULL, 'v' }, - {"help", no_argument, NULL, 'h'}, - {0, 0, 0, 0}, + { "trace", no_argument, NULL, 't' }, + { "tracearithmetic", no_argument, NULL, 't' }, + { "tracelogical", no_argument, NULL, 'T' }, + { "dump", no_argument, NULL, 'd' }, + { "monitor", no_argument, NULL, 'm' }, + { "reverse", no_argument, NULL, 'r' }, + { "memorysize", required_argument, NULL, 'M'}, + { "clocks", required_argument, NULL, 'C' }, + { "version", no_argument, NULL, 'v' }, + { "help", no_argument, NULL, 'h' }, + { 0, 0, 0, 0}, }; - /** * @brief comet2コマンドのメイン * @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) int stat = 0; const char *version = PACKAGE_VERSION; const char *cmdversion = "comet2 of YACASL2 version %s\n"; - const char *usage = "Usage: %s [-tTdmvh] [-M ] [-C ] FILE\n"; + const char *usage = "Usage: %s [-tTdmrvh] [-M ] [-C ] FILE\n"; /* エラーの定義 */ cerr_init(); @@ -44,7 +44,7 @@ int main(int argc, char *argv[]) addcerrlist_exec(); /* オプションの処理 */ - while((opt = getopt_long(argc, argv, "tTdmM:C:vh", longopts, NULL)) != -1) { + while((opt = getopt_long(argc, argv, "tTdmrM:C:vh", longopts, NULL)) != -1) { switch(opt) { case 't': execmode.trace = true; @@ -58,6 +58,10 @@ int main(int argc, char *argv[]) break; case 'm': execmode.monitor = true; + execmode.reverse = true; + break; + case 'r': + execmode.reverse = true; break; case 'M': if((memsize = memsize_str2word(optarg)) == 0) { diff --git a/test/system/casl2_opt/opt_h/0.txt b/test/system/casl2_opt/opt_h/0.txt index 06d7a62..3d46899 100644 --- a/test/system/casl2_opt/opt_h/0.txt +++ b/test/system/casl2_opt/opt_h/0.txt @@ -1 +1 @@ -Usage: ../../../../casl2 [-slLaAtTdmvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...] +Usage: ../../../../casl2 [-slLaAtTdmrvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...] diff --git a/test/system/casl2_opt/opt_opterr/0.txt b/test/system/casl2_opt/opt_opterr/0.txt index 06d7a62..3d46899 100644 --- a/test/system/casl2_opt/opt_opterr/0.txt +++ b/test/system/casl2_opt/opt_opterr/0.txt @@ -1 +1 @@ -Usage: ../../../../casl2 [-slLaAtTdmvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...] +Usage: ../../../../casl2 [-slLaAtTdmrvh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...] diff --git a/test/system/comet2_opt/opt_h/0.txt b/test/system/comet2_opt/opt_h/0.txt index ad4ad38..c8e87b0 100644 --- a/test/system/comet2_opt/opt_h/0.txt +++ b/test/system/comet2_opt/opt_h/0.txt @@ -1 +1 @@ -Usage: ../../../../comet2 [-tTdmvh] [-M ] [-C ] FILE +Usage: ../../../../comet2 [-tTdmrvh] [-M ] [-C ] FILE diff --git a/test/system/comet2_opt/opt_opterr/0.txt b/test/system/comet2_opt/opt_opterr/0.txt index ad4ad38..c8e87b0 100644 --- a/test/system/comet2_opt/opt_opterr/0.txt +++ b/test/system/comet2_opt/opt_opterr/0.txt @@ -1 +1 @@ -Usage: ../../../../comet2 [-tTdmvh] [-M ] [-C ] FILE +Usage: ../../../../comet2 [-tTdmrvh] [-M ] [-C ] FILE -- 2.47.3