Antlr 도구를 이용해서 만들어본 자바파서입니다. 간단하게 샘플 Grammer 을 이용해서 만들어 보았습니다. 파싱하는 자바 소스는 컴파일 가능한 소스가 아니면 Grammer에 어긋나기 때문에 파싱이 되지 않습니다. (사용된 Grammer가 최신 JDK에 만족하지 않을 수 있으므로 최신 JDK 문법도 파싱이 안 될수 있음) Package, Import, Class, Method을 몇번째 라인, 열, 사용된 이름을 객체화해서 담아 두었습니다. 더 자세한 정보를 담으려 했으나, Delphi로 자바 파싱에 관심이 있는 사람이 있는지 궁금하네요. (손들어 보세요.) 파싱한 결과를 객체화 하기 위해서 클래스를 설계하는 일도 만만치 않는 일이라 여기에서 중단합니다. (누가 클래스를 설계주시면 객체에 담아 보겠습니..
출처 - http://cc.embarcadero.com/Item/26667 DCocoR 예제를 간단하게 수정하여 만들어 보았습니다. ExprUnit.atg ---------------------------------------- COMPILER ExprUnit FRAME "delphi.frm" header = (. .) uses = (.SysUtils,Variants,StrUtils.) private = (. .) protected = (. .) public = (. function Evaluate(const str: String): integer; .) publicProps = (. .) precreate = (. .) implementation = (. function TExprUnit.Evaluat..
java 소스를 Delphi로 변환 프로그램을 간단하게 만들어 보았습니다. 원래 필요로 했던 것은 사칙연산이나 제어문 정도라서 일주일 투자해서 간단하게 만들어 보았습니다. JavaCC을 이용했으며, jj 파일을 제외하고 Java 소스를 첨부합니다. 사용법: java -jar java2delphi.jar Formatter.java 위와 같이 명령을 하시면 Formatter.pas의 결과물을 얻을 수 있습니다. 아래에 일부 변환된 예를 입니다. public int sum(int s1, int s2) { return s1 + s2; } function TFormatter.sum(s1 : integer; s2 : integer): int; begin result := s1+s2; end;-------------..
정규표현식이나, Lex&Yacc을 델파이만 개발 하신 분이라면 처음 들어 보신 분들도 계실 것이라고 생각됩니다. 저도 6년 넘게 개발하면서 최근에 알게 되었고, 그 활용 범위가 무궁무진 하다는 것도 알게 되었죠. 이 글을 있는 개발자 분들도 이 글을 계기로 Lex&Yacc에 대해서 관심을 가졌으면 합니다. Lex&Yacc은 컴파일러를 만들기 위한 도구로 GCC나 대부분의 컴파일러가 Lex&Yacc을 사용하고 있습니다. Lex&Yacc의 활용 범위는 소스를 분석하거나, 소스에서 주석만 제거하거나, 간단한 스크립트 언어를 만들 수도 있습니다. C언어나 JAVA의 경우 많은 Lex&Yacc 도구가 많이 있지만 Delphi의 경우 2개 정도 있는 것 같고, 제가 사용하고 있는 Delphi Lex&Yacc은 Tu..
- Total
- Today
- Yesterday
- 지스타2007
- flex
- 전예희
- ble
- Xcode
- MySQL
- Java
- JavaScript
- ubuntu
- 레이싱모델 익스트림 포토 페스티벌
- BPI-M4
- 송주경
- koba2010
- Mac
- android
- Delphi
- Linux
- Spring MVC
- Delphi Tip
- KOBA
- 일본여행
- 서울오토살롱
- Spring
- SAS
- ffmpeg
- sas2009
- 튜닝쇼 2008
- NDK
- oracle
- 동경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |