03 2006 档案

标准纯C++实现简单的词法分析器(三)
摘要:状态机实现:/**: nextToken & * primary interface ...... * return a Token from source file(list_of_source) & * author: lonelyforest * data: 2006.03.16 */ //----------------------------------------------------------------------------- Token& Scanner::nextToken() { if (m_pushed ) { m_pushed = fal 阅读全文

posted @ 2006-03-29 10:10 h2内存数据库 阅读(207) 评论(0) 推荐(0) 编辑

标准纯C++实现简单的词法分析器(二)
摘要:说明: 此词法分析器所支持的关键字和操作符号都是 C-(mini C)的,关于 C-, 可以参阅 《编译原理及实践》附录; 以下为关键字和操作符定义:enum tokenType { // reserved Keyword k_INT = 0/* int */, k_ELSE/* else */, k_RETURN/* return */, k_VOID/* void */, k_IF/* if */,k_WHILE/* while */, k_READ/* read */, k_WRITE/* write */, // operations ASSIGN/* = */, PLUS/* + * 阅读全文

posted @ 2006-03-29 10:06 h2内存数据库 阅读(199) 评论(0) 推荐(0) 编辑

标准纯C++实现简单的词法分析器(一)
摘要:一、思路: 使用容器vector<string> 来缓冲文件内容,以便增加效率,以前的总是用getline(FILE*, ...) 或者别的,总之,都要从磁盘不断读取,不断操作,效率肯定不高。 这个思路主要是受到《C++ Primer》3 的影响,其中有个文本操作,采用这种方式。 从文件中具体分离出一个个字符,当然也就简单的多了。 然后再使用状态机,来实现 标识符提取, 这种方式的优点是可以很容易的根据你的需要来扩充或者修改。而且清晰明了哦。二、实现(部分):1使用标准的纯C++实现, 估计可以在 Unix 上兼容。不过没有测试;一下是包含头文件:#include <fstr 阅读全文

posted @ 2006-03-29 09:56 h2内存数据库 阅读(433) 评论(0) 推荐(0) 编辑

如今用到了,自己写个修改文件扩展名的函数~~~~~~~
摘要:#include <string>using namespace std;/* * assistant function, * return a string, get tow string&, * use to change a filename's extern name;* author: lonelyforest* Date: 2006.03.15*/string change_file_ext(const string& filename, const string& new_ext){ int dot_pos = 0; string te 阅读全文

posted @ 2006-03-15 21:44 h2内存数据库 阅读(147) 评论(0) 推荐(0) 编辑

在字符串中找出第一个数字
摘要:static int findNum( const char* str){ char Num[8]; int i = 0; int reval = -1; const char* p = str; while ( *p && ((*p > '9') || (*p < '0'))) p++; if ( *p ) { while (*p <= '9' && *p >= '0' ) { Num[i++]= *p++; } } else { return reval; } if ( 阅读全文

posted @ 2006-03-06 21:58 h2内存数据库 阅读(236) 评论(0) 推荐(0) 编辑

在SynEdit 中实现查找和替换功能
摘要:在C++ Builder中使用 SynEdit 插件时,功能的确强大,但是常用的 查找和替换功能却不好作了,尤其没有接触过的人,太麻烦了。其实 SynEdit 自带了搜索功能,很简单,很强大!1. 准备工作: (1)在你设置好的界面中加入 SynEdit 控件,我的命名是 rve,当然,这是个误会,我是怕改多了程序麻烦. (2) 加入SynEditSearch控件, 我的命名是SynEditSearch1,默认。 (3) 将 rve(synEdit) 的 SearchEngine 的改为 SynEditSearch1。 (4) 加入FindDialog控件, 命名为 FindDialog1;. 阅读全文

posted @ 2006-03-05 15:14 h2内存数据库 阅读(541) 评论(0) 推荐(0) 编辑

挑战malloc极限,看看你的系统有多大的内存分配能力
摘要:/**: MallocLimit.c* by lonelyforest*这个程序在DOS下运行,将会输出您的内存到底能够*分配多大!!!*/#include <stdio.h>#include <stdlib.h>int main(){int MB = 0;while ( malloc(1<<20) ) ++MB;printf("/n has %d MB memory!/n", MB);return 0;} 阅读全文

posted @ 2006-03-05 11:33 h2内存数据库 阅读(207) 评论(0) 推荐(0) 编辑

超级简单的获取本机IP程序
摘要:/**: GetHostIP.c * by lonelyforest.*//*===================================================*/#include <stdlib.h>void main( void ){ system("ipconfig"); system("pause");}/*===================================================*/在任何一个C/C++编译器下编辑即可。极为简单! 阅读全文

posted @ 2006-03-05 11:29 h2内存数据库 阅读(162) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示