디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어제 C로 매크로 프로세서 만들던놈인데 C#으로 바꿈

Blazer사마갤로그로 이동합니다. 2011.11.07 00:21:43
조회 111 추천 0 댓글 2

using System;
using System.IO;

class MP{
    static int MNTC=0, MDTC=0;
    static string[] MNT = new string[10];
    static string[,] MDT = new string[10,10];
    static string[,] S_ALA = new string[10,2];
    static string[,] R_ALA = new string[10, 2];
    static char[] delimeter = { \' \', \',\', \'\\t\' };
    static bool MACRO = false;

    private static void PASS1(string buffer, string appendFile){   
        string[] buf = new string[10];
        buf = buffer.Split(delimeter, System.StringSplitOptions.RemoveEmptyEntries);
        if (buf.Length>2 && buf[1] == "MACRO"){
            Create_MNT(buf[0]);
            for (int i = 2; i < buf.Length; i++) Create_ALA(buf[i], i - 1, 0);
            MACRO = true;
        }else if (MACRO){
            Create_MDT(buf);
        }
        else System.IO.File.AppendAllText(appendFile, buffer+"\\n");
    }

    private static void PASS2(string buffer, string appendFile){
            string[] buf = new string[10];
        buf = buffer.Split(delimeter, System.StringSplitOptions.RemoveEmptyEntries);
        int find = Search_MNT(buf[0]);
            if(find!=0){
                    for(int i = 1; i < buf.Length; i++) Create_ALA(buf[i], i, 1); 
                    Expand(appendFile, find);
            }
        else System.IO.File.AppendAllText(appendFile, buffer + "\\n");
    }

    private static void Create_MNT(string name){
        MNT[MNTC++] = name;
    }

    private static void Create_ALA(string buffer, int i, int flag){
        if(flag == 0){
                    S_ALA[i,0] = buffer;
            S_ALA[i,1] = "#"+i;
            }
            else {
                    R_ALA[i,0] = "#"+i;
            R_ALA[i,1] = buffer;
            }
    }

    private static void Create_MDT(string[] buffer){
            for (int i=0; i<buffer.Length; i++){
            Replace(ref buffer[i], S_ALA);
            MDT[MDTC, i] = buffer[i];
            if (MDT[MDTC, i] == "ENDM"){
                MDTC++;
                MACRO = false;
            }
        }
    }

    private static void Replace(ref string name, string[,] ALA){
        for(int i=0; i<ALA.GetLength(0); i++){
            if (ALA[i,0] == name) name = ALA[i,1];
        }
    }
    
    private static int Search_MNT(string name){
            for(int i=0; i<MNT.Length; i++)
            if(MNT[i] == name) return i;
            return 0;
    }

    private static void Expand(string file, int no){
        for (int i=0; i<MDT.GetLength(1); i++){
            string[] temp = MDT[no, i].Split(\' \', \'\\t\');
            for (int j=0; j<temp.Length; j++){
                Replace(ref temp[j], R_ALA);
                System.IO.File.AppendAllText(file, temp[j]+" ");
            }
        }
    }

        public static void Main(String[] args){
                if (args.Length < 2){
                        Console.WriteLine("파일명을 입력해주세요. ex) MP a.asm b.asm");
                        Environment.Exit(0);
                }
                string[] strin = System.IO.File.ReadAllLines(args[0]);
                string strtemp = "temp";
                for (int i=0; i<strin.GetLength(0); i++){
                        PASS1(strin[i], strtemp);
                }
        string[] strtmp = System.IO.File.ReadAllLines(strtemp);
        string strout = args[1];
        for (int i=0; ; i++ ){
            PASS2(strtmp[i], strout);
        }
        }
}


길닼ㅋㅋㅋㅋㅋㅋ

이번에도 댓글 안달리려나 ㅠㅠ

지금문제는... 볼드처리한덴데 교체할때 주소값을 줘야 원본 라인 문장이 바뀌잖아...

근데 나누면서 주소값 넘겨주는게 없더라구..

아는사람 좀 도와줘 ㅠㅠ

단어 하나씩 잘라서 주소값 넘겨줘도 됨...

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
286787 어쩌다 보니 프갤 4년차네... [1] 폐인의세계갤로그로 이동합니다. 11.11.08 43 0
286786 난 코딩보다 컴조립을 잘함 [6] 꼬꼬월드갤로그로 이동합니다. 11.11.08 90 0
286785 나도 1400만원만 받고싶다.. [6] 쿄스케갤로그로 이동합니다. 11.11.08 105 0
286784 야 프갤러들 웹 에이전시 차리자 [3] 분당살람갤로그로 이동합니다. 11.11.08 91 0
286783 사람들은 자신의 닉네임을 지을 때 신중할필요가 있다. [4] 개쉛기갤로그로 이동합니다. 11.11.08 116 0
286781 그런데 프로그래밍 공부할라면 뭐부터 해야하나요? [6] 디아몬드갤로그로 이동합니다. 11.11.08 123 0
286779 진짜 옛날옛적에 영국에서 [4] 분당살람갤로그로 이동합니다. 11.11.08 81 0
286778 이 정도 앱 코딩하는데 얼마나 걸려? [2] 소유미갤로그로 이동합니다. 11.11.08 91 0
286777 차라리 이대로 행성이 꼴아박고 멸망했으면 좋겠다. [1] 개쉛기갤로그로 이동합니다. 11.11.08 52 0
286776 구글 번역 quota 가 대폭 줄어들었다. [2] 시불라미갤로그로 이동합니다. 11.11.08 103 0
286775 형들 코딩 진자 재밌는거 같아요!!!! [3] 군대지원(183.101) 11.11.08 78 0
286774 스맛폰 게임에 빠져버렸음 [6] !@#ㅇㅇ갤로그로 이동합니다. 11.11.08 81 0
286773 여기서 얼마나 놀아야 프로그래밍 고수되나요? [6] 디아몬드갤로그로 이동합니다. 11.11.08 121 0
286772 갤이 죽은거냐 안낚이는 거냐 ㅠㅠ [2] McHello갤로그로 이동합니다. 11.11.08 99 0
286770 이정도면 그림 좀 그리는건가? [2] McHello갤로그로 이동합니다. 11.11.08 102 0
286769 별루냐? [4] McHello갤로그로 이동합니다. 11.11.08 107 0
286767 유클리드 기하학 원론 파면 좆간지? 다림줄갤로그로 이동합니다. 11.11.08 79 0
286766 클래스들을 만들다 보면.... [2] 남대생.갤로그로 이동합니다. 11.11.08 67 0
286764 흠 이거 어렵남? [1] 뇌지랄갤로그로 이동합니다. 11.11.08 68 0
286762 소행성 400m짜리론 지구 표면에 기스내는 정도다 [9] 남대생.갤로그로 이동합니다. 11.11.08 107 0
286761 FTA하면 미국산 프로그래머 수입되나요?? (203.226) 11.11.08 60 0
286760 내일 중간고사 보는데 오늘이 지구 마지막날?? [1] 군대지원(183.101) 11.11.08 48 0
286759 안드로이드 HttpClient 재밌네여 소행성 떨어지기전에 발견해서 기쁨 [2] Stan(220.244) 11.11.08 70 0
286757 여름도 아닌데 매미소리가 난다 천회장(221.149) 11.11.08 33 0
286756 아 형님들 비쥬얼스튜디오질문이요ㅠㅠ[조공업뎃] [2] 군대지원(183.101) 11.11.08 116 0
286754 애들아 오늘 소행성 떨어지니까 소원들 빌어라 쿄스케갤로그로 이동합니다. 11.11.08 44 0
286753 모바일쪽은 os는 무료 업글시켜주고 앱이 유료인데 [1] 분당살람갤로그로 이동합니다. 11.11.08 61 0
286752 입갤{프갤만 존나 세기말 느낌} 다림줄갤로그로 이동합니다. 11.11.08 63 0
286751 api 아는 사람 질문 좀 받아줘! [2] y녀6디리(119.68) 11.11.08 70 0
286750 운지하자 얘들아 Lover♥갤로그로 이동합니다. 11.11.08 31 0
286749 소행성 육안으로 관찰 가능하냐? 천회장(221.149) 11.11.08 43 0
286745 뇌자알 스택계산기 왜이렇게 어렵게 구현했냐??? [1] 에이시아(125.31) 11.11.08 92 0
286744 현직 프로그래머분들께 여쭙습니다 [4] 놋북(68.107) 11.11.08 127 0
286741 ㅄ같은 질문....c++ [1] ㅁㄴㅇㄹ(14.42) 11.11.08 75 0
286740 저번에 어떤 한국여자애한테 고백했는데 생각하니까 전나 웃기넼ㅋ [2] Stan(220.244) 11.11.08 146 0
286739 어플 만들고 싶은데요 [3] rnmn갤로그로 이동합니다. 11.11.08 101 0
286738 이거 알면 진짜 천재다.. 신이다.. [1] 아 형..(125.208) 11.11.08 110 0
286737 아아 12시간 뒤에 떨어질 소행성 때문에 잠이 안온다........... [1] 거칠게갤로그로 이동합니다. 11.11.08 103 0
286736 it업계는 왜케 좌빨들이 많냐. 보수는 본적이 없어 [5] ㄴㅁ(58.234) 11.11.08 139 0
286735 자바 컴파일후 오류도 아닌거시 이거 뭐 어떻게 해야 하죠... [7] 허르(112.163) 11.11.08 71 0
286734 여친생기는 인강 씨발라드세요갤로그로 이동합니다. 11.11.08 54 0
286733 프게이들아 너넨 담배연기 머금고 여자친구도 연기머금고 같이 키스해봄? ^0^갤로그로 이동합니다. 11.11.08 66 0
286732 진료시스템 구축 부탁한 JK에게 [4] 한마음택배(114.202) 11.11.08 97 0
286731 베이직인증 아이디 비밀번호 치라는데 [3] 이것좀알려죠(220.76) 11.11.08 40 0
286730 개발자의 현실 캐공감 [1] 씨발라드세요갤로그로 이동합니다. 11.11.08 134 0
286729 ..난 왜 네트워크 쪽으로 꼬이나 몰것다. 이력서에 네트워크에 네짜도 없 [2] ...,(220.88) 11.11.08 76 0
286728 유지보수 어려운 코딩법! [1] 씨발라드세요갤로그로 이동합니다. 11.11.08 93 0
286727 형들 여기서 씹덕질해도 돼? [5] ㅁㄴㅇㄹ(168.126) 11.11.08 98 0
286726 네트워크에 대해 심도있게 공부하고싶은데 [7] (116.125) 11.11.08 94 0
286725 프갤형들이 학원 안좋게 보는건 느꼇는데 그래도 글좀 써볼께 [3] 김에스디갤로그로 이동합니다. 11.11.08 210 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2