Suatinlang_version_2020_3_19_v3.zip
Suatin编程语言第N个项目,增加了调试的功能!assert关键字,可以卡住解释器的解释过程,当卡住后输入exit,解释器会关闭,输入其他的会继续往下解释!
Suatinlang_version_2020_3_19_v2.zip
Suatin编程语言项目,实现了分支,if-elif-elif...-else
实现了循环while,do-until,for
Suatinlang_version_2020_3_19.zip(有bug,修正版3_19_v2)
suatin编程语言的项目,快结束了,做完function就结束了,这个项目里完成while,do-until,for三种循环
有一个BUG!!!uncompleted_tree在分支和循环中最后处理的不好
Suatinlang_version_2020_3_18.zip
这次的自制编程语言项目实行了if-elif-else,可以是嵌套的,总之功能强大!
还做了个简易的Qt的信号槽,可以实现全局信号->非成员函数,全局信号->成员函数!
Suatinlang_version_2020_3_13.zip
suatin自制编程语言的项目!!!在制作if-elif-else等架构之前,对项目进行了多次改进,打了很多补丁。。。。运行只有单个变量时,打印出数、字符串、布尔、nil
将bool类型的变量很好的融入了表达式中,对布尔进行计算和>,<,>=,<=四种判断运算都会报错!!!
解释时遇到nil类型的变量会报错!!!
Suatinlang_version_2020_3_10.zip
suatin自制编程项目!
简单表达式现在可以看做有三个模式了:开头是BOOL类型的式子、五则计算式、字符串拼接式!
赋值节点的解释,现在也特别的清楚!
(有个BUG,字符串拼接模式下,expTmp完成后不置空)
解决方法,增加expTmp = NULL; 到Parser.cpp,DealToken_Str函数中,return;之前,就行!
Suatinlang_version_2020_3_9_v2.zip
suatin编程语言的项目!!!3月9号晚上的第二个大更改!!!
去掉了之前的 exprType \ expr_compare_flag \ expr_logic_flag
改为了 m_statType \ m_exprType \ m_simpleExprType
虽然变量数目没变,但是含义可大大更改了,之前的三个变量都是指的一个关系,在那个关系中,计算表达式、字符串拼接表达式、逻辑表达式和判断表达式混为了一谈,但是他们的关系并不是并列的,所以项目中表达式式的区分乱七八糟,没法人脑检查出BUG来!!!
写了三个枚举,改变了语句、表达式、简单表达式之间的关系后,代码变得清爽多了——并不是代码少了,相反,比上一个项目还多2kB,而是关系变得简单了!!!!
Suatinlang_version_2020_3_9.zip
suatin编程语言的项目!
改进了异常,之前的异常机制只能告诉我有问题,到底问题在哪不知道,改进之后可以得到问题所在的语句了!
还重写了错误种类!
Suatinlang_version_2020_3_8.zip
suatin自制编程语言的第N的项目!并没有多实现什么,之前单条语句已经解释完了,现在只是打个包,解释了多条语句而已!!!!
感觉很绝望!项目中有很多难以处理的结构,也可能出现未知的bug,所以没办法把解释器的架构给改变了!!!!毕竟是自己乱七八糟写的!
suatin语言的项目做到实现函数为止吧!!!画了很多时间,没使用编译原理的知识,也要做到那个地步!!!
Suatinlang_version_2020_3_4.zip
Suatin编程语言项目
此次改进有,正确区分不同表达式!使字符串拼接模式不再严格,给字符串和数字一样的级别!修改了NotExpr\AndExpr\OrExpr\NeqExpr\EqEqExpr的解释方法,允许非数字的逻辑运算和判断运算!增加了5种节点解释时调用的孩子的解释方法信息,在构造语法树时将【该调用那种解释方法】这个信息留在了5种节点内!
高速缓存命中率探究系统
《企业级编程与控制理论》中的一个项目。缓存命中率是指,在查找前台缓存时,因为前台缓存是高速缓存,内存小,所以存在着找不到的情况!找不到某个项目的话,就要到后台查找,查找到并返回给用户,并在前台缓存中留一份!!!
这个系统探究的就是,高速缓存器大小与其命中率的关系,如果我要保持80%的命中率,我该设计多大的高速缓存!!!
Suatinlang_version_2020_3_3.zip(有bug,修改版是2020_3_4)
Suatin编程语言项目
此次改进有,正确区分不同表达式!使字符串拼接模式不再严格,给字符串和数字一样的级别!修改了NotExpr\AndExpr\OrExpr\NeqExpr\EqEqExpr的解释方法,允许非数字的逻辑运算和判断运算!增加了5种节点解释时调用的孩子的解释方法信息,在构造语法树时将【该调用那种解释方法】这个信息留在了5种节点内!
Suatinlang_version_2020_3_1.zip
Suatin自制编程语言的第6个项目!完成了单个语句的逻辑运算,就是not,and,or.........但是项目本身遇到很大的问题,因为学习的不好,我采用的是最愚蠢的,每遇到一个Token就改变一下语法树,这实在是太麻烦了!啥时候去学习《编译原理》了!迷迷糊糊写了3000代码,完成的功能实在是太简陋了!
Suatinlang_version_2020_2_28.zip
Suatin自制编程语言5,一次较大的改动!为了引入bool返回值,增加了一个interpret_bool接口!解决了正则识别不了>=,<=的BUG!改善了语言环境的显示!引入了特殊赋值!为了判断运算又增加了6个类!
Suatinlang_version_2020_2_25.zip
Suatin编程语言的第四个项目,添加了赋值,即允许 a = Expr 和 a= b = Expr 的存在!暂时把Int和number(double)合在了一起,现在就两个主要的类型,Number和String!
Suatinlang_version_2020_2_23.zip
自制编程语言Suatin的第三个项目,之前的简单语法树只有Num,这次增加了对Id\Str的处理!给解释器模式增加了一个接口string interpret_str()!!!!
Suatinlang_version_2020_2_21.zip
Suatin-lang项目的第二个版本,抛弃的第一个版本才用的中缀转后缀,而是直接由Token建立语法树!架构也重置了,之前的功能少,文件有三十多个,这次文件只有5个!
Suatinlang_version_2020_2_3.zip
自制编程语言的第一个项目,完成了识别分类Token,还有分割了简单语句!虽然后面的项目可能要大改,但是这第一个还是要好好纪念一下的!
Calculator_version_2020_2_4.zip
计算机改进版,添加了默认函数,虽然只能有一个参数!添加了小数、指数,基本的计算都能完成了。仍然是中缀表达式转后缀表达式,后缀表达式求解
Calculator_version_2020_2_3.zip
计算机的第一个版本,输入一个式子,1+2-3/5^6%3都能算出来。通过中缀表达式转后缀表达式,然后通过后缀表达式求解。缺点是数字只能是一个一个的,而且不支持数学函数
Keyshot使用笔记
Keyshot使用笔记,旋转选定移动缩放等操作又与其他软件不同!!!!
好看的鼠标图标,暴走漫画类型、雪花类型等
好看的鼠标图标,暴走漫画类型、雪花类型等
用easyX-CPP制作小游戏的书-适合新手
用easyX-CPP制作小游戏的书-适合新手
都是些基本操作,学完自己就喜欢去做游戏了。还是要去学游戏引擎,别想着自己实现引擎了,浪费时间。
2021-6-1 lexer.zip
i think of you 的词法分析器
suatin-lang last.zip
之前的文件内容格式出了问题,至于这个解释器项目,我是不会大改内容的
1 precompiler.zip
pythin-like类语言i think of you预编译器
2021-2-12 loop_range.zip
解析了循环,设计实现了range,解决了lexer的一些Bug
2021-2-10 if.zip
改进了let,static,const语法树,解析了BEGIN和END块,解析了if,elif,else
修改了Node类设计。
但是出于BinOp_Node类上面的类都会被VS2019当做是BinOp_Node类,这是编译器的问题,不是我的
2021-1-27 let_var_const.zip
实现了变量定义,let a = 1
let a = b = c = 1 + 2 之类的
2021-1-26 Pool_Lexer_Parser.zip
分离了lexer和语法树的构造,把AST构造放到了Parser内,这样第一遍扫描就把所有的token扫描出来
2021-1-12 SimpleAST.zip
zhangqi-lang抽象语法树,这个里面只实现了表达式的抽象语法树,复杂的没写,或者说删除了
2021-1-11 SaveInVector.zip
zhangqi-lang还是词法分析阶段,把token全部放入容器中,便于后面多次扫描
2021-1-10 FSM_Lexer.zip
zhangqi-lang词法分析器,zhangqi-lang语言开放的第一个项目。用状态机实现,有5改状态机:注释、标识符、数字、操作符、字符串
Suatin编程语言项目最后一个LAST
SUATIN不学编译原理制作编程语言的项目完整版!
DemllieText.zip
QT5 c++ 制作的文本编辑器。新建、保存、打开、保存为、全选、剪切、复制、粘贴、清空、粗体、斜体、下划线、字体、字体大小、关闭询问、最大化与恢复、最小化、更换背景、关于作者
Suatinlang_version_2020_4_5.zip
Suatin编程语言项目。这次设计了变量栈,scope=0放特殊变量,scope=1放常量,scope=2放全局变量,scope>2放局部变量——这么设计了,但是现在还没有识别local x;const x;del x;那部分下次做
Suatinlang_version_2020_3_28.zip
suatin自制编程语言项目!精简了变量的内存结构!将单个分号不算做语句,提高了解释速度!10000个数的空循环一秒多就运行完了!一百万个数的空循环大概100秒左右运行完!
Suatinlang_version_2020_3_26.zip
suatin编程语言的倒数第几个项目。做了一些变化,比如竟可能的把实现和声明分开了。把异常机制的模板给去掉了,这个异常以后再搞其他项目的时候要好好考虑清楚。现在6千行代码,每次都要大改异常机制,一改就是几百个函数
这次的项目最重要的就是完善了循环的功能,增加了break;和continue;还增加了打印语义树的方法