PL λαβ
Lab 1.2a[최준혁]: 구문 분석기 본문
오늘 강의 내용 중 이해하지 못한 부분이 많아 이것저것 찾아보며 따라해본 수준으로 만들어보았습니다. 주말동안 다시 공부해보고 수정하도록 하겠습니다.
class Token:
def __init__(self, lexeme, location):
self.lexeme = lexeme
self.location = location
def match(self, another_token): # ?
return self.lexeme == another_token.lexeme
class Input:
def __init__(self, multiline_inputs):
self.token_list = []
for line in multiline_inputs:
for token in line.split(' '): # space로만 구분되는거 수정 필요
self.token_list.append(token)
self.token_list.append('\n')
# self.current_line = 0
self.current_index = 0
def nextToken(self):
if len(self.token_list) <= self.current_index:
return None
token = Token(self.token_list[self.current_index], self.current_index)
return token
def parse(lexical_analyzer): # Input class를 인자로
# 순환 하강 구문분석
# list를 return?
LA = lexical_analyzer.nextToken()
A(LA, lexical_analyzer)
def A(LA, lexical_analyzer):
if LA == None:
return 0
else:
L(LA, lexical_analyzer)
A(LA, lexical_analyzer)
def L(LA, lexical_analyzer):
next_token = lexical_analyzer.nextToken()
S(next_token, lexical_analyzer)
next_token.match('\n')
def S():
if LA == '(':
match('(')
S()
match(')')
S()
else:
pass
'kos' 카테고리의 다른 글
Lab 1.2b[최준혁]: 구문 분석기 (0) | 2021.04.12 |
---|---|
Lab 1.2b[김예령]: 구문 분석기 (0) | 2021.04.12 |
Lab 1.2a[박인철]: 구문 분석기 (0) | 2021.04.08 |
Lab 1.2a[김예령]: 구문 분석기 (0) | 2021.04.08 |
Lab 1.2: 구문 분석기 (0) | 2021.04.08 |
Comments