EmueraCompiler 만드는 중인데 분량이 토나옵니다

ㅇㄹ | 개발현황 | 조회 수 327 | 2016.09.28. 08:55

이제 어떻게 컴파일할지 감잡아서 작업중입니다

 

 

@SYSTEM_TITLE

FLAG:100 = 9999

PRINTL Plain Text

FLAG:101 = 1 + 6 / 2 * 3

 

 

이걸 MSIL로 컴파일하면

 

 

     .method public 
        instance void SYSTEM_TITLE () cil managed 
    {
        // Method begins at RVA 0x206c
        // Code size 114 (0x72)
        .maxstack 4
        .locals init (
            [0] object,
            [1] object
        )

        IL_0000: ldc.i8 9999
        IL_0009: box [mscorlib]System.Int64
        IL_000e: stloc.0
        IL_000f: ldarg.0
        IL_0010: ldfld class [SharedLibrary]SharedLibrary.Data.IDataBase ERB_TITLE::_dataBase
        IL_0015: ldstr "FLAG"
        IL_001a: ldc.i8 100
        IL_0023: box [mscorlib]System.Int64
        IL_0028: ldloc.0
        IL_0029: callvirt instance void [SharedLibrary]SharedLibrary.Data.IDataBase::set_Item(string, object, object)
        IL_002e: ldarg.0
        IL_002f: ldfld class [SharedLibrary]SharedLibrary.IFramework ERB_TITLE::_framework
        IL_0034: ldstr "Plain Text"
        IL_0039: ldc.i4 1
        IL_003e: callvirt instance void [SharedLibrary]SharedLibrary.IFramework::Print(string, valuetype [SharedLibrary]SharedLibrary.Function.PrintFlags)
        IL_0043: ldc.i8 10
        IL_004c: box [mscorlib]System.Int64
        IL_0051: stloc.1
        IL_0052: ldarg.0
        IL_0053: ldfld class [SharedLibrary]SharedLibrary.Data.IDataBase ERB_TITLE::_dataBase
        IL_0058: ldstr "FLAG"
        IL_005d: ldc.i8 101
        IL_0066: box [mscorlib]System.Int64
        IL_006b: ldloc.1
        IL_006c: callvirt instance void [SharedLibrary]SharedLibrary.Data.IDataBase::set_Item(string, object, object)
        IL_0071: ret
    } // end of method ERB_TITLE::SYSTEM_TITLE

 

 

C#으로 디컴파일해보면

 

 

     public void SYSTEM_TITLE()
    {
        object value = 9999L;
        this._dataBase["FLAG", 100L] = value;
        this._framework.Print("Plain Text", PrintFlags.NEWLINE);
        object value2 = 10L;
        this._dataBase["FLAG", 101L] = value2;
    }

 

여기까진 성공했습니다...

 

 

아얘 컴파일된 LogicalLine을 잡아다가 IL로 만드는 방법으로 하고 있습니다

다만 분량이 워낙 많아서 오래 걸리네요(Instruction만 80개에 FunctionMethod도 그만큼있...)

 

그래도 저번에 답도 없던 컴파일러 만드는것보단 훨씬 쉽습니다

typeof하고 il.Emit(OpCodes.Ldc_I8, 0L); 이 짓을 10월까지 하면 대충 완성될듯

댓글 쓰기
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
취소
말 던지기전에 10초만 고민하고, 자기가 쓴 글을 다시 한번만 읽어보셈.
그 10초가 다음 대화의 방향을 크게 바꿀 수 있을지도 모름.
번호 분류 제목 날짜 글쓴이 최근 수정일 조회 수
공지 이메일 적지 마세요 제발! [6] 18.11.07. 파라디클로로.. 19.05.26. 9743
공지 정보글 [9] 18.06.16. 파라디클로로.. 19.06.10. 25814
공지 에라판 이용안내 18.05.14. 파라디클로로.. 18.12.31. 13523
공지 eraTHYMKR 20191028 [28] 18.05.14. ㅇㄹ 20.03.24. 40297
72 개발현황 솔직히 그냥 내팽겨쳐놨던 J+ 사나에 요즘 다시 시작하고 있습니다. file 16.04.05. Erteicia 16.04.05. 347
71 개발현황 pyera 프로젝트 경과 2 [4] 16.04.27. ink 16.04.27. 467
70 개발현황 리버스동방촉수궁 채애신 [6] file 16.06.29. 하니 16.07.01. 4458
69 개발현황 제가 만든다고 했던놈입니다 file 16.09.17. ㅇㄹ 16.09.17. 1179
68 개발현황 EmueraFramework 예제 [1] file 16.09.17. ㅇㄹ 16.09.17. 998
» 개발현황 EmueraCompiler 만드는 중인데 분량이 토나옵니다 16.09.28. ㅇㄹ 16.09.28. 327
66 개발현황 [메가텐] 롯폰기 대환락가 번역 중 [5] 16.10.04. ㅇㅅ 16.10.05. 581
65 개발현황 에라번역 3버전에 구상중인 기능들입니다 16.10.10. ㅇㄹ 16.10.10. 227
64 개발현황 롯폰기 대환락가 번역중에 날려버렸습니다. [2] 16.10.16. ㅇㅇ 16.10.16. 294
63 개발현황 jinzo 님 개별팩에서 패치완료 [3] 16.11.04. ㅇㄹ 16.11.05. 555
62 개발현황 YM 2레벨 전부 잡고 1레벨 조금 잡았습니다 [2] file 16.11.04. ㅇㄹ 16.11.06. 573
61 개발현황 에라번역 단축키 추천받습니다 16.11.30. ㅇㄹ 16.11.30. 160
60 개발현황 싸질러놓은거 마저싸러 돌아왔다 [6] 16.12.03. 오에리 16.12.18. 1739
59 개발현황 [메가텐]오에리 에디션 진행상황 [7] 16.12.24. 오에리 16.12.28. 923
58 개발현황 환상향의 왕 - 전투모드 수정완료 및 향림당 장사시스템 제작 중 [5] 16.11.15. jinzo 17.03.27. 1390
57 개발현황 마이너판 여성화 여성호르몬 설정 성공했습니다 (인증샷) [20] file 16.05.09. 월요일 9시.. 17.03.27. 2049
56 개발현황 에라토호 j 테위 번역중인데 [2] 17.03.01. 번역기70%.. 17.04.01. 703
55 개발현황 쿠즈노하 대사 개조, 덤 루시펠 연모 대사 개조 [7] file 17.04.17. 마개조술사999 17.04.21. 587
54 개발현황 루시펠 이벤트, 애무 관련 대사 조금 개조 & 딸 이벤트 대사 개조 [1] file 17.05.01. 마개조술사999 17.05.01. 809
53 개발현황 [메가텐] 오에리 에디션 - 사이퍼즈 [8] file 16.12.31. 오에리 17.07.13. 1534