From c481944053ab5a1f59753a6383a8af1320286a2f Mon Sep 17 00:00:00 2001 From: zihasoo Date: Thu, 8 Jun 2023 23:02:03 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit System::parse_arg의 인수를 잘못 파싱하던 버그 수정 리드미에 프로그램 인수 설명 추가 Lexer 생성자 에러 메시지 수정 --- Lexer.cpp | 2 +- README.md | 4 ++++ System.cpp | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Lexer.cpp b/Lexer.cpp index 2faec58..6bc9b9e 100644 --- a/Lexer.cpp +++ b/Lexer.cpp @@ -6,7 +6,7 @@ Lexer::Lexer(const string& source_name) : source(source_name) { last_word.reserve(30); cur_line.reserve(80); if (!source.is_open()) { - cerr << "파일이 없거나 잘못되었습니다."; + cerr << "에러: 소스 파일이 존재하지 않거나 잘못되었습니다.."; exit(1); } } diff --git a/README.md b/README.md index ca7bf3e..229157d 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,10 @@ mov, sub, ja 등 x86 어셈블리와 네이밍이 모두 같음. 대소문자 **Parser:** Lexer를 내부적으로 가지고 있으며, 토큰을 가져와 코드의 맥락을 읽어 나감. 이를 바탕으로, opcode로 변환해 파일에 쓰는 일까지 함. +#### 프로그램 인수 설명 + +- : 입력 소스 파일 이름 +- -o : 어셈블링 결과 파일 이름 #### 추가 영상: diff --git a/System.cpp b/System.cpp index bd87357..99b3b37 100644 --- a/System.cpp +++ b/System.cpp @@ -8,7 +8,7 @@ void System::parse_arg(int argc, char **argv) { for (int i = 1; i < argc; ++i) { if (argv[i][0] == '-') { if (argv[i][1] == 'o' && i + 1 < argc) { - output_name = argv[i + 1]; + output_name = argv[++i]; } else { cerr << "에러: 프로그램 인수가 잘못되었습니다.\n"; exit(1);