[关闭]
@RR 2017-03-30T04:52:08.000000Z 字数 913 阅读 317

Flex 编程练习 - Argument Parser

flex


问题描述

在这个项目里面完成几个函数用于解析命令行参数。

  1. void* parse_args(const char* schema, const char* args);
  2. bool get_boolean(void* context, char arg);
  3. const char* get_string(void* context, char arg);
  4. int get_int(void* context, char arg);
  5. double get_double(void* context, char arg);

首先你需要完成的第一个函数是void* parse_args(const char* schema, const char* args);。这个函数第一个参数schema描述了第二个参数args的格式是什么。比如说可以这样调用

  1. pContext = parse_args("s*,l,p#,d##", "-s www.intel.com -p 8080 -l -d 23.45");

"s*,l,p#,d##"指明了只有多个参数,-s,-l,-p,-d。其中
*的意思是字符串,s*指明参数-s后面的跟着的是个字符串。
单个字符,比如说l指明参数-l是个布尔开关。
#指明参数是个整形,比如说-p后面是个数字
##指明参数是个浮点类型,比如说-d后面是23.45

一些列get_*函数用于获取参数的具体的值。比如说
get_boolean(pContext,'l')返回就是True;
get_double(pContext,'d)返回的就是23.45

项目要求

  1. 开发环境是Linux,如果你没有Linux,可以使用virtualbox安装一个虚拟机。Linux版本不限。
  2. 可以使用C或者C++代码实现。你需要是用google test框架(gtest)为你的代码添加单元测试例。
  3. 你需要使用Cmake来build你的代码。
  4. 你需要使用本地的git来管理你的代码,以适当的粒度来commit你的代码。
  5. 如果你没有熟悉IDE,你需要选择学习一个。你的IDE至少能完成以下功能,自动补全,go to definition等常见的功能。如果你毫无头绪,可以Google "vim c ide"
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注