Skip to content

Refactor CLI Interface #137

@KCreate

Description

@KCreate

Remove the usage of the OptionParser and create a order-sensitive CLI interface.

See: https://github.com/crystal-lang/crystal/blob/master/src/compiler/crystal/command.cr#L58

Commands should be:

charly # starts the REPL
charly repl # starts the REPL

charly file.ch # runs the file
charly run file.ch # runs the file
charly run repl # searches for a file called repl, doesn't invoke the built-in repl

# If there is a need for passing flags to the interpreter in run mode
# this should be the syntax:
charly run -Fmyflag -Fmyotherflag file.ch

charly tool # cli interface for tooling
charly tool dump # lists available things to dump
charly tool dump ast # asks for a filename
charly tool dump ast file.ch # dumps the ast for the file
charly tool dump tokens file.ch # dumps the tokens for the file
charly tool dump dot file.ch # dumps the dot language for the file

charly [-h, --help] # shows the help page
charly [-v, --version] # shows the version
charly --license # shows the license

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions