2017-10-23 9 views
0

ANTLR4에서 함수를 구현했습니다. 예 : - 기능 ("A", "B")ANTLR4 : 공란을 값/매개 변수로 사용합니다.

문법 1 및 제 2 매개 변수를 구별 할 수없는 입력 FUNCTION(,"B") 들어

parse 
    : block EOF 
    ; 

    block 
    : 'FUNCTION' LPAREN (atom)? COMMA (atom)? LPAREN 
    ; 

    atom 
    : NIL       #nilAtom 
    | list       #arrayAtom 
    | type=(INT | DOUBLE)   #numberAtom 
    | ID       #idAtom 
    ; 

    list 
    : BEGL array? ENDL 
    ; 

    array 
    : array_element (COMMA array_element)* # arrayValues 
    ; 


    array_element 
    : 
     atom # array_element_types 
    ; 

    COMMA : ','; 

    BEGL : '['; 
    LPAREN : '('; 

    RPAREN : ')'; 
    ENDL : ']'; 
    NIL : '' | 'null'; 
INT : [0-9]+ ; 

DOUBLE : [0-9]+ '.' [0-9]* | '.' [0-9]+ ; 

COMMENT : '#' ~[\r\n]* -> skip ; 

SPACE : [ \t\r\n] -> skip ; 

OTHER : . ; 

, . "B"를 첫 번째 매개 변수로 사용. 도움 주셔서 감사합니다.

+0

이 어떻게 하나 개의 빈 요소 목록에서 ('[]') 빈리스트를 인정한다 ('[]')? 다른 사례로 인식해야합니까? –

답변

0

하나 개 빈 요소 목록으로 [] 해석 괜찮다면 :

list 
: BEGL array ENDL 
; 

array 
: array_element (COMMA array_element)* # arrayValues 
; 


array_element 
: 
    atom? # array_element_types 
; 
+0

이 부분에 동의합니다. FUNCTION (, "B") 함수에 관해서 말하게한다.이 경우 첫 번째인지 두 번째 매개 변수인지 알아야한다. 그러나 하나의 매개 변수 만 제공합니다. – Bond