【原创】自制编程语言-3 变量定义

这一次,我们来尝试制作变量。变量是基本上所有编程语言都有的功能。为了编辑起来方便,这里我制作的编程语言就必须先声明再使用,否则在赋值语句的时候可能会很麻烦。

定义变量的语句,每一个编程语言都是有不同的方式的。例如,C语言的变量定义方式是:

int N;

char ch;

而Visual Basic的声明则如下:

Dim i as integer

为了方便起见,就做一个类似于Visual Basic式样的声明语句吧。

首先,为了方便保存变量的值,我们先创建一个结构体。为了不和变量名重名,结构体的名字用大写,这是我的个人习惯。当然,首字母大写也可以,看个人喜好。

struct VALUE{

char name[30];//变量名

int type;//类型,0表示int,1表示string

int vnum;//int类型的数值

char vstring[255];//string类型

};

struct VALUE value[1000];

这样,如果要定义变量,直接根据dim后面的类型和变量名放入即可。当然,我们还需要定义一个存放变量信息的数组。叫做value,一共1000个位子。

同时,我们在main里面放入变量的声明。

else if(strcmp(s,"dim")==0){//声明变量

char sa[255],sb[255],sc[255];

get_word(sa);get_word(sb);get_word(sc);

if(strcmp(sb,"as")!=0)error();

strcpy(value[value_ptr].name,sa);

if(strcmp(sc,"int")==0)value[value_ptr].type=0;

else if(strcmp(sc,"string")==0)value[value_ptr].type=1;

else error();

}

dim a as int这一句,a放入sa字符串,表示变量名,as放入sb字符串,是一个连接词,如果sb不为as则报错。int放入sc,说明变量类型。

value_ptr是一个下标,指向数组目前的最后一个元素。为了记录目前value数组存放到了哪一个位置,需要用一个变量指向value存放到了哪一个位置。到了最后,value_ptr要++,为了下一次存放下一个元素。

完成。至于变量的输出,下一节再说。

(0)

相关推荐

  • C/C++编程笔记:C数组、字符串常量和指针!三分钟弄懂它

    想弄懂C语言中数组和指针的关系吗?这篇文章就占据你三分钟时间,看完你肯定会有收获! 数组 数组声明为 数据类型 名称[ constant-size ],并将一个数据类型的一个或多个实例分组到一个可寻址 ...

  • 【原创】自制编程语言-4 变量的输出

    这次我们来输出变量.输出变量需要两个函数,判断字符串是否为变量名,以及根据type来输出变量. int isvalue(const char *s){ for(int i=0;i<value_p ...

  • 【原创】自制编程语言-5 变量的赋值(1)

    首先我们先看这个函数: void put_value(const char *name){ for(int i=0;i<value_ptr;i++){ if(strcmp(value[i].na ...

  • 【原创】自制编程语言-5 变量的赋值(2)

    (看了一下上次更新的日期,6月3日...) 先说一个问题,之前我们对于变量赋值是这样写的: 事实上,也有类似于str = "hello world"类似的语句,这时 "h ...

  • 【原创】自制编程语言-1 最小编程语言

    一开始,不要想的太难,从最简单的开始,一点一点添加功能,到最后,你就会发现,结果就很像是一个完整的编程语言了. 首先,我们先抛开一切问题,先说说如何对这个编程语言进行编译或是解释.用编译型的语言实在是 ...

  • 【原创】自制编程语言-2 添加新功能

    现在我们可以添加一些新功能了.首先,我们现在的print无法输出换行,所以,我们需要增加一个转义字符\n来进行换行. else if(s[0]=='\"' && s[strl ...

  • 【原创】自制编程语言-6 输入语句

    现在我们的编程语言功能越来越多了,干劲也更足了,趁着这势头,我们继续写下去吧.这次我们来尝试编写输入语句.有了一个功能,加上运算符,我们就可以实现A+B问题了,真不错.输入语句的样式用很多,例如: C ...

  • 【原创】自制编程语言-7 注释&if语句初步

    这次我们尝试制作注释的功能.注释是几乎所有编程语言都有的功能.不同语言的注释符号也不尽相同.汇编语言的注释符号为":".C++的注释符号为"//".PYTHON ...

  • 【原创】自制编程语言-8 if语句

    隔了几天,我们继续.上次说的get_string的问题,暂时放在一边,我们到时候会专门开一章做修改的. 今天我们的目标是if语句,这还是有点难度的,尤其是嵌套if语句,现在笔者已经不知道怎么去做了.算 ...

  • 【原创】自制编程语言-9 嵌套if语句(1)

    今天我们继续if语句的制作.在开始之前,我们先来分析一下. 我们可以用一个变量存放当前if的值.如果当前if为0,我们不执行任何东西,直到endif使得当前if为1.事实上,如果是嵌套的if,我们同样 ...