Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 자료실
Delphi Programming Resources
[187] 초간단 java2delphi
파란산타 [bluexmas] 7857 읽음    2007-06-29 20:55
java 소스를 Delphi로 변환 프로그램을 간단하게 만들어 보았습니다.
원래 필요로 했던 것은 사칙연산이나 제어문 정도라서 일주일 투자해서 간단하게 만들어 보았습니다.
JavaCC을 이용했으며, jj 파일을 제외하고 Java 소스를 첨부합니다.

사용법:
java -jar java2delphi.jar Formatter.java

위와 같이 명령을 하시면 Formatter.pas의 결과물을 얻을 수 있습니다.
아래에 일부 변환된 예를 입니다.

 public int sum(int s1, int s2) {                      function TFormatter.sum(s1 : integer; s2 : integer): int;
  return s1 + s2;                                      begin                                                    
 }                                                       result := s1+s2;                                       
                                                       end;                                                     
                                                     
  public boolean checkSELECT(String s1) {              function TFormatter.checkSELECT(s1 : String): boolean;
    if (s1.equalsIgnoreCase("select")) {               begin                                                 
      return true;                                                                                           
    } else {                                             if ((UpperCase(s1)='SELECT')) then                  
      return false;                                      begin                                               
    }                                                      result := true;                                   
  }                                                      end else begin                                      
                                                           result := false;                                  
                                                         end;                                                
                                                       end;                                                  
                                                     
                                                       function TFormatter.testFor(): int;
  public static int testFor() {                        var                                
    int sum = 0;                                         i : integer;                     
    for (int i=0; i<100; i++)                            sum : integer;                   
      sum = sum + 1;                                   begin                              
  }                                                      sum:=0;                          
                                                         i:=0;                            
                                                         while (i<100) do begin           
                                                           sum:=sum+1;                    
                                                           inc(i);                        
                                                         end;                             
                                                       end;   
                                             
  private void doEscape2Space() {                      procedure TFormatter.doEscape2Space(); 
    for (aD = 1; aD <= queryTokenCount; aD++) {        begin                                  
      if (isTokenQuoteLiterals[aD])                      aD:=1;                               
        continue;                                        while (aD<=queryTokenCount) do begin 
      if (queryToken[aD].equals("\t")                                                         
          || queryToken[aD].equals("\f")                   if (isTokenQuoteLiterals[aD]) then 
          || queryToken[aD].equals("\r")                   begin                              
          || queryToken[aD].equals("\b"))                    continue;                        
        queryToken[aD] = " ";                              end;                               
                                                                                              
      if (queryToken[aD].equals("\r"))                     if ((queryToken[aD]=#9)            
        queryToken[aD] = "\\n";                              or  (queryToken[aD]=#12)         
    }                                                        or  (queryToken[aD]=#13)         
                                                             or  (queryToken[aD]=#8)) then    
  }                                                        begin                                                   
                                                             queryToken[aD]:=' ';             
                                                           end;                               
                                                                                              
                                                           if ((queryToken[aD]=#13)) then     
                                                           begin                              
                                                             queryToken[aD]:='\\n';           
                                                           end;                               
                                                           inc(aD);                           
                                                         end;                                 
                                                       end;                                   
다크엔젤 [cyw0727]   2008-09-25 00:02 X
와~ 훌륭하시네요...

+ -

관련 글 리스트
187 초간단 java2delphi 파란산타 7857 2007/06/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.