C# 컴파일러 개발: 논리 연산자 및 if/else 구조 구현
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

C# 컴파일러 개발: 논리 연산자 및 if/else 구조 지원 구현

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

C# 컴파일러/인터프리터 개발자, 언어 설계자, 프로그래밍 언어 학습자

핵심 요약

  • Token 클래스에 >, <, !, &, | 연산자 및 if, then, else, end 키워드 매핑
  • Lexer 수정으로 토큰 추출 로직 확장
  • SyntaxParser에서 EvaluateLogicalOr, EvaluateLogicalAnd 등 논리 연산자 평가 메서드 구현

섹션별 세부 요약

1. 토큰 매핑 확장

  • Token.csGREATER, 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.EvaluateLogicalOrEvaluateLogicalAnd 메서드로 논리 연산자 평가
  • EvaluateComparison 메서드에서 ==, !=, >, <, >=, <= 연산자 처리
  • EvaluateOperation에서 Math.Absepsilon 사용한 실수 비교 알고리즘 구현

결론

  • "Crafting Interpreters" 책 참고로 C# 컴파일러 구현 전략 수립
  • 논리 연산자 처리 시 epsilon 기반의 실수 비교 로직 필수 적용
  • 다음 단계: if/else 조건 구조 구현 및 SyntaxParser 확장 필요