补充上次的stdc++,Token,scanner_test
This commit is contained in:
parent
e6fb10125d
commit
4e8d942ca3
53
README.md
53
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
|
||||
}
|
||||
|
||||
```
|
Loading…
Reference in New Issue
Block a user