파이썬 정규식도 강력하다.
정규식 객체로 만들면 (compile 하여)
상당히 빨라진다. 이는 정규식이 파싱되어 임시 정규식 객체가 생성되는 과정이 한번만 이루어지게 되는것 같다.
모든 정규식을 다 합쳐서 하나의 정규식으로 만들고
앞에서부터 하나씩 매치해가면서 잘라내기 시작한다 (pos : 시작위치를 옮긴다)
groups() 는 모든 그룹 (정규식에서 괄호() 로 둘러싸인 부분) 에 대해
매치된 부분을 리턴한다. 매치되지 않았으면 None 이 된다.
그래서 가장 처음 나타나는 매치된 문자열을 리턴하게 되므로
token list 는 먼저 쓴 순서대로 우선순위가 존재할 것이다.
lex 류와 같이 매치되지 않은 token이 있으면 더이상 진행할수 없으므로 중단된다.
이러한 형태의 lex 템플릿은 매우 유용한것 같다.
'간단프로그래밍' 카테고리의 다른 글
bresenham 3d + opengl , 복셀 기반 직선 뷰어 (0) | 2011.12.21 |
---|---|
Bresenham algorithm 3d, 브레즌햄, 브레제남 알고리즘 3차원, C언어 (0) | 2011.12.20 |
python 간단한 lexer 만들기 (0) | 2011.08.06 |
PyQt , 간단 예제, calculator (0) | 2011.08.05 |
블럭 단위 더블 링크드 리스트 (0) | 2011.07.31 |
opengl 확장 기능 알아보기 (0) | 2011.06.28 |
댓글을 달아 주세요