JotVM-D开发日记(01)

JotVM是我很久之前就开始开发的一个项目,经过了很多次尝试,最终我还是决定用D语言来实现第一版的JotVM。

作为一个应用软件,与用户的交互是很重要的封面,所以先让我们来实现一下命令行参数解析吧。

import std.getopt;
import std.stdio;

enum wstring HelpMessage = r"
用法: java [-options] class [args...]
           (执行类)
  或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)    
"w;


struct Cmd {

    bool helpFlag;
    bool versionFlag;
    bool jarFlag;
    string classpath;
}

Cmd parseCmd(ref string[] args) {
    Cmd cmd;
    try{
        getopt(
            args, 
            "help|?", &cmd.helpFlag,
            "version", &cmd.versionFlag,
            "jar", &cmd.jarFlag,
            "cp|classpath", &cmd.classpath
        );
    } catch(Throwable e) {
        cmd.helpFlag = true;
    }
    return cmd;
}

利用D的getopt库简单实现了一个命令行解析器,以后还会继续完善。Cmd结构体用来保存解析出来的命令行参数。如果解析失败也会打印Help信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值