0

수동 java에서 C++ 포트까지 수백 가지 기능이 있습니다. C++ 코드 결과에서, I 참조로 건네진 값으로 전달되는 매개 변수를 변경하고자 : 참조로 전달할 값을 자동으로 변경합니다.

from: 
void funcName1(Type1 t1, Type2 t2, int i); 
to: 
void funcName2(Type1& t1, Type2& t2, int i); 

바람직 int와 같은 프리미티브 타입을두고, 그대로 로트.

이 프로세스를 자동화하는 리팩토링 도구는 무엇입니까? 일부 정규식 트릭?

또는 이식 가능한 Java 코드를 C++로 변환하는 도구는 무엇입니까?

답변

1

이 정규 표현식을 만들어보십시오 :

Type1 t1, Type2 t2, int i 

실행이 출력 그룹 1에 대한 두 번째는 다음과 같습니다 : 당신에게 줄 것이다 처음부터

void\s+\w+\(([^\)]+)) 
([A-Z]\w+)\s+\w+ 

매칭 그룹 1

Type 

자바를 사용하는 경우 다음 주소로 빨리 변환 할 수 있습니다.

Pattern p = Pattern.compile("(void\\s+\\w+\\s+\)(([^\\)]+))"); 
Pattern p2 = Pattern.compile("([A-Z]\\w+)(\\s+\\w+)"); 
Matcher m = p.matcher("input....."); 

StringBuffer sb = new StringBuffer(); 
while(m.find()) { 
    Matcher m2 = p2.matcher(m.group(0)); 

    StringBuffer sb2 = new StringBuffer(); 
    while(m2.find()) { 
     m2.appendReplacement(sb2, "$1&$2") 
    } 
    m2.appendTail(sb2); 

    m.appendReplacement(sb, "$1("+sb2.toString()+")") 
} 
m.appendTail(sb); 
관련 문제