Project/C Script

함수 파싱 성공



string str="int f1(                  )\n{\n;\n}\nint f2(int a, int         c, int b)\n{\nif(a==b)\n{return b;}\nreturn a;\n}\nint main()\n{\nf1();\nf2();\n}\n";


위와 같은 문자열을 저렇게 파싱했습니다.

컴파일러에 대한 지식인 전무한 상태로 그냥 감각?대로 만들고 있습니다.

함수를 파싱한 뒤에 main을 호출시켜서 ;를 기준으로 토큰을 스택에 넣고 한 줄씩 실행시키면서 할 생각입니다.


만들면서 느낀 점인데, 

비주얼 베이직6 유저로서 C++은 굉장히 불편하고 

기본으로 지원되거나 레퍼런스로 보기에 적합하지 않은 경우가 잦은거 같습니다. 

String도 그냥 String이 아니라 std::basic_string<std::traits_char< 어쩌고저쩌고..... 

정말 알아보기 힘드네요. 


그래서.. 직접 만들었습니다. vb기준으로 split이나 instr이나 replace등..


역시나 정규식은 O(n logn) 인가봅니다. 문자열의 길이가 길어져도 짧아져도 시간대는 비슷하더군요.

그에 반해 문자열을 하나씩 접근하는 경우엔 문자열의 길이의 exponential 그래프를 그리는 것 같구요. (최민규교수님빙의-쉰목소리첨가)


소스 공개는 너무 더럽고 완성이 된다면 로직을 올려봐야겠어요.

,

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today :
Yesterday :
Total :

태그