2010年7月16日

词法分析生成器 之 Lexertl 【1】简介

摘要: Technorati 标签: lexertl,boost lexer,lexical analyser1. 简介lexertl是一个现代的词法分析生成器(lexical analyser generator)。传统意义上的词法分析生成器(如lex)都以生成源代码作为输出,有的甚至只支持生成一种编程语言的源代码。而lexertl使用正则表达式作为输入,输出为包含多个DFA的状态机。与flex不同的是,lexertl默认情况下不产生源代码,而是所写词法分析器可直接编译并立即执行。(也即词法分析器描述文件即C++源代码。)这就使得开发者可以快速开发词法分析器。Lexertl试图通过导出状态机来提供更 阅读全文

posted @ 2010-07-16 00:50 NBSTAR 阅读(389) 评论(0) 推荐(0) 编辑

代码格式化美化工具推荐

摘要: UniversalIndentGUI http://universalindent.sourceforge.net/FeaturesLive preview. Directly see how the code is affected by a indenter parameter Configurable ini file, open for many indenters. Not yet known indenters can be added by creating a new ini file for them Supported and included indenters righ 阅读全文

posted @ 2010-07-16 00:42 NBSTAR 阅读(194) 评论(0) 推荐(0) 编辑

推荐链接

摘要: 1. 如何使用live writer客户端来发布CSDN的博客文章? 阅读全文

posted @ 2010-07-16 00:35 NBSTAR 阅读(94) 评论(0) 推荐(0) 编辑

2010年7月15日

我所关注的

摘要: 我所关注的开源代码库1. Boost Log2. Boost Lexer 阅读全文

posted @ 2010-07-15 23:39 NBSTAR 阅读(128) 评论(0) 推荐(0) 编辑

2009年6月12日

如何将flex 生成的可重入C词法扫描器与bison生成的C++语法解析器配接起来

摘要: 如题,本文主要是flex与bison 的配合问题。 bison设置在bison用户手册中已经详尽说明了,这里不再赘述。 主要说明一下flex 的设置,并给出一个示例工程。1. flex设置%{/* 由于flex在输入结束时默认的yyterminate()返回值为0,与bison中token::END可以能不一致 */#define yyterminate() return token::END /* end of input file. */%}/* 生成可重入C代码 */%option reentrant noyywrap /* 适配bison */%option bison-bridge 阅读全文

posted @ 2009-06-12 17:44 NBSTAR 阅读(739) 评论(0) 推荐(0) 编辑

2009年6月10日

flex与bison接口不兼容的问题

摘要: flex和bison在产生C++类层面上接口不兼容描述如下:1.flex中 C++类 yyFlexLexer产生接口yyFlexLexer(istream *in,istream* out);void yylex()void switch_stream(istream *in,istream *out);int yylex(istream *in,istream *out);2. bison产生类所使用的lex接口,parser里面直接调用parser::lex_()接口,而lex_()直接调用全局的yylex()int yylex (semantic_value_type& yylv 阅读全文

posted @ 2009-06-10 22:45 NBSTAR 阅读(241) 评论(0) 推荐(0) 编辑

导航