基于c语言自制编程语言 代码

tonymosely0713 计算机知识 6 次浏览 没有评论

代码来源于《基于c语言,自制变成语言》 作者:郑钢

第二章讲的就是词法分析器parser的代码,我已经放到github上了,有时间的话会继续写接下来的代码

https://github.com/hao297531173/DIYProgrammingLanguage

使用方法:根目录下输入 make 即可,正确的话会生成spr可执行文件,那个就是我们的词法分析器

之后输入./spr sample.sp 就能看到词法分析的结果了    sample.sp是我们测试用的代码

我是在ubuntu下编译成功的

UTF-8编码解码器模块代码

https://blog.csdn.net/haohulala/article/details/86600936

哈希表模块代码

https://blog.csdn.net/haohulala/article/details/86761263

简单记录一下makefile的语法

 CC = gcc #CFLAGS = -g -DDEBUG -lm -Wall -I object -I vm -I compiler -I parser -I include -I cli -I gc -W -Wstrict-prototypes -Wmissing-prototypes -Wsystem-headers CFLAGS = -g -lm -Wall -I object -I vm -I compiler -I parser -I include -I cli -I gc -W -Wstrict-prototypes -Wmissing-prototypes -Wsystem-headers TARGET = spr DIRS = object include cli compiler parser vm gc CFILES = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.c)) OBJS = $(patsubst %.c, %.o, $(CFILES)) $(TARGET):$(OBJS)  $(CC) -o $(TARGET) $(OBJS) $(CFLAGS) clean:  -$(RM) $(TARGET) $(OBJS) r: clean $(TARGET)

makefile的基本语法是 

目标:依赖1 依赖2 依赖3 … 依赖n

 [/t]    命令

比如:

main:tool.c main.c

        gcc -c main

另外makefile里面也是可以写变量的,比如 CC = gcc

那么CC就表示gcc

使用变量的时候需要遵守   $(变量名)  的格式

makefile是递归编译的,也就是说先编译依赖,等依赖都编译完了最后编译目标

还有一种没有依赖的目标,我们称为伪目标,它在make阶段不会执行,但是可以使用 make 目标名 的格式来执行

最后附上一篇gcc使用教程  https://www.cnblogs.com/testlife007/p/6555404.html

内容如有侵犯你的权益,请联系删除

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go