부모글 보이기/감추기 AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. (연관된 글이 1개 있습니다.) BBI 인터프리터 C/C++ 코드를 C#으로 변환 아래 글에 이어, 인터프리터 어휘 분석 프로그램 - C# 예제 ; https://www.sysnet.pe.kr/2/0/10903 인터프리터 - 역폴란드 표기법을 이용한 식의 분석 - C# 예제 ; https://www.sysnet.pe.kr/2/0/10904 인터프리터 - 재귀적 하향 구문 분석 C# 예제 ; https://www.sysnet.pe.kr/2/0/10907 마지막으로, 만들면서 배우는 인터프리터: 컴파일러 이론으로 만드는 나만의 스크립트 언어 ; http://www.yes24.com/24/goods/7858784?scode=032 책의 BBI Interpreter C/C++ 소스 코드를 C#으로 변환한 것을 올립니다. 사용 방법은 다음과 같은 식입니다. static void Main(string[] args) { string text = File.ReadAllText("sample0.txt"); Interpreter bbi = new Interpreter(); bbi.Convert(text); bbi.SyntaxCheck(); bbi.Execute(); } 비주얼 스튜디오에서 디버그 모드로 한줄 한줄 실행해 보면 눈에 들어오실 것입니다. ^^ (첨부한 파일은 소스 코드입니다.) [이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.] [다음 글] .NET Framework: 563. 디버깅 용도로 이진 트리의 내용을 출력하는 방법[이전 글] .NET Framework: 561. null 처리된 객체가 왜 GC에 의해 수집되지 않을까요? [연관 글] 인터프리터 원리가 궁금합니다. [최초 등록일: 3/17/2016] [최종 수정일: 4/12/2024] 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다. by SeongTae Jeong, mailto:techsharer at outlook.com 비밀번호 댓글 작성자 2016-03-18 08시47분 Sample 파일까지 친절히 넣어주셨네요 ^^좋은 자료 감사합니다!덕분에 인터프리터 약간이라도 이해를 했네요. 김선우 2016-03-18 02시37분 대부분의 C 코드 문법을 C#에 맞게 변환하느라 네이밍 룰이 엉망입니다. ^^; 그래도 분석하기에는 제가 변환한 C# 버전이 더 편안하지 않을까 싶어 올려 봤습니다. ^^ 정성태 2023-04-27 09시14분 ScriptDOM .NET library for T-SQL parsing is now open source; https://techcommunity.microsoft.com/t5/azure-sql-blog/scriptdom-net-library-for-t-sql-parsing-is-now-open-source/ba-p/3804284-------------------------------AZHenley/teenytinycompiler; https://github.com/AZHenley/teenytinycompilerLet's make a Teeny Tiny compiler, part 1; https://austinhenley.com/blog/teenytinycompiler1.htmlLet's make a Teeny Tiny compiler, part 2; https://austinhenley.com/blog/teenytinycompiler2.htmlLet's make a Teeny Tiny compiler, part 3; https://austinhenley.com/blog/teenytinycompiler3.html 정성태 ... 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 ... NoWriterDateCnt.TitleFile(s) 13490정성태12/19/202310136개발 환경 구성: 698. Golang - GLIBC 의존을 없애는 정적 빌드 방법13489정성태12/19/202310090개발 환경 구성: 697. GoLand에서 ldflags 지정 방법13488정성태12/18/20239547오류 유형: 884. HTTP 500.0 - 명령행에서 실행한 ASP.NET Core 응용 프로그램을 실행하는 방법13487정성태12/16/202310657개발 환경 구성: 696. C# - 리눅스용 AOT 빌드를 docker에서 수행 [1]13486정성태12/15/20239777개발 환경 구성: 695. Nuget config 파일에 값 설정/삭제 방법13485정성태12/15/20239449오류 유형: 883. dotnet build/restore - error : Root element is missing13484정성태12/14/202310184개발 환경 구성: 694. Windows 디렉터리 경로를 WSL의 /mnt 포맷으로 구하는 방법13483정성태12/14/202310448닷넷: 2184. C# - 하나의 resource 파일을 여러 프로그램에서 (AOT 시에도) 사용하는 방법113482정성태12/13/202311679닷넷: 2183. C# - eFriend Expert OCX 예제를 .NET Core/5+ Console App에서 사용하는 방법 [2]113481정성태12/13/202310570개발 환경 구성: 693. msbuild - .NET Core/5+ 프로젝트에서 resgen을 이용한 리소스 파일 생성 방법113480정성태12/12/202312410개발 환경 구성: 692. Windows WSL 2 + Chrome 웹 브라우저 설치13479정성태12/11/202310065개발 환경 구성: 691. WSL 2 (Ubuntu) + nginx 환경 설정13477정성태12/8/202310712닷넷: 2182. C# - .NET 7부터 추가된 Int128, UInt128 [1]113476정성태12/8/202310577닷넷: 2181. C# - .NET 8 JsonStringEnumConverter의 AOT를 위한 개선113475정성태12/7/202310845닷넷: 2180. .NET 8 - 함수 포인터에 대한 Reflection 정보 조회113474정성태12/6/202310394개발 환경 구성: 690. 닷넷 코어/5+ 버전의 ilasm/ildasm 실행 파일 구하는 방법 - 두 번째 이야기13473정성태12/5/202310747닷넷: 2179. C# - 값 형식(Blittable)을 메모리 복사를 이용해 바이트 배열로 직렬화/역직렬화113472정성태12/4/202310150C/C++: 164. Visual C++ - InterlockedCompareExchange128 사용 방법13471정성태12/4/202310685Copilot - To enable GitHub Copilot, authorize this extension using GitHub's device flow13470정성태12/2/202311309닷넷: 2178. C# - .NET 8부터 COM Interop에 대한 자동 소스 코드 생성 도입 [1]113469정성태12/1/202311222닷넷: 2177. C# - (Interop DLL 없이) CoClass를 이용한 COM 개체 생성 방법113468정성태12/1/202310246닷넷: 2176. C# - .NET Core/5+부터 달라진 RCW(Runtime Callable Wrapper) 대응 방식113467정성태11/30/202310981오류 유형: 882. C# - Unhandled exception. System.Runtime.InteropServices.COMException (0x800080A5)113466정성태11/29/202310798닷넷: 2175. C# - DllImport 메서드의 AOT 지원을 위한 LibraryImport 옵션13465정성태11/28/202310506개발 환경 구성: 689. MSBuild - CopyToOutputDirectory가 "dotnet publish" 시에는 적용되지 않는 문제113464정성태11/28/202310414닷넷: 2174. C# - .NET 7부터 UnmanagedCallersOnly 함수 export 기능을 AOT 빌드에 통합1 ... 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 ...