Skip to content

Commit 08b6376

Browse files
committed
修复了一些问题
1 parent 9a857fa commit 08b6376

File tree

11 files changed

+30
-12
lines changed

11 files changed

+30
-12
lines changed

example/紫书/eight_queen.mer renamed to example/algorithm/eight_queen.mer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
int n=0;
2-
int vec[11]={0};
2+
int vec[11];
33

44
function void search(int cur) {
55
if (cur == n)

example/algorithm/krypton_factor.mer

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
int cnt=0;int n=0,L=0;int S[100];function bool dfs(int cur){ cnt+=1; if(cnt-1==n) { for(int i=0;i<cur;i+=1) { std.cout(cast<char>('A'+S[i])); } return false; } for(int i=0;i<L;i+=1) { S[cur]=i; int ok=1; for(int j=1;j*2<=cur+1;j+=1) { bool equal=true; for(int k=0;k<j;k+=1) { if(S[cur-k]!=S[cur-k-j]) { equal=false; break; } } if(equal) { ok=0; break; } } if(ok==1) { if(!dfs(cur+1)) { return false; } } } return true;}program main{ n=7; L=3; dfs(0);}
File renamed without changes.
File renamed without changes.
File renamed without changes.

example/auto_test.bat

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
merdog acm-icpc/premutation.mer
2-
merdog acm-icpc/eight_queen.mer
3-
merdog acm-icpc/krypton_factor.mer
4-
merdog acm-icpc/prime_ring.mer
1+
merdog algorithm/premutation.mer
2+
merdog algorithm/eight_queen.mer
3+
merdog algorithm/krypton_factor.mer
4+
merdog algorithm/prime_ring.mer
55
merdog array.mer
66
merdog draw_heart_shape.mer
77
merdog draw_sin.mer

example/紫书/krypton_factor.mer

Lines changed: 0 additions & 1 deletion
This file was deleted.

interpreter/include/parser.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ namespace Mer
8282
Token* id;
8383
ParserNode* expr;
8484
};
85+
//create local variable
8586
class LocalVarDecl :public ParserNode
8687
{
8788
public:
@@ -97,6 +98,7 @@ namespace Mer
9798
std::vector<UptrPNode> exprs;
9899
type_code_index type;
99100
};
101+
//create global variable
100102
class GloVarDecl :public ParserNode
101103
{
102104
public:

interpreter/include/word_record.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ namespace Mer
7171
struct ArrayRecorder :public Mer::WordRecorder {
7272
public:
7373
ArrayRecorder(type_code_index type, size_t p, const std::vector<size_t>& arr_indxs) :
74-
WordRecorder(SARRAY), pos(p),array_indexs(arr_indxs) {}
74+
WordRecorder(SARRAY), pos(p), array_indexs(arr_indxs) {
75+
type_code = type;
76+
}
7577
size_t get_pos()override {
7678
return pos + mem.get_current();
7779
}
@@ -104,7 +106,9 @@ namespace Mer
104106
struct GArrayRecorder :public Mer::WordRecorder {
105107
public:
106108
GArrayRecorder(type_code_index type, size_t p, const std::vector<size_t>& arr_indxs) :
107-
WordRecorder(SGARR), pos(p), array_indexs(arr_indxs) {}
109+
WordRecorder(SGARR), pos(p), array_indexs(arr_indxs) {
110+
type_code = type;
111+
}
108112
size_t get_pos()override {
109113
return pos;
110114
}

interpreter/source/basic_objects.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ namespace Mer
272272
{
273273
throw std::overflow_error("array overflow!");
274274
}
275-
return mem[pos + i + 1];
275+
return mem[pos + i + 1u];
276276
}
277277

278278
Mem::Object Mem::GArray::clone() const

0 commit comments

Comments
 (0)