- 主题:有没有一些运行时做简单编译的库
可能题目不能表达我的意思(没有相关的知识),举个例子:
比如我在一个配置文件里面写了个表达式:
cond = (a>2)&&(b>3)
然后在程序运行时得到了
char *cond1 = "(a>2)&&(b>3)";
其中a和b都是程序里面的某些参数的名字,然后我想做这样的事情:
if (parse( cond1, callback_func_to_get_arg_value(), ... ) == 0) {...}
想问一下 有没有能完成 parse() 这个功能的库呢?
--
FROM 183.8.87.*
lua ?
--
FROM 116.230.160.*
你这个不仅仅是parse吧,是eval,也就是要执行得到结果
随便弄一个脚本引擎都可以。
--
FROM 125.35.121.*
【 在 il15 的大作中提到: 】
: 可能题目不能表达我的意思(没有相关的知识),举个例子:
: 比如我在一个配置文件里面写了个表达式:
: cond = (a>2)&&(b>3)
: ...................
你嵌入一个lua解析器到你的c程序里面呗
--
FROM 36.40.129.*
好,多谢楼上的几位!我先学习一下lua。
【 在 DraculaW 的大作中提到: 】
:
: 你嵌入一个lua解析器到你的c程序里面呗
--
FROM 183.8.87.*
可以用 shunting-yard 算法写个简单的 abstract syntax tree
有很多现成的开源库可以用,比如
https://github.com/cheng-zhao/libast
【 在 il15 的大作中提到: 】
: 可能题目不能表达我的意思(没有相关的知识),举个例子:
: 比如我在一个配置文件里面写了个表达式:
: cond = (a>2)&&(b>3)
: ...................
--
FROM 92.106.208.*
libtcc试试
--
FROM 153.99.133.*
有个老软件:yacc。百度一下。
【 在 il15 的大作中提到: 】
: 可能题目不能表达我的意思(没有相关的知识),举个例子:
: 比如我在一个配置文件里面写了个表达式:
: cond = (a>2)&&(b>3)
: ...................
--
FROM 221.221.52.*
好,多谢。我本来也想拿dparser(类似bison)做一个的,但是不大熟,就直接拿c写了一个简单的。
本来以为很快能完成,结果还是花了近3天。
总之,多谢楼上的各位!
【 在 ylh1969 的大作中提到: 】
: 有个老软件:yacc。百度一下。
--
FROM 14.26.9.*