지금 정규표현 라이브러리를 구현할려고 코딩중에 단순한 것에서 부딪히네요..
처음에는 간단하게 a.*을 인식하고 처리하는 놈을 만들었는데..
a.*ab를 생각하니 막막해 지네요...상태전이도를 그려볼라 했건만...잘 안되네요.
조언 부탁 드리겠습니다..
상태 전이도가 status diagram을 말씀하시는 거라면..^^;; (용어들이 달라서) 맞는지는 모르겠지만, 한번 적어봤습니다.
각 status 이동 마다 char가 전진한다고 가정합니다.
<stat0> if ('a'이면) stat1으로 아니면 stat0로 <stat1> stat2로 <stat2> if ('a'이면) stat3으로 아니면 stat2로 <stat3> if ('b'이면) OK 아니면 stat1로
피드백 좀 주심~ 위에 적은게 맞는거 같나여? 아니면 문제가 있는지?
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
General한 정규표현식을 처리하려면 위의 식대로 하면 안됩니다. runtime에 정규표현식을 parsing 해서 state machine을 빌드해야합니다. Aho가 쓴 컴파일러 책에 정규표현식을 DFA로 변환하는 과정이 나와있습니다. 몇 장에 있는지는 기억이 나지 않지만, 초반에 나와 있습니다.
제가 문제를 잘못 이해했나 보군여..^^;;
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
상태 전이도가 status diagram을 말씀하시는 거라면..^^;;
상태 전이도가 status diagram을 말씀하시는 거라면..^^;;
(용어들이 달라서)
맞는지는 모르겠지만, 한번 적어봤습니다.
각 status 이동 마다 char가 전진한다고 가정합니다.
<stat0>
if ('a'이면) stat1으로
아니면 stat0로
<stat1>
stat2로
<stat2>
if ('a'이면) stat3으로
아니면 stat2로
<stat3>
if ('b'이면) OK
아니면 stat1로
피드백 좀 주심~ 위에 적은게 맞는거 같나여? 아니면 문제가 있는지?
피드백 좀 주심~ 위에 적은게 맞는거 같나여? 아니면 문제가 있는지?
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
General한 정규표현식을 처리하려면 위의 식대로 하면 안됩니다.r
General한 정규표현식을 처리하려면 위의 식대로 하면 안됩니다.
runtime에 정규표현식을 parsing 해서 state machine을 빌드해야합니다.
Aho가 쓴 컴파일러 책에 정규표현식을 DFA로 변환하는 과정이 나와있습니다. 몇 장에 있는지는 기억이 나지 않지만, 초반에 나와 있습니다.
제가 문제를 잘못 이해했나 보군여..^^;;
제가 문제를 잘못 이해했나 보군여..^^;;
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
댓글 달기