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

这次我们来输出变量。输出变量需要两个函数,判断字符串是否为变量名,以及根据type来输出变量。

int isvalue(const char *s){

for(int i=0;i<value_ptr;i++){

if(strcmp(value[i].name,s)==0)return 1;

}

return 0;

}

void put_value(const char *name){

for(int i=0;i<value_ptr;i++){

if(strcmp(value[i].name,s)==0){

if(value[i].type==0)printf("%d",value[i].vnum);

else printf("%s",value[i].vstring);

}

}

}

其实仔细一看,也没有很难。都是从0开始,直到value_ptr最后一个结束,判断变量名是否为指定字符串,然后进行比较操作。put_value根据type进行分类输出。

然后是main函数里面的print改写。

if(strcmp(s,"print")==0){//调用print输出

get_string(s);

if(isnumber(s))cout<<s;

else if(s[0]=='\"' && s[strlen(s)-1]=='\"'){

for(int i=1;i<strlen(s)-1;i++){

if(s[i]=='\\' && s[i+1]=='n'){

printf("\n");i++;

}

else printf("%c",s[i]);

}

}

else if(isvalue(s)){

put_value(s);

}

else error();

}

非常简单吧。尝试一下,因为现在还没有赋值,全局变量默认初始化为0,所以如果调用print输出应该会输出0。完。

(0)

相关推荐

  • VS2019的调试功能学习(烫烫烫)

    我编写了个大数减法的程序但是会出现很奇怪的报错,然后我就一路百度... 现在我们尝试对以下代码用VS2019进行调试修改bug: //源文件main.cpp #include<stdio.h&g ...

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

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

  • 【原创】自制编程语言-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,我们同样 ...