gawk 4.0.1的源码(清减版)

https://files.cnblogs.com/files/blogs/714801/gawk-master.7z 350KB

在 GitHub - gvlx/gawk: forked from git://git.savannah.gnu.org/gawk.git 下载的源码

下载安装了mingw,configure --disable-lint --disable-dependency-tracking --disable-largefile --disable-rpath --disable-nls

然后可以用tdm gcc编译。Makefile可以用NMAKE.exe.

复制代码
O=array.o awkgram.o builtin.o cint_array.o command.o debug.o dfa.o eval.o ext.o field.o floatcomp.o gawkapi.o gawkmisc.o getopt.o getopt1.o int_array.o io.o main.o mpfr.o msg.o node.o profile.o random.o re.o regex.o str_array.o symbol.o version.o
CFLAGS=-DHAVE_CONFIG_H -DGAWK -I. -DNDEBUG -Os

gawk.exe : $(O)
	gcc -o $@ $(O)
	strip -s $@

.c.o:
	gcc $(CFLAGS) -c $<

clean:
	-@del/q *.o
	-@del/q gawk.exe

dep:
	gcc $(CFLAGS) -MM *.c >dep.txt

include dep.txt
复制代码

NAMKE.exe不支持-include (dep.txt不存在是不报错)。

改了.y文件的话,可以用单独的bison,也可以用mingw里的。

  • bison -o awkgram.c awkgram.y 生成的分析函数为yyparse, yy是默认的prefix
  • bison -o command.c -p zz command.y 生成的分析函数为zzparse [可以删掉]

minimal awk (awk)这个名字已经被占了。试了下支持的语法太简单。学算法/短程序用gawk挺好 可以改个a语言解释器出来:a t.a

关于fatal: print to "standard output" failed (No space left on device),可以把输出重定向到文件。在builtin.c里的efwrite里,把fwrite(ptr, size, count, fp)换成write(fileno(fp), ptr, count)后可以了。还不知道原因。

main.c里的一大堆setlocale换成setlocale(LC_ALL, "")一句没事。If locale is an empty string, "", each part of the locale that should be modified is set according to the environment variables.The details are implementation-dependent.

posted @   Fun_with_Words  阅读(96)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2021-12-24 A PCI Express to PCIX Bridge optimized for performance and area
2021-12-24 在线卡诺图
2021-12-24 Verilog code for D flip-flop – All modeling styles
2021-12-24 Verilog之[-2]贴
2021-12-24 试用Verilog中的=, <=和assign
2021-12-24 affiliate
2021-12-24 A Child's History of England.63









 和5张牌。

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