Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- 재귀
- 백트래킹
- 프로그래밍
- SNS
- 안드로이드
- C++
- 알고리즘
- 정렬
- java
- 정수론
- 수학
- 백준
- 병합정렬
- 계수정렬
- 기수정렬
- 버블정렬
- 삽입정렬
- 힙정렬
- Median of Medians
- 동적계획법
- DP
- 자바
- 동적프로그래밍
- 퀵정렬
- 자료구조
- 선택알고리즘
- 선택정렬
- 프로그래밍언어
- 다이나믹프로그래밍
Archives
- Today
- Total
MODE::CREATIVE
[구현 과제] 재귀하강 파서 구현 본문
프로그램 개요
l 본 프로그램은 EBNF로 문법이 정의되는 언어를 위한 Recursive-Descent Parser를 C/C++, Java, Python으로 각각 구현한 프로그램임, 프로그램은 아래의 EBNF문법을 모두 구현함

프로그램 주요 로직
- 사용자 입력 처리:
- 프로그램 실행 시 사용자의 입력을 한 줄씩 받습니다.
- 사용자가 'exit'을 입력할 때까지 계속해서 입력을 받습니다.
- 전역 변수 및 함수:
- 전역 변수로는 pos (커서의 위치)와 token (토큰)이 있습니다.
- getNextToken() 함수를 사용하여 다음 토큰을 읽고 커서의 위치를 관리합니다.
- 프로그램 실행 흐름:
- program() 함수:
- 입력이 끝날 때까지 각 statement를 읽습니다.
- statement() 함수:
- 첫 토큰에 따라 할당문 또는 출력문을 실행합니다.
- program() 함수:
- 수식 처리:
- expr() 함수:
- 토큰을 미리 보고 산술 표현식 또는 불 표현식으로 분기합니다.
- bexpr() 함수:
- compare()를 사용하여 true 또는 false를 반환합니다.
- aexpr() 함수:
- term(), factor(), number(), dec() 함수를 사용하여 숫자의 사칙 연산을 수행합니다.
- expr() 함수:

'Programing Language' 카테고리의 다른 글
| [프로그래밍 언어론] 2.프로그래밍 언어 의미론 (0) | 2024.05.04 |
|---|---|
| [프로그래밍 언어론] 1. 프로그래밍 언어의 종류와 특징 (0) | 2024.05.04 |