From 4e8d942ca377a3347a4eac271345083cd2aa0ac3 Mon Sep 17 00:00:00 2001 From: Guan Inf <2307786059@qq.com> Date: Tue, 3 Jun 2025 19:11:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=8A=E6=AC=A1=E7=9A=84st?= =?UTF-8?q?dc++,Token,scanner=5Ftest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6dcffc0..14dfb53 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ a = point {x:24, y:43}; + ## 2. 实现细节 ### 2.1 词法分析的符号表结构 @@ -258,7 +259,8 @@ a = point {x:24, y:43}; | tuple | 21 | | print | 22 | | println | 23 | -| | | +| +| | | | | | | | @@ -328,5 +330,54 @@ a = point {x:24, y:43}; | 3 | my_vector | | 4 | ans | +### Hydrogen样例 +```Hydrogen + +struct Point { + x:i8; + y:i8; +} +[Point:105] tmp; +fn MergeSort([Point:20] v,i8 l,i8 r) -> { + if l>r { + return ; + } + var mid = l + r >>1; + MergeSort(v,l,mid); + MergeSort(v,mid+1,r); + i8 i=l,j=mid+1,k=l; + for ;i <= mid && j <= r;k+=1 { + if v[l] < v[r] + { + tmp[k] = v[l]; + l +=1; + } + else{ + tmp[k] = v[r]; + r += 1; + } + } + for ; i<=mid; { + tmp[k] = tmp[i]; + k += 1,i+=1; + } + for ; j <=r ; { + tmp[k] = tmp[j]; + k +=1 , j += 1; + } + +} +fn main()->i8{ + [Point:20] d; + [Point] d; + + for i8 i = 0;i< 20; i++ { + d[i] = {x:i * i,y:i}; + } + MergeSort(d,d+20); + 0 +} + +``` \ No newline at end of file