부모글 보이기/감추기 AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. (연관된 글이 1개 있습니다.) 인터프리터 - 재귀적 하향 구문 분석 C# 예제 역시 이번에도 다음 책의, 만들면서 배우는 인터프리터: 컴파일러 이론으로 만드는 나만의 스크립트 언어 ; http://www.yes24.com/24/goods/7858784?scode=032 108 페이지에 나오는 minicalc.cpp 파일을 C# 버전으로 옮겨 보았습니다. 코드는 이렇게 작성할 수 있고, MiniCalc miniCalc = new MiniCalc(); miniCalc.Run("a=10"); miniCalc.Run("b=20"); miniCalc.Run("c = a + b * 30"); miniCalc.Run("? c"); miniCalc.Run("c=(a+b)*30"); miniCalc.Run("? c"); miniCalc.Run("? 1+2+3+4-5"); 실행하면 다음과 같은 출력 결과를 볼 수 있습니다. 610 900 5 (첨부한 파일은 소스 코드입니다.) [이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.] [다음 글] 기타: 55. ETW man 파일 목록[이전 글] .NET Framework: 553. C# 관리 코드에서 IMetaDataDispenserEx, IMetaDataImport 관련 인터페이스를 얻는 방법 [연관 글] .NET Framework: 562. BBI 인터프리터 C/C++ 코드를 C#으로 변환 [최초 등록일: 2/24/2016] [최종 수정일: 2/24/2016] 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다. by SeongTae Jeong, mailto:techsharer at outlook.com 비밀번호 댓글 작성자 ... 121 [122] 123 124 125 126 127 128 129 130 131 132 133 134 135 ... NoWriterDateCnt.TitleFile(s) 10938정성태4/13/201625014오류 유형: 325. 파일 삭제 시 오류 - Error 0x80070091: The directory is not empty.10937정성태4/13/201633789Windows: 115. UEFI 모드로 윈도우 10 설치 가능한 USB 디스크 만드는 방법10936정성태4/8/201645682Windows: 114. 삼성 센스 크로노스 7 노트북의 운영체제를 USB 디스크로 새로 설치하는 방법 [3]10935정성태4/7/201630121웹: 32. Edge에서 Google Docs 문서 편집 시 한영 전환키가 동작 안하는 문제10934정성태4/5/201627324디버깅 기술: 77. windbg의 콜스택 함수 인자를 쉽게 확인하는 방법 [1]10933정성태4/5/201632633.NET Framework: 571. C# - 스레드 선호도(Thread Affinity) 지정하는 방법 [8]110932정성태4/4/201625604VC++: 96. C/C++ 식 평가 - printf("%d %d %d\n", a, a++, a);10931정성태3/31/201626018개발 환경 구성: 283. Hyper-V 내에 구성한 Active Directory 환경의 시간 구성 방법 [3]10930정성태3/30/201624074.NET Framework: 570. .NET 4.5부터 추가된 CLR Profiler의 실행 시 Rejit 기능10929정성태3/29/201634961.NET Framework: 569. ServicePointManager.DefaultConnectionLimit의 역할110928정성태3/28/201640536.NET Framework: 568. ODP.NET의 완전한 닷넷 버전 Oracle ODP.NET, Managed Driver [2]110927정성태3/25/201628390.NET Framework: 567. System.Net.ServicePointManager의 DefaultConnectionLimit 속성 설명10926정성태3/24/201629318.NET Framework: 566. openssl의 PKCS#1 PEM 개인키 파일을 .NET RSACryptoServiceProvider에서 사용하는 방법 [10]110925정성태3/24/201622138.NET Framework: 565. C# - Rabin-Miller 소수 생성 방법을 이용하여 RSACryptoServiceProvider의 개인키를 직접 채워보자 - 두 번째 이야기110924정성태3/22/201624257오류 유형: 324. Visual Studio에서 Azure 클라우드 서비스 생성 시 Failed to initialize the PowerShell host 에러 발생10923정성태3/21/201623743.NET Framework: 564. C# - DGML로 바이너리 트리 출력하는 방법 [1]110922정성태3/21/201625564.NET Framework: 563. 디버깅 용도로 이진 트리의 내용을 출력하는 방법110921정성태3/17/201629294.NET Framework: 562. BBI 인터프리터 C/C++ 코드를 C#으로 변환 [3]210920정성태3/15/201628928.NET Framework: 561. null 처리된 객체가 왜 GC에 의해 수집되지 않을까요? [6]110919정성태3/12/201625084.NET Framework: 560. C#에서 return할 때 명시적으로 casting한 것과 안한 것의 차이 [2]110918정성태3/10/201622391.NET Framework: 559. WPF - ICommand.CanExecuteChanged가 해제되지 않는 문제 [2]110917정성태3/10/201642020.NET Framework: 558. WPF - ICommand 동작 방식 [9]110916정성태3/9/201630201.NET Framework: 557. 머신 바이트 배열로부터 역어셈블해주는 라이브러리 - Udis86 Assembler210915정성태3/9/201624655오류 유형: 323. FatalExecutionEngineError was detected10914정성태3/8/201628208오류 유형: 322. 정적 라이브러리 참조 시 "LNK2019 unresolved external symbol '...' referenced in function" 오류 발생110913정성태3/7/201627702.NET Framework: 556. C#으로 다루는 MBR(Master Boot Record) [9]1 ... 121 [122] 123 124 125 126 127 128 129 130 131 132 133 134 135 ...