일종의 미니쉘을 만들고 있는데 커맨드를 받아서 커맨드와 인자를 분리하고 커맨드를 일종의 테이블과 비교해서 함수를 찾아가서 인자를 건네주고 실행시키려고 하는데 요 테이블을 어떻게 구현해야 확장성있고 괜찮게 만들수 있을까요? 단순히 switch로 하면 음.. 나중에 점점 더 힘들어지고 그럴거같은데요..
만드는데 투자할 수 있는 시간이 좀 있다면 파서와 스캐너를 작성하여 하시면 될 것 같습니다. lex 종류와 yacc종류에서 뱉어내는 소스를 활용하셔도 되구요
C로 만드시는 거면 커맨드이름, 함수포인터, 인자정보 등을 구조체 배열로 만들어서 많이들 쓰는 것 같고요.
C++이면 다양한 방법이 있을텐데 우선 떠오르는 건 strategy pattern이 생각나네요.
http://kldp.org/node/107263
OTL
답변 주신분들 감사합니다 ^^; VC++에서 stl가지고 만드는 중이라 gcc쪽으로는 ㅎㅎ;; 일단 함수포인터하고 스트링으로 맵만들어서 하는걸로 만들고 있습니다~
lex하고 yacc는 음... 나중에 기회가 되면 -0-;;
텍스트 포맷에 대한 자세한 정보
<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]
만드는데 투자할 수
만드는데 투자할 수 있는 시간이 좀 있다면 파서와 스캐너를 작성하여 하시면 될 것 같습니다.
lex 종류와 yacc종류에서 뱉어내는 소스를 활용하셔도 되구요
C로 만드시는 거면
C로 만드시는 거면 커맨드이름, 함수포인터, 인자정보 등을 구조체 배열로 만들어서 많이들 쓰는 것 같고요.
C++이면 다양한 방법이 있을텐데 우선 떠오르는 건 strategy pattern이 생각나네요.
http://kldp.org/node/107263
http://kldp.org/node/107263
OTL
답변 주신분들
답변 주신분들 감사합니다 ^^; VC++에서 stl가지고 만드는 중이라 gcc쪽으로는 ㅎㅎ;;
일단 함수포인터하고 스트링으로 맵만들어서 하는걸로 만들고 있습니다~
lex하고 yacc는 음... 나중에 기회가 되면 -0-;;
댓글 달기