-1
こんにちは私はCでクラス用のlc3アセンブラ(??)を書くはずですが、私はトークナイザを書いていませんでした。私のセグメンテーションの誤り。最初の行の後に。LC3アセンブラのためにCでカスタムトークナイザを書く
\ n \ rと考慮してください。そして新しい行は が
英数字または、または間違ったスペース以外を検討し、コメントをスキップする(初めてのポスターがところで。本当にここに人を愛する!うまくいけば、いつか貢献する十分得られます!)
ありがとうございます。
ファイル入力(run.asm)
.ORIG 0X3000
HALT
トークナイザ。
// 512 lines max
// 10 token max
// 32 char tokean max.
char code[512][10][32];
//skips comment,
void Tokenize(FILE *fileIn){
int i = 0;
int j = 0;
int k = 0;
char in = '\0';
bool freshLine = false;
bool freshToken = false;
while((in = fgetc(fileIn)) != EOF){
if((in >= 'A' && in <= 'Z') || (in >= 'a' && in <= 'z') || (in >= '0' && in <= '9') || in == '-' || in == '.'){
if(freshLine){
code[i][j][k] = '\0';
freshLine = false;
freshToken = false;
k=0;
j= 0;
i++;
printf("\n");
}
else if(freshToken){
code[i][j][k] = '\0';
freshToken = false;
k=0;
j++;
printf("^");
}
code[i][j][k++] = in;
printf("%c", in);
}
else if(in == ';' || in == '\n' || in == '\r'){
freshLine = true;
}
else{
freshToken = true;
}
}
}
は無駄にそれをしました。私はファイルを削除し、コンピュータを再起動し、gccの代わりにclangを使用しました。そのうちの1人はそれを修正しました!助けてくれてありがとうtho! –