[Chapel Merge] This PR adds subcommands to the argument parser

Branch: refs/heads/main
Revision: 2bf652f
Author: arezaii
Log Message:

Merge pull request #18141 from arezaii/subcommands

This PR adds subcommands to the argument parser.

Scope of work defined in Cray/chapel-private#2298, this work satisfies
the main goals of that issue which are to:

  1. Allow the developer to add subcommands to their CLI
  2. Allow options and subcommands entered together

Relates to broader implementation task in Cray/chapel-private#2192

Tests added for subcommands and mixing subcommands with options.

TESTING:

After running make cleanall from $CHPL_HOME:

  • [x] Can make
  • [x] Can make docs
  • [x] Can make mason
  • [x] Can make check
  • [x] Passing tests from util/start_test test/mason/mason-argparse

Reviewed by @mppf

Signed-off-by: Ahmad Rezaii ahmad.rezaii@hpe.com

Modified Files:
M test/mason/mason-argparse/MasonArgParseExample.chpl

M test/mason/mason-argparse/MasonArgParseExample.good
M test/mason/mason-argparse/MasonArgParseExample.lastexecopts
M test/mason/mason-argparse/MasonArgParseTests.chpl
M test/mason/mason-argparse/MasonArgParseTests.good
M tools/mason/MasonArgParse.chpl

Compare: https://github.com/chapel-lang/chapel/compare/24bee30fa80e...2bf652fc09a4