Prechádzať zdrojové kódy

完成基本的读入和解释

myuan 3 rokov pred
rodič
commit
73e038e3b8

+ 9 - 3
3. 简单的数值语言及其虚拟机/code-examples.ve

@@ -1,6 +1,12 @@
 # 这是示例代码
 # 注释的长度受限, /笑
 
-f(0) = 1
-1+2+6+3
-output(f(0) * (1 + 2 * 3))
+# output(output(1 + 2 * 3 / 4)) # 首先输出`1+2*3/4`为2.5, 之后再输出`2.5`作为输出的长度为3
+
+
+f(0) = 0
+f(x) = x + f(x - 1)
+f(x, y) = x + y
+
+output(f(10))
+output(f(1, 2))

BIN
3. 简单的数值语言及其虚拟机/简单的数值语言及其虚拟机.e


BIN
3. 简单的数值语言及其虚拟机/简单的数值语言及其虚拟机.代码/代码.e


+ 22 - 0
3. 简单的数值语言及其虚拟机/简单的数值语言及其虚拟机.代码/代码/即时解释虚拟机.static.e.txt

@@ -1,3 +1,25 @@
 .版本 2
 
 .程序集 即时解释虚拟机
+.程序集变量 词, 词, , "0"
+.程序集变量 函数列表, 抽象语法树节点, , "0"
+
+.子程序 解释代码入口
+    .参数 代码, 文本型
+    .局部变量 行, 文本型, , "0"
+    .局部变量 i, 整数型
+    .局部变量 根, 抽象语法树节点
+
+    行 = 分割文本 (代码, #换行符, )
+    .计次循环首 (取数组成员数 (行), i)
+        词法分析 (行 [i], 词)
+        根 = 语法分析 (词)
+        输出语法分析结果 (根, )
+        
+    .计次循环尾 ()
+
+.子程序 解释代码
+    .参数 节点, 抽象语法树节点
+
+    
+

+ 3 - 1
3. 简单的数值语言及其虚拟机/简单的数值语言及其虚拟机.代码/资源/命令行帮助.txt

@@ -5,6 +5,8 @@
 > 词法分析 [表达式]
 对[表达式]进行词法分析, 输出分析结果
 
-> 语法分析 [表达式]
+> 语法分析 [表达式] 
 对[表达式]进行语法分析, 输出语法树
+
+> 运行 [文件名]
 --------

+ 2 - 2
3. 简单的数值语言及其虚拟机/简单的数值语言及其虚拟机.代码/配置/支持库.config.json

@@ -1,10 +1,10 @@
 [
     {
-        "CmdCount": 664,
+        "CmdCount": 682,
         "Guid": "d09f2340818511d396f6aaf844c7e325",
         "Key": "krnln",
         "MaxRefConstPos": 68,
-        "MaxRefObjectPos": 49,
+        "MaxRefObjectPos": 0,
         "Name": "系统核心支持库",
         "Version": {
             "Major": 5,