Tag: parsing

如何用Boostparsingini文件

我有一个ini文件,其中包含一些示例值,如: [Section1] Value1 = 10 Value2 = a_text_string 我试图加载这些值,并用Boost在我的应用程序中打印它们,但我不明白如何在C ++中执行此操作。 我在这个论坛search,以find一些例子(我总是使用C,所以我不是很好的C + +),但我只发现如何从文件一次读取值的例子。 我需要加载一个单一的值,如string = Section1.Value2因为我不需要读取所有的值,但只是less数。 我想加载单个值并将其存储在variables中,以便在我的应用程序中使用它们。 Boost可以做到这一点吗? 目前,我正在使用这个代码: #include <iostream> #include <string> #include <set> #include <sstream> #include <exception> #include <fstream> #include <boost/config.hpp> #include <boost/program_options/detail/config_file.hpp> #include <boost/program_options/parsers.hpp> namespace pod = boost::program_options::detail; int main() { std::ifstream s("file.ini"); if(!s) { std::cerr<<"error"<<std::endl; return 1; } std::set<std::string> options; options.insert("Test.a"); […]

用于C的XMLparsing器

你能build议一些最好的XMLparsing器的C?

用于创buildC / C ++分析器/分析器的好工具

有什么好的工具可以快速开始parsing和分析C / C ++代码? 特别是,我正在寻找处理C / C ++预处理器和语言的开源工具。 优选地,这些工具将对语法使用lex / yacc(或flex / bison),而不是太复杂。 他们应该处理最新的ANSI C / C ++定义。 这是我到目前为止发现的,但没有详细看过他们(想法?): CScope – 老式C分析仪。 虽然似乎没有做一个完整的parsing。 被形容为一个寻找C函数的荣耀的“grep”。 GCC – 大家最喜欢的开源编译器。 非常复杂,但似乎这样做。 有一个创buildGCC扩展名为GEM的相关项目,但自从GCC 4.1(2006)以来并没有更新。 PUMA – PUre MAnipulator。 (来自页面:“这个项目的意图是提供一个用于分析和操作C / C ++源的类库,为此,PUMA提供了用于扫描,parsing和当然操作C / C ++源的类。 。 这看起来很有希望,但自2001年以来一直没有更新。显然PUMA已经被纳入了AspectC ++ ,但是这个项目自2006年以来还没有更新。 各种C / C ++原始语法。 你可以得到c-c ++ – grammars-1.2.tar.gz ,但是自1997年以来,这个问题一直没有得到维护。一些Googlesearch把其他基本的lex / […]

逐行阅读文件

Go无法findfile.ReadLine函数。 我可以想出如何快速写一个,但只是想知道我是否在这里忽略了一些东西。 如何逐行读取文件?

使用ANTLR 3.3?

我正在尝试开始使用ANTLR和C#,但是由于缺less文档/教程,我发现它非常困难。 我已经find了一些老版本的一些半心半意的教程,但似乎API已经有一些重大的改变。 任何人都可以给我一个简单的例子,如何创build一个语法,并在短程序中使用它? 我终于成功地将我的语法文件编译成一个词法分析器和parsing器,并且我可以在Visual Studio中获得这些编译和运行的语言(因为C#二进制文件似乎已经过时了,所以必须重新编译ANTLR源代码)更不用说源代码没有一些修正的情况下不能编译),但我仍然不知道如何处理我的分析器/词法分析器类。 据说,它可以产生一个AST给予一些input…然后我应该能够做一些事情与此。

词法分析器与parsing器

词法分析器和parsing器在理论上真的不一样吗? 讨厌正则expression式似乎很时髦: 编码恐怖 , 另一篇博客文章 。 然而,stream行的基于乐谱的工具: pygments , geshi或者美化 ,都使用正则expression式。 他们似乎什么都得不到 什么时候足够轻松,什么时候需要EBNF? 有没有人使用这些词法分析器生成的令牌与野牛或antlr语法分析器?

我如何parsingdate和在Perl中转换时区?

我在Perl中使用localtime函数来获取当前的date和时间,但需要parsing现有的date。 我有以下格式的GMTdate:“20090103 12:00”我想parsing它到我可以使用的date对象,然后将GMT时间/date转换为我当前的时区,这是目前东部标准时间。 所以我想转换“20090103 12:00”到“20090103 7:00”关于如何做到这一点的任何信息将不胜感激。

使用GSONparsingJSON文件

我想使用GSON在JAVA中parsing这个JSON文件: { "descriptor" : { "app1" : { "name" : "mehdi", "age" : 21, "messages": ["msg 1","msg 2","msg 3"] }, "app2" : { "name" : "mkyong", "age" : 29, "messages": ["msg 11","msg 22","msg 33"] }, "app3" : { "name" : "amine", "age" : 23, "messages": ["msg 111","msg 222","msg 333"] } } } 但我不知道如何join到根元素: 描述符 ,之后是app3元素,最后是名称元素。 […]

为什么指针衰减优先于推导的模板?

比方说,我正在写一个函数来打印一个string的长度: template <size_t N> void foo(const char (&s)[N]) { std::cout << "array, size=" << N-1 << std::endl; } foo("hello") // prints array, size=5 现在我想扩展foo来支持非数组: void foo(const char* s) { std::cout << "raw, size=" << strlen(s) << std::endl; } 但事实certificate,这打破了我原来的使用目的: foo("hello") // now prints raw, size=5 为什么? 这不需要数组到指针的转换,而模板将是一个完全匹配? 有没有办法确保我的数组函数被调用?

如何将C ++string转换为int?

可能重复: 如何parsing一个string在C + +中的int? 如何将C ++string转换为int? 假定您期望string中包含实际的数字(例如,“1”,“345”,“38944”)。 另外,让我们假设你没有提升,而且你真的想用C ++的方式来做,而不是C老式的方式。