如题,我最近突然想写一个编译器,于是,algoscript的开发被提上日程。
那必定得先明确干什么:
主要定位:轻量级,无面向对象支持(反正本来的设想就是能让人专注于算法,忽略一些在轻量级开发上无需的内容)
我们先开发几个基础内容:输入,输出,变量。
1.读入语句
这是基础中的基础,先开发这个。
我们使用一个string数组来存储语句,值得注意的是,这个数组中并不是存储一行,而是存储近似与token的东西。
大概形如这样:
#include<iostream>
#include<cstring>
using namespace std;
string s[1000010];
int cnt;
int main()
{
while(s[cnt] != "END")
{
cin>>s[++cnt];
}
}
这样就解决了输入问题。
2.输出
先来讲一下这里的编译实现:
通过一个函数run(int i)来实现编译,每次处理一个主要token(即output,input……),然后返回下一个主要token的位置,从而实现编译

本文记录了作者开发轻量级编程语言algoscript的初步过程,包括设计输入、输出和变量的基础功能。采用string数组存储语句,通过run函数实现编译。对于输出,增加了对换行的支持,使用//包裹特殊内容如/endl/表示换行。变量管理使用map存储,支持无需预先定义的特性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



