일지
인터프리터...26
niamdank
2020. 12. 14. 11:36
전자 계산기 프로그램
재귀적 하향 구문 분석 루틴을 이용해 전자 계산기를 만든다. 적용할 기능은 다음과 같다.
- 변수는 a~z, 26개
- 정수만 지원
- 연산 및 대입 처리
- 연산자 () + - * / 지원
- 사칙 연산 법칙 적용
- ? 로 출력
- 공백 상태에서 엔터 시 종료
MiniCalculator.h
#pragma once
#include <iostream>
#pragma region 토큰 설정
enum class TokenKind : char
{
LeftParenthesis = '(', RightParenthesis = ')',
Plus = '+', Minus = '-', Multiply = '*', Divide = '/',
Assign = '=',
Print = 1,
VariableName, Int,
EndOfToken,
Others,
};
struct Token
{
Token()
:tokenKind(TokenKind::Others), intValue(0) {}
Token(TokenKind tokenKind, int intValue = 0)
:tokenKind(tokenKind), intValue(intValue) {}
TokenKind tokenKind;
int intValue;
};
#pragma endregion
참고문헌