2017-04-17 4 views
2

java 파일을 자신의 형식으로 구문 분석하는 Java 프로그램을 만들려고합니다. 내가자신의 언어를 java 파일로 구문 분석하는 방법

show("Hello World"); 

을 가진 파일을 작성하고,

class Hello { 
public static void main(String[] args) { 
    System.out.println("Hello World"); 
    } 
} 

을 안녕하세요이 파일을 저장합니다. [my_own_extension]와 같은 내 프로그램 및 수출 일로부터 읽을 때 예를 들어, 나는 웹에 많은 기사를 읽고 . 그러나 그들은 javacc, 컴파일 기술, 어휘 분석 등에 대해 쓰고 있습니다. 하지만 내가하고 싶은 유일한 일이
1. 파일 내 규칙을
3. 쓰기 (출력) 된 .java 파일을 내가 할 수있는 방법을 .class 파일
일치 여부를 파일을
2. 시험 읽기입니다 이?
나는 다음과 같은 방법으로,
1. 사용 java.io 또는 java.nio의 패키지 (간단한 자바 코드 일 수 있음)
(읽거나 쓸 파일을 위해)
2. 내 규칙에 대한 내 자신의 논리를 작성하는 것이 할 수 새로운 프로그래밍 언어를 만들고 자바 전문가가 아닙니다. 나는 단지 알고 싶다.

+0

텍스트 파일을 읽는 것처럼 파일을 읽을 수 있습니다. ext 파일을 .me2라고하고 파일을 읽을 때 "theNameOfYourFile.me2"를 사용한다고 가정 해 봅시다. – Sedrick

+2

일종의 파서/컴파일러를 만들고 싶습니다. 이것은 너무 광범위한 질문 일 수 있습니다. –

+0

@TimBiegeleisen javcc와 같은 도구를 사용하지 않고 파서를 만들기위한 자체 프로그램을 작성할 수 있습니까? –

답변

1

javcc와 같은 도구를 사용하지 않고 파서를 만들 수있는 자체 프로그램을 작성할 수 있습니까?

예 너는 이 될 수있다. 실제로, 나의 명예 과정 (거의 40 년 전에)에서 강사는 파스칼을위한 재귀 적 하강 파서를 처음부터 구현하기위한 과제를 설정했습니다. IIRC 그것은 많은 일이었습니다.

그러나 진지한 점이 있다면 파서 생성기를 사용하면 훨씬 적은 노력으로 훨씬 나은 파서를 얻을 수 있습니다.

위에서 언급 한 운동은 ~ 10 주간의 "명예"수준 코스의 일부입니다. 따라서 당신이 읽거나 javacc를 사용하는 법을 배울 필요가있는 것보다 파서를 처음부터 구현하는 것을 읽기/배우지 않아야한다는 것을 상상하지 마십시오.


1 - 컴퓨터가 인간 ... 또는 인간의 충분히 큰 팀이 할 수있는 모든 작업은 ...뿐만 아니라 할 수 있습니다. 비현실적으로 오랜 시간이 걸릴 수 있으며 비현실적인 비용이 들지만 가능합니다. 경우에는 현실적인 작업입니다. 이것은 first parser generators가 발명되기 전에 모든 파서가 어떻게 생성되었는지입니다. 사실, 그 후에도 PGs가 따라 잡는 데 오랜 시간이 걸렸습니다.

+0

처음부터 만드는 것보다 javacc 또는 파서 생성기를 배우는 것이 더 적절합니까? –

+0

그것은 당신의 목표가 무엇인지에 달려 있습니다 ... –