CYaRon!语

题目背景

「千歌です」(我是千歌)、「曜です」(我是曜)、「ルビィです」(我是露比)、「3人合わせて、We are CYaRon! よろしくね!」(三人在一起,我们是CYaRon!多多指教哦!) CYaRon!的三人在学习了编程之后,决定发明一种自己的编程语言,她们称为CYaRon!语。 (ltt: 明明是我帮她们发明的。) 可是,因为洛谷评测机这时候突然爆了,ltt没有时间再帮CYaRon!的三位小姐姐写CYaRon!语的解释器了。 于是ltt就出了这样一道题,然后等着有人交了AC程序就偷走给小姐姐们。

题目描述

以下是一个典型的CYaRon! 语程序。 ```cpp { vars chika:int you:int ruby:array[int, 1..2] i:int } # 以上变量默认值均为0 # 变量名只可是英文字母。 # yosoro语句可以输出一个数字,随后跟一个空格。 :yosoro 2 # 输出2和一个空格(以下不再提到空格)。 # set语句可以为变量赋值。 # 运算符只支持加减号即可。 :set chika, 1 :set you, 2 :yosoro chika + you # 上一条语句将输出3 # 以下的判断语句均使用以下的格式: # 操作符,表达式,表达式 # 例如eq, a, 1即C语言中 a==1 # 所有操作符包括: lt: < gt: > le: <= ge: >= eq: == neq: != # 日本来的CYaRon三人没法正确地发出if这个音,因此她们就改成了ihu。 { ihu eq, chika, 1 :set you, 3 :yosoro 1 } # 输出1 # 以上是ihu语句,无需支持else。 # hor语句同理, # for i=1 to you如下 { hor i, 1, you :yosoro i } # 输出1 2 3 # 如下是while和数组的使用方法。 :set i, 1 { while le, i, 2 :yosoro i :set ruby[i], i+1 :yosoro ruby[i] :set i, i+1 } # 输出1 2 2 3 # 数组不会出现嵌套,即只会有a[i]、a[i+2]而不会有类似于a[i+b[i]]这样的。 # CYaRon语的最后一行,一定是一个换行。 ``` 你的任务是写一个CYaRon!语的解释器,实现输入CYaRon!语的程序,解释之执行后输出执行结果。

输入输出格式

输入格式


输入文件全部为CYaRon!语程序,最后一行保证是个空行。 请处理输入的时候,一直读到EOF为止。

输出格式


该CYaRon!语程序的执行结果。 具体上,是该CYaRon!语程序所有:yosoro语句的输出。

输入输出样例

输入样例 #1

{ vars
    a:int
    b:int
}

:set a, 1
:set b, 2
:yosoro a+b

输出样例 #1

3

说明

对数据做出以下保证: 1. 输入数据一定是合法的CYaRon!语程序,不包含注释,代码、缩进风格 (四个空格)与上述样例相同。**但不保证逗号、运算符前面的空格数量和有无一定相同**。 2. 变量名在10个字符以下,仅包含小写英文,数组最大大小为1000,变量最多50个,所有表达式的运算结果,包括变量的值一定在int范围内。 (但数组可能是类似于[2001..3000]的,下标可能范围为0到1亿) 3. 所有指令小写。 4. 该程序一定能够在合理的时间、内存限制内执行完毕。 5. hor语句执行过程中,循环变量、初始值、结束值不会被循环中的代码改变。 6. **该程序最多500行** ![](https://cdn.luogu.com.cn/upload/pic/4595.png)