charly icon indicating copy to clipboard operation
charly copied to clipboard

Refactor CLI Interface

Open KCreate opened this issue 8 years ago • 4 comments

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 avatar Dec 31 '16 14:12 KCreate

@KCreate Export the AST as Text or Image?

ghost avatar Apr 22 '17 07:04 ghost

@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

KCreate avatar Apr 22 '17 10:04 KCreate

Ah, ok. Sorry I read it wrong. Definitely better than now.

ghost avatar Apr 22 '17 10:04 ghost

Btw, this is how a textual AST dump looks like: https://pastebin.com/9wP678Hf

KCreate avatar Apr 22 '17 11:04 KCreate