charly
charly copied to clipboard
Refactor CLI Interface
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
@KCreate Export the AST as Text or Image?
@oltmannsdaniel This is already possible in the current version using the --ast option. This issue would put that option under charly tool dump ast file.ch
Ah, ok. Sorry I read it wrong. Definitely better than now.
Btw, this is how a textual AST dump looks like: https://pastebin.com/9wP678Hf