下载了 感谢楼主 分享
不用谢
发代码前高亮一下,其它人会谢谢你
[img]http://yzfy.byethost2.com/list.php[/img][color=white]
传说中的伪开源?
不错我顶一个哦
先收下了[tk03]
很好好强大的!
有更新,加入了更多的关键字,和一些常用的函数进行高亮
[img]http://yzfy.bigmb.com/list.php[/img][color=white]
看到你更新了就想拿我的fish和你比一下,看下面的测试用例:
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#define [/color]keyword_test:
[color=#0000FF]auto enum [/color]restrict [color=#0000FF]unsigned break extern return
void case float short volatile char for signed
while const goto sizeof [/color]_Bool [color=#0000FF]continue if static
[/color]_Complex [color=#0000FF]default inline struct [/color]_Imaginary [color=#0000FF]do int
switch double long typedef else register union
int [/color][color=#008080]test[/color]()
[color=#800000]{
[/color][color=#0000FF]int [/color]a=[color=#800080]10L[/color];
[color=#0000FF]int [/color]b=0x2efd+[color=#800080]0X0001[/color]+0x98ga+22h;
[color=#0000FF]double [/color]f1=[color=#800080]0[/color].2e3+[color=#800080]5[/color].[color=#800080]4E5[/color]+[color=#800080]5E[/color]-[color=#800080]3[/color]+[color=#800080]5E[/color]+[color=#800080]3[/color]+[color=#800080]5[/color].+.[color=#800080]5[/color];
[color=#0000FF]char [/color]*[color=#FF0000]string[/color]=[color=#FF00FF]"hello\n"[/color]; [color=#008000]/*hello world*/
[/color][color=#0000FF]wchar_t [/color]a=[color=#800080]L[/color][color=#FF00FF]"hello"[/color]; [color=#008000]// 你好
[/color][color=#0000FF]return [/color][color=#800080]0[/color];
[color=#800000]}
[/color][/size][/font][/quote]
下面是fish的结果:
[quote]
[color=a020f0]#define[/color] [color=ff00ff]keyword_test:[/color]
[color=2e8b57]auto[/color] [color=2e8b57]enum[/color] [color=2e8b57]restrict[/color] [color=2e8b57]unsigned[/color] [color=2e8b57]break[/color] [color=2e8b57]extern[/color] [color=2e8b57]return[/color]
[color=2e8b57]void[/color] [color=2e8b57]case[/color] [color=2e8b57]float[/color] [color=2e8b57]short[/color] [color=2e8b57]volatile[/color] [color=2e8b57]char[/color] [color=2e8b57]for[/color] [color=2e8b57]signed[/color]
[color=2e8b57]while[/color] [color=2e8b57]const[/color] [color=2e8b57]goto[/color] [color=2e8b57]sizeof[/color] [color=2e8b57]_Bool[/color] [color=2e8b57]continue[/color] [color=2e8b57]if[/color] [color=2e8b57]static[/color]
[color=2e8b57]_Complex[/color] [color=2e8b57]default[/color] [color=2e8b57]inline[/color] [color=2e8b57]struct[/color] [color=2e8b57]_Imaginary[/color] [color=2e8b57]do[/color] [color=2e8b57]int[/color]
[color=2e8b57]switch[/color] [color=2e8b57]double[/color] [color=2e8b57]long[/color] [color=2e8b57]typedef[/color] [color=2e8b57]else[/color] [color=2e8b57]register[/color] [color=2e8b57]union[/color]
[color=2e8b57]int[/color] [color=000000]test[/color]()
{
[color=2e8b57]int[/color] [color=000000]a[/color]=[color=ff00ff]10L[/color];
[color=2e8b57]int[/color] [color=000000]b[/color]=[color=ff00ff]0x2efd[/color]+[color=ff00ff]0X0001[/color]+[color=ff00ff]0x98[/color][color=000000]ga[/color]+[color=ff00ff]22[/color][color=000000]h[/color];
[color=2e8b57]double[/color] [color=000000]f1[/color]=[color=ff00ff]0.2e3[/color]+[color=ff00ff]5.4E5[/color]+[color=ff00ff]5E-3[/color]+[color=ff00ff]5E+3[/color]+[color=ff00ff]5.[/color]+[color=ff00ff].5[/color];
[color=2e8b57]char[/color] *[color=000000]string[/color]=[color=ff00ff]"hello\n"[/color]; [color=0000ff]/*hello world*/[/color]
[color=000000]wchar_t[/color] [color=000000]a[/color]=[color=ff00ff]L"hello"[/color]; [color=0000ff]// 你好
[/color] [color=2e8b57]return[/color] [color=ff00ff]0[/color];
}
[/quote]
偶的fish兼容C99标准,偶不由得要偷偷乐一下。
我发个
[quote][font=Fixedsys][size=4][color=008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/[/color]
[color=800080]#define[/color] keyword_test:
[color=0000ff]auto[/color] [color=0000ff]enum[/color] restrict [color=0000ff]unsigned[/color] [color=0000ff]break[/color] [color=0000ff]extern[/color] [color=0000ff]return[/color]
[color=0000ff]void[/color] [color=0000ff]case[/color] [color=0000ff]float[/color] [color=0000ff]short[/color] [color=0000ff]volatile[/color] [color=0000ff]char[/color] [color=0000ff]for[/color] [color=0000ff]signed[/color]
[color=0000ff]while[/color] [color=0000ff]const[/color] [color=0000ff]goto[/color] [color=0000ff]sizeof[/color] _Bool [color=0000ff]continue[/color] [color=0000ff]if[/color] [color=0000ff]static[/color]
_Complex [color=0000ff]default[/color] [color=0000ff]inline[/color] [color=0000ff]struct[/color] _Imaginary [color=0000ff]do[/color] [color=0000ff]int[/color]
[color=0000ff]switch[/color] [color=0000ff]double[/color] [color=0000ff]long[/color] [color=0000ff]typedef[/color] [color=0000ff]else[/color] [color=0000ff]register[/color] [color=0000ff]union[/color]
[color=0000ff]int[/color] test()
{
[color=0000ff]int[/color] a=10L;
[color=0000ff]int[/color] b=0x2efd+0X0001+0x98ga+22h;
[color=0000ff]double[/color] f1=0.2e3+5.4E5+5E-3+5E+3+5.+.5;
[color=0000ff]char[/color] *string=[color=ff0000]"hello\n"[/color]; [color=008000]/*hello world*/[/color]
wchar_t a=L[color=ff0000]"hello"[/color]; [color=008000]// 你好
[/color] [color=0000ff]return[/color] 0;
}[/size][/font][/quote]
[[it] 本帖最后由 flyue 于 2008-6-14 18:36 编辑 [/it]]
hohohoho
我前段时间也做了一个,是按VC6.0的样本来做地
[quote][font=Fixedsys][size=4] [color=0000ff]bool[/color] [color=0000ff]bool[/color]
[color=0000ff]char[/color] [color=0000ff]char[/color]
[color=0000ff]int[/color] [color=0000ff]int[/color]
[color=0000ff]float[/color] [color=0000ff]float[/color]
[color=0000ff]double[/color] [color=0000ff]double[/color]
[color=0000ff]signed[/color] [color=0000ff]signed[/color]
[color=0000ff]unsigned[/color] [color=0000ff]unsigned[/color]
[color=0000ff]short[/color] [color=0000ff]short[/color]
[color=0000ff]long[/color] [color=0000ff]long[/color]
[color=0000ff]struct[/color] [color=0000ff]struct[/color]
[color=0000ff]enum[/color] [color=0000ff]enum[/color]
[color=0000ff]union[/color] [color=0000ff]union[/color]
[color=0000ff]delete[/color] [color=0000ff]delete[/color]
[color=0000ff]new[/color] [color=0000ff]new[/color]
[color=0000ff]true[/color] [color=0000ff]true[/color]
[color=0000ff]false[/color] [color=0000ff]false[/color]
[color=0000ff]const[/color] [color=0000ff]const[/color]
[color=0000ff]register[/color] [color=0000ff]register[/color]
[color=0000ff]auto[/color] [color=0000ff]auto[/color]
[color=0000ff]static[/color] [color=0000ff]static[/color]
[color=0000ff]extern[/color] [color=0000ff]extern[/color]
[color=0000ff]volatile[/color] [color=0000ff]volatile[/color]
[color=0000ff]typedef[/color] [color=0000ff]typedef[/color]
[color=0000ff]for[/color] [color=0000ff]for[/color]
[color=0000ff]while[/color] [color=0000ff]while[/color]
[color=0000ff]do[/color] [color=0000ff]do[/color]
[color=0000ff]switch[/color] [color=0000ff]switch[/color]
[color=0000ff]case[/color] [color=0000ff]case[/color]
[color=0000ff]default[/color] [color=0000ff]default[/color]
[color=0000ff]break[/color] [color=0000ff]break[/color]
[color=0000ff]continue[/color] [color=0000ff]continue[/color]
[color=0000ff]try[/color] [color=0000ff]try[/color]
[color=0000ff]throw[/color] [color=0000ff]throw[/color]
[color=0000ff]catch[/color] [color=0000ff]catch[/color]
[color=0000ff]finally[/color] [color=0000ff]finally[/color]
[color=0000ff]if[/color] [color=0000ff]if[/color]
[color=0000ff]else[/color] [color=0000ff]else[/color]
[color=0000ff]operator[/color] [color=0000ff]operator[/color]
[color=0000ff]const_cast[/color] [color=0000ff]const_cast[/color]
[color=0000ff]static_cast[/color] [color=0000ff]static_cast[/color]
[color=0000ff]dynamic_cast[/color] [color=0000ff]dynamic_cast[/color]
[color=0000ff]reinterpret_cast[/color] [color=0000ff]reinterpret_cast[/color]
[color=0000ff]sizeof[/color] [color=0000ff]sizeof[/color]
[color=0000ff]typeid[/color] [color=0000ff]typeid[/color]
[color=0000ff]typename[/color] [color=0000ff]typename[/color]
[color=0000ff]type_info[/color] [color=0000ff]type_info[/color]
[color=0000ff]bad_cast[/color] [color=0000ff]bad_cast[/color]
[color=0000ff]bad_typeid[/color] [color=0000ff]bad_typeid[/color]
[color=0000ff]using[/color] [color=0000ff]using[/color]
[color=0000ff]namespace[/color] [color=0000ff]namespace[/color]
[color=0000ff]class[/color] [color=0000ff]class[/color]
[color=0000ff]__single_inheritance[/color] [color=0000ff]__single_inheritance[/color]
[color=0000ff]__multiple_inheritance[/color] [color=0000ff]__multiple_inheritance[/color]
[color=0000ff]__virtual_inheritance[/color] [color=0000ff]__virtual_inheritance[/color]
[color=0000ff]private[/color] [color=0000ff]private[/color]
[color=0000ff]protected[/color] [color=0000ff]protected[/color]
[color=0000ff]public[/color] [color=0000ff]public[/color]
[color=0000ff]friend[/color] [color=0000ff]friend[/color]
[color=0000ff]virtual[/color] [color=0000ff]virtual[/color]
[color=0000ff]this[/color] [color=0000ff]this[/color]
[color=0000ff]explicit[/color] [color=0000ff]explicit[/color]
[color=0000ff]except[/color] [color=0000ff]except[/color]
[color=0000ff]template[/color] [color=0000ff]template[/color]
[color=0000ff]inline[/color] [color=0000ff]inline[/color]
[color=0000ff]mutable[/color] [color=0000ff]mutable[/color]
[color=0000ff]void[/color] [color=0000ff]void[/color]
[color=0000ff]return[/color] [color=0000ff]return[/color]
[color=0000ff]goto[/color] [color=0000ff]goto[/color]
[color=008000]//
[/color]
[color=0000ff]__int8[/color] [color=0000ff]__int8[/color]
[color=0000ff]__int16[/color] [color=0000ff]__int16[/color]
[color=0000ff]__int32[/color] [color=0000ff]__int32[/color]
[color=0000ff]__int64[/color] [color=0000ff]__int64[/color]
[color=0000ff]allocate[/color] [color=0000ff]allocate[/color]
[color=0000ff]dllexport[/color] [color=0000ff]dllexport[/color]
[color=0000ff]dllimport[/color] [color=0000ff]dllimport[/color]
[color=0000ff]selectany[/color] [color=0000ff]selectany[/color]
[color=0000ff]uuid[/color] [color=0000ff]uuid[/color]
[color=0000ff]property[/color] [color=0000ff]property[/color]
[color=0000ff]nothrow[/color] [color=0000ff]nothrow[/color]
[color=0000ff]thread[/color] [color=0000ff]thread[/color]
[color=0000ff]naked[/color] [color=0000ff]naked[/color]
[color=0000ff]__asm[/color] [color=0000ff]__asm[/color]
[color=0000ff]_asm[/color] [color=0000ff]_asm[/color]
[color=0000ff]__declspec[/color] [color=0000ff]__declspec[/color]
[color=0000ff]_declspec[/color] [color=0000ff]_declspec[/color]
[color=0000ff]__cdecl[/color] [color=0000ff]__cdecl[/color]
[color=0000ff]_cdecl[/color] [color=0000ff]_cdecl[/color]
[color=0000ff]__stdcall[/color] [color=0000ff]__stdcall[/color]
[color=0000ff]_stdcall[/color] [color=0000ff]_stdcall[/color]
[color=0000ff]__fastcall[/color] [color=0000ff]__fastcall[/color]
[color=0000ff]_fastcall[/color] [color=0000ff]_fastcall[/color]
[color=0000ff]__try[/color] [color=0000ff]__try[/color]
[color=0000ff]_try[/color] [color=0000ff]_try[/color]
[color=0000ff]__finally[/color] [color=0000ff]__finally[/color]
[color=0000ff]_finally[/color] [color=0000ff]_finally[/color]
[color=0000ff]__based[/color] [color=0000ff]__based[/color]
[color=0000ff]_based[/color] [color=0000ff]_based[/color]
[color=0000ff]__leave[/color] [color=0000ff]__leave[/color]
[color=0000ff]_leave[/color] [color=0000ff]_leave[/color]
[color=0000ff]__except[/color] [color=0000ff]__except[/color]
[color=0000ff]_except[/color] [color=0000ff]_except[/color]
[color=0000ff]__inline[/color] [color=0000ff]__inline[/color]
[color=0000ff]_inline[/color] [color=0000ff]_inline[/color]
[color=0000ff]__uuidof[/color] [color=0000ff]__uuidof[/color][/size][/font][/quote]
[font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#include <stdio.h>
[/color][color=#FF0000]#include <stdarg.h> [/color][color=#008000]/*最主要的就是这个头文件了*/
[/color][color=#FF0000]#include <stdlib.h> [/color][color=#008000]/*这个和变参函数一点关系也没有,这个是我为了防止
屏幕一闪而过调用system("pause")用的*/
[/color][color=#FF0000]#define [/color]_max_args [color=#800080]31 [/color][color=#008000]/*定义参数的最大值*/
[/color][color=#0000FF]int [/color][color=#008080]sum[/color]([color=#0000FF]int [/color]n_param,...)
[color=#800000]{
[/color][color=#FF8000]va_list [/color]ap; [color=#008000]/*定义一个参数列表*/
[/color][color=#0000FF]int [/color]i;
[color=#0000FF]int [/color]s=[color=#800080]0[/color];
[color=#0000FF]if [/color](n_param>_max_args)
n_param=_max_args;
[color=#FF8000]va_start[/color](ap,n_param); [color=#008000]/*开始读取变量,n_param表示从变量n_param后面开始读取*/
[/color][color=#0000FF]for [/color](i=[color=#800080]0[/color];i<n_param;i++)
s=s+[color=#FF8000]va_arg[/color](ap,[color=#0000FF]int[/color]); [color=#008000]/*va_arg表示从...里面读取一个int类型变量,然后把ap指向
下一个变量*/
[/color][color=#FF8000]va_end[/color](ap); [color=#008000]/*不要忘记这个哦*/
[/color][color=#0000FF]return [/color]s;
[color=#800000]}
[/color][color=#0000FF]int [/color][color=#FF0000]main[/color]()
[color=#800000]{
[/color][color=#FF0000]printf[/color]([color=#FF00FF]"%d"[/color],[color=#008080]sum[/color]([color=#800080]5[/color],[color=#800080]1[/color],[color=#800080]2[/color],[color=#800080]3[/color],[color=#800080]4[/color],[color=#800080]5[/color]));
[color=#008080]system[/color]([color=#FF00FF]"pause"[/color]);
[color=#0000FF]return [/color][color=#800080]0[/color];
[color=#800000]} [/color][/size][/font]
[quote][font=fixedsys][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#define[/color][color=#FF00FF] keyword_test:
[/color][color=#0000FF]auto enum restrict unsigned break extern return
void case float short volatile char for signed
while const goto sizeof _Bool continue if static
_Complex default inline struct _Imaginary do int
switch double long typedef else register union
int [/color][color=#008080]test[/color]()
[color=#800000]{
[/color][color=#0000FF]int [/color]a=[color=#8000C0]10L[/color];
[color=#0000FF]int [/color]b=[color=#8000C0]0x2efd[/color]+[color=#8000C0]0X0001[/color]+[color=#8000C0]0x98ga[/color]+[color=#8000C0]22h[/color];
[color=#0000FF]double [/color]f1=[color=#8000C0]0[/color].[color=#8000C0]2e3[/color]+[color=#8000C0]5[/color].[color=#8000C0]4E5[/color]+[color=#8000C0]5E[/color]-[color=#8000C0]3[/color]+[color=#8000C0]5E[/color]+[color=#8000C0]3[/color]+[color=#8000C0]5[/color].+.[color=#8000C0]5[/color];
[color=#0000FF]char [/color]*[color=#FF0000]string[/color]=[color=#FF00FF]"hello\n"[/color]; [color=#008000]/*hello world*/
[/color][color=#0000FF]wchar_t [/color]a=[color=#800080]L[/color][color=#FF00FF]"hello"[/color]; [color=#008000]// 你好
[/color][color=#0000FF]return [/color][color=#8000C0]0[/color];
[color=#800000]}
[/color][/size][/font][/quote]
版本更新,添加了更多的关键字,添加了部分特殊处理
[img]http://yzfy.bigmb.com/list.php[/img][color=white]
[[it] 本帖最后由 雨中飛燕 于 2008-6-15 23:09 编辑 [/it]]
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#include <iostream.h>
[/color][color=#0000FF]void [/color][color=#FF0000]main[/color]()
[color=#800000]{
[/color][color=#0000FF]int [/color][color=#800080]N[/color], i, j=[color=#800080]1[/color], count=[color=#800080]0[/color], countTemp=[color=#800080]0[/color]; [color=#008000]//line 1
[/color][color=#FF0000]cin [/color]>>[color=#800080]N[/color];
[color=#0000FF]for[/color](i=[color=#800080]N[/color]; i>=-[color=#800080]N[/color]; i--, j=[color=#800080]1[/color], count +=((countTemp-[color=#800080]1[/color])*[color=#800080]2[/color]+[color=#800080]1[/color]), countTemp=[color=#800080]0[/color])
[color=#008000]//line 2
[/color][color=#800000]{
[/color][color=#0000FF]while[/color](countTemp++, (j*(j++)+i*i)<=[color=#800080]N[/color]*[color=#800080]N[/color]); [color=#008000]//line 3
[/color][color=#800000]}
[/color][color=#0000FF]double [/color]output = [color=#0000FF]double[/color](count)/[color=#0000FF]double[/color]([color=#800080]N[/color]*[color=#800080]N[/color]); [color=#008000]//line 4
[/color][color=#FF0000]cout[/color].[color=#008080]precision[/color]([color=#800080]15[/color]);
[color=#FF0000]cout [/color]<<output<<[color=#FF0000]endl[/color];
[color=#800000]} [/color][/size][/font][/quote]
...~ 我这个貌似是老的!
[[it] 本帖最后由 菜鸟选手 于 2008-6-15 23:26 编辑 [/it]]
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#include <stdio.h>
[/color][color=#FF0000]#include <stdlib.h>
[/color][color=#FF0000]#define[/color][color=#FF00FF] N 5
[/color][color=#0000FF]int [/color][color=#FF0000]main[/color]([color=#0000FF]void[/color]) [color=#800000]{
[/color][color=#0000FF]int [/color]arr1[color=#800000][[/color][color=#800080]N[/color][color=#800000]][[/color][color=#800080]N[/color][color=#800000]] [/color]= [color=#800000]{
{[/color][color=#8000C0]1[/color], [color=#8000C0]2[/color], [color=#8000C0]3[/color], [color=#8000C0]4[/color], [color=#8000C0]5[/color][color=#800000]}[/color],
[color=#800000]{[/color][color=#8000C0]0[/color], [color=#8000C0]6[/color], [color=#8000C0]7[/color], [color=#8000C0]8[/color], [color=#8000C0]9[/color][color=#800000]}[/color],
[color=#800000]{[/color][color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]10[/color], [color=#8000C0]11[/color], [color=#8000C0]12[/color][color=#800000]}[/color],
[color=#800000]{[/color][color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]13[/color], [color=#8000C0]14[/color][color=#800000]}[/color],
[color=#800000]{[/color][color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]0[/color], [color=#8000C0]15[/color][color=#800000]}}[/color];
[color=#0000FF]int [/color]arr2[color=#800000][[/color][color=#800080]N[/color]*([color=#8000C0]1[/color]+[color=#800080]N[/color])/[color=#8000C0]2[/color][color=#800000]] [/color]= [color=#800000]{[/color][color=#8000C0]0[/color][color=#800000]}[/color];
[color=#0000FF]int [/color]i, j, loc = [color=#8000C0]0[/color];
[color=#FF0000]printf[/color]([color=#FF00FF]"原二维资料:\n"[/color]);
[color=#0000FF]for[/color](i = [color=#8000C0]0[/color]; i < [color=#800080]N[/color]; i++) [color=#800000]{
[/color][color=#0000FF]for[/color](j = [color=#8000C0]0[/color]; j < [color=#800080]N[/color]; j++) [color=#800000]{
[/color][color=#FF0000]printf[/color]([color=#FF00FF]"%4d"[/color], arr1[color=#800000][[/color]i[color=#800000]][[/color]j[color=#800000]][/color]);
[color=#800000]}
[/color][color=#FF0000]printf[/color]([color=#FF00FF]"\n"[/color]);
[color=#800000]}
[/color][color=#FF0000]printf[/color]([color=#FF00FF]"\n以列为主:"[/color]);
[color=#0000FF]for[/color](i = [color=#8000C0]0[/color]; i < [color=#800080]N[/color]; i++) [color=#800000]{
[/color][color=#0000FF]for[/color](j = [color=#8000C0]0[/color]; j < [color=#800080]N[/color]; j++) [color=#800000]{
[/color][color=#0000FF]if[/color](arr1[color=#800000][[/color]i[color=#800000]][[/color]j[color=#800000]] [/color]!= [color=#8000C0]0[/color])
arr2[color=#800000][[/color]loc++[color=#800000]] [/color]= arr1[color=#800000][[/color]i[color=#800000]][[/color]j[color=#800000]][/color];
[color=#800000]}
}
[/color][color=#0000FF]for[/color](i = [color=#8000C0]0[/color]; i < [color=#800080]N[/color]*([color=#8000C0]1[/color]+[color=#800080]N[/color])/[color=#8000C0]2[/color]; i++)
[color=#FF0000]printf[/color]([color=#FF00FF]"%d "[/color], arr2[color=#800000][[/color]i[color=#800000]][/color]);
[color=#FF0000]printf[/color]([color=#FF00FF]"\n输入索引(i, j):"[/color]);
[color=#FF0000]scanf[/color]([color=#FF00FF]"%d, %d"[/color], &i, &j);
loc = [color=#800080]N[/color]*i - i*(i+[color=#8000C0]1[/color])/[color=#8000C0]2 [/color]+ j;
[color=#FF0000]printf[/color]([color=#FF00FF]"(%d, %d) = %d"[/color], i, j, arr2[color=#800000][[/color]loc[color=#800000]][/color]);
[color=#FF0000]printf[/color]([color=#FF00FF]"\n"[/color]);
[color=#0000FF]return [/color][color=#8000C0]0[/color];
[color=#800000]}
[/color][/size][/font][/quote]
试试新的有什么区别?
我感觉对程序代码进行正则搜索,匹配到关键字就对其进行正则替换就可能实现这个软件的功能吧
有空也搞个玩玩[tk20]
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#define[/color][color=#FF00FF] keyword_test:
[/color][color=#0000FF]auto enum restrict unsigned break extern return
void case float short volatile char for signed
while const goto sizeof _Bool continue if static
_Complex default inline struct _Imaginary do int
switch double long typedef else register union
int [/color][color=#008080]test[/color]()
[color=#800000]{
[/color][color=#0000FF]int [/color]a=[color=#8000C0]10L[/color];
[color=#0000FF]int [/color]b=[color=#8000C0]0x2efd[/color]+[color=#8000C0]0X0001[/color]+[color=#8000C0]0x98ga[/color]+[color=#8000C0]22h[/color];
[color=#0000FF]double [/color]f1=[color=#8000C0]0[/color].[color=#8000C0]2e3[/color]+[color=#8000C0]5[/color].[color=#8000C0]4E5[/color]+[color=#8000C0]5E[/color]-[color=#8000C0]3[/color]+[color=#8000C0]5E[/color]+[color=#8000C0]3[/color]+[color=#8000C0]5[/color].+.[color=#8000C0]5[/color];
[color=#0000FF]char [/color]*[color=#FF0000]string[/color]=[color=#FF00FF]"hello\n"[/color]; [color=#008000]/*hello world*/
[/color][color=#0000FF]wchar_t [/color]a=[color=#800080]L[/color][color=#FF00FF]"hello"[/color]; [color=#008000]// 你好
[/color][color=#0000FF]return [/color][color=#8000C0]0[/color];
[color=#800000]}[/color][/size][/font][/quote]
不错,很不错~~~!
额……小数点和指数的符号还是没有正确处理啊……
支持你 燕子
忙了一天,只改了关键字和宏,在浮点常量上还有问题。
再和偶的标准着色方案对比一下:
[quote]
[color=#a020f0]#define[/color] [color=#ff00ff]keyword_test:[/color]
[color=#2e8b57]auto[/color] [color=#2e8b57]enum[/color] [color=#2e8b57]restrict[/color] [color=#2e8b57]unsigned[/color] [color=#2e8b57]break[/color] [color=#2e8b57]extern[/color] [color=#2e8b57]return[/color]
[color=#2e8b57]void[/color] [color=#2e8b57]case[/color] [color=#2e8b57]float[/color] [color=#2e8b57]short[/color] [color=#2e8b57]volatile[/color] [color=#2e8b57]char[/color] [color=#2e8b57]for[/color] [color=#2e8b57]signed[/color]
[color=#2e8b57]while[/color] [color=#2e8b57]const[/color] [color=#2e8b57]goto[/color] [color=#2e8b57]sizeof[/color] [color=#2e8b57]_Bool[/color] [color=#2e8b57]continue[/color] [color=#2e8b57]if[/color] [color=#2e8b57]static[/color]
[color=#2e8b57]_Complex[/color] [color=#2e8b57]default[/color] [color=#2e8b57]inline[/color] [color=#2e8b57]struct[/color] [color=#2e8b57]_Imaginary[/color] [color=#2e8b57]do[/color] [color=#2e8b57]int[/color]
[color=#2e8b57]switch[/color] [color=#2e8b57]double[/color] [color=#2e8b57]long[/color] [color=#2e8b57]typedef[/color] [color=#2e8b57]else[/color] [color=#2e8b57]register[/color] [color=#2e8b57]union[/color]
[color=#2e8b57]int[/color] [color=#000000]test[/color]()
{
[color=#2e8b57]int[/color] [color=#000000]a[/color]=[color=#ff00ff]10L[/color];
[color=#2e8b57]int[/color] [color=#000000]b[/color]=[color=#ff00ff]0x2efd[/color]+[color=#ff00ff]0X0001[/color]+[color=#ff00ff]0x98[/color][color=#000000]ga[/color]+[color=#ff00ff]22[/color][color=#000000]h[/color];
[color=#2e8b57]double[/color] [color=#000000]f1[/color]=[color=#ff00ff]0.2e3[/color]+[color=#ff00ff]5.4E5[/color]+[color=#ff00ff]5E-3[/color]+[color=#ff00ff]5E+3[/color]+[color=#ff00ff]5.[/color]+[color=#ff00ff].5[/color];
[color=#2e8b57]char[/color] *[color=#000000]string[/color]=[color=#ff00ff]"hello\n"[/color]; [color=#0000ff]/*hello world*/[/color]
[color=#000000]wchar_t[/color] [color=#000000]a[/color]=[color=#ff00ff]L"hello"[/color]; [color=#0000ff]// 你好
[/color] [color=#2e8b57]return[/color] [color=#ff00ff]0[/color];
}
[/quote]
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#define[/color][color=#FF00FF] keyword_test:
[/color][color=#0000FF]auto enum restrict unsigned break extern return
void case float short volatile char for signed
while const goto sizeof _Bool continue if static
_Complex default inline struct _Imaginary do int
switch double long typedef else register union
int [/color][color=#008080]test[/color]()
[color=#800000]{
[/color][color=#0000FF]int [/color]a=[color=#8000C0]10L[/color];
[color=#0000FF]int [/color]b=[color=#8000C0]0x2efd[/color]+[color=#8000C0]0X0001[/color]+[color=#8000C0]0x98ga[/color]+[color=#8000C0]22h[/color];
[color=#0000FF]double [/color]f1=[color=#8000C0]0[/color].[color=#8000C0]2e3[/color]+[color=#8000C0]5[/color].[color=#8000C0]4E5[/color]+[color=#8000C0]5E[/color]-[color=#8000C0]3[/color]+[color=#8000C0]5E[/color]+[color=#8000C0]3[/color]+[color=#8000C0]5[/color].+.[color=#8000C0]5[/color];
[color=#0000FF]char [/color]*[color=#FF0000]string[/color]=[color=#FF00FF]"hello\n"[/color]; [color=#008000]/*hello world*/
[/color][color=#0000FF]wchar_t [/color]a=[color=#800080]L[/color][color=#FF00FF]"hello"[/color]; [color=#008000]// 你好
[/color][color=#0000FF]return [/color][color=#8000C0]0[/color];
[color=#800000]}
[/color][/size][/font][/quote]
可以下载我fish源码包,用文本编辑器打开fish.lex,看看C99的词法是怎么定义的:
D [0-9]
L [a-zA-Z_]
H [a-fA-F0-9]
E [Ee][+-]?{D}+
FS (f|F|l|L)
IS (u|U|l|L)*
%%
"/*" { comment(MUTILINE); }
"//" { comment(SINGLELINE);}
^#[^ <]+ { preprecess();}
"auto" |
"_Bool" |
"break" |
"case" |
"char" |
"_Complex" |
"const" |
"continue" |
"default" |
"do" |
"double" |
"else" |
"enum" |
"extern" |
"float" |
"for" |
"goto" |
"if" |
"_Imaginary" |
"inline" |
"int" |
"long" |
"register" |
"restrict" |
"return" |
"short" |
"signed" |
"sizeof" |
"static" |
"struct" |
"switch" |
"typedef" |
"union" |
"unsigned" |
"void" |
"volatile" |
"while" { output_tag(KEYWORD); }
{L}({L}|{D})* { output_tag(IDENTIFIER); }
0[xX]{H}+{IS}? |
0{D}+{IS}? |
{D}+{IS}? |
L?'(\\.|[^\\'])+' |
{D}+{E}{FS}? |
{D}*"."{D}+({E})?{FS}? |
{D}+"."{D}*({E})?{FS}? { output_tag(CONSTANT); }
L?\"(\\.|[^\\"])*\" { output_tag(CONSTANT); }
[[it] 本帖最后由 VxWorks 于 2008-6-16 09:48 编辑 [/it]]
嗯嗯,因为一开始时我本来只考虑字符串注释和关键字的高亮,所以结构的布局也简单
所以才叫“简易”,不过后来做的时候把越来越多的语法也加了进去。
不过主体结构没有变
其实前几个版本把数字给高亮了只是巧合。。原本偶没打算高亮数字的
有空再改改吧
[img]http://yzfy.bigmb.com/list.php[/img][color=white]
