2017-05-12 14 views
0

지금까지 내 파서는 또한이가변 인수 번호로 함수를 구문 분석하는 방법은 무엇입니까?

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() <CLOSEPAR>

으로 표현식을 사용하여 알려진 파라미터 번호와 기능을 분석 할 수있는, 선택적 매개 변수는 쉽게, 그러나

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() [<COMMA> son2=expression()] <CLOSEPAR>

를 처리 할 수 ​​있습니다 알 수없는 수의 매개 변수를 캡처 할 가능성에 대한 설명서를 찾을 수 없었습니다. 내 생각 엔이

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() [<COMMA> son2=expression()]+ <CLOSEPAR>

같은 것입니다 그러나이 경우 내가 수행해야 이러한 여러 매개 변수의 캡처하는 방법을 모르겠어요.

어떤 아이디어 나 예가 있습니까? (또는 누군가가 이것이 불가능하다는 것을 알고 있다면)

+0

https://javacc.org/javaccgrm에서 문법 파일의 설명서를 읽었습니까? FAQ에 나열된 튜토리얼을 읽었습니까? –

답변

2

적어도 하나의 매개 변수가 필요하다고 가정 해 봅시다. 그런 다음과 같이해야합니다 :

  1. 은 결과 Java 클래스 X를 작성하고 일반 자바에서와 같이 사용 :

    private X myFunction(): 
    { 
        X result = new X(); 
    } 
    { 
    
        <FUNCTION> 
        <OPENPAR> 
            son=expression() { result.params.add(son); } 
         ( <COMMA> son=expression() { result.params.add(son); })* 
        <CLOSEPAR> 
        { return result; } 
    } 
    

    가 정리해을 내 접근하는 것입니다.

  2. 처음부터 필요한 것을 초기화하십시오.
  3. 채워진 객체를 반환합니다.

실용 예제가 여전히 필요한 경우 this이 유용 할 수 있습니다.

+0

그래, 이거 작동 해. 고마워요! – Yampeku