我设计了一种配置文件
以前写软件写配置文件,基本上都是很简单的方式,例如 xxx = xxxx;后来,写的软件复杂了,配置的文件也会变得很复杂。用xml文件看起来又很累,所以自己设计了一种配置文件的格式。
配置文件包含两个部分,包括定义和赋值两个部分。
1. 定义,用户可以根据需求定义类型,定义的格式如下:
typename "(" typename "." fieldname, ... ")" [varname] ";"
例如:
color(var.r, var.g, var.b); //定义颜色类型
font(var.font, var.size, var.b, var.u, var.i ); //定义字体类型
keys(color.cl, font.ft, var..kw ); //定义关键字类型, .. 表示一个集合
keytabs( keys..kw )syntax, syntax2; //定义语法高亮类型,并定义了两个变量
2. 赋值,规则为,如果是一个集合,必须用{}括起来,其他的用,分隔。
例如:
syntax = { 128,164,255,宋体,29,b1,u,i,{int,double,char,long,unsigned,float},
244,444,444,宋体,29,b2,u,i,{define},
244,444,444,宋体,29,b3,u,i,{if,else,while,for},
};
syntax2 ={ 128,164,255,asdfasd,29,b1,u,i,{int,double,char,long,unsigned,float},
244,444,444,asd,29,b2,u,i,{define},
};
3. 我实现了两个功能。
a. 获取变量的值,例如 cfg_value( "syntax.kw[1].ft.b" ); 可以得到"b2"字串。
b. 获取集合的个数, 例如 cfg_size( "syntax.kw" );将得到3, cfg_size( "syntax.kw[2].kw" );将得到4。