C# 컴파일러 개발: 논리 연산자 및 if/else 구조 지원 구현
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
C# 컴파일러/인터프리터 개발자, 언어 설계자, 프로그래밍 언어 학습자
핵심 요약
Token
클래스에>
,<
,!
,&
,|
연산자 및if
,then
,else
,end
키워드 매핑Lexer
수정으로 토큰 추출 로직 확장SyntaxParser
에서EvaluateLogicalOr
,EvaluateLogicalAnd
등 논리 연산자 평가 메서드 구현
섹션별 세부 요약
1. 토큰 매핑 확장
Token.cs
에GREATER
,LESS
,NOT
,AMPERSAND
,PIPE
상수 추가Greater
,Less
,Equal
,NotEqual
,And
,Or
토큰 생성 메서드 정의IF
,THEN
,ELSE
,END
키워드 매핑Token.If
,Token.Then
,Token.Else
,Token.End
생성자 추가
2. 렉서 수정
ExtractKeyword()
메서드에서if
,then
,else
,end
키워드 식별 로직 추가ExtractSymbols()
메서드에서&&
,||
,==
등 이중 문자 토큰 처리doubleCharToken
스위치 구문으로 논리 연산자 식별
3. 구문 분석기 구현
SyntaxParser.EvaluateLogicalOr
및EvaluateLogicalAnd
메서드로 논리 연산자 평가EvaluateComparison
메서드에서==
,!=
,>
,<
,>=
,<=
연산자 처리EvaluateOperation
에서Math.Abs
와epsilon
사용한 실수 비교 알고리즘 구현
결론
- "Crafting Interpreters" 책 참고로 C# 컴파일러 구현 전략 수립
- 논리 연산자 처리 시
epsilon
기반의 실수 비교 로직 필수 적용 - 다음 단계:
if/else
조건 구조 구현 및SyntaxParser
확장 필요