2013-08-02 8 views
0

xtext로 작은 언어를 개발하려고합니다. 이 "무효 함수는 값을 반환 할 수 없다"고 불만을xbase를 사용하여 xtext에서 반환 유형을 확인하는 방법

Function: 
    'def' name=ValidID 
    '('(params+=FullJvmFormalParameter (',' params+=FullJvmFormalParameter)*)? ')' 
    ':' type=JvmTypeReference 
    body=XBlockExpression; 

나에게 분명한 이유를 들어

def sum(Integer a, Integer b):Integer { 
    return (a+b) 
} 

내가이 사용 문법이다. 반환 식의 형식을 함수 선언의 형식과 연결하려면 어떻게해야합니까?

답변

0

표현식을 JvmOperation의 컨텍스트에 넣어야합니다. 유추 된 JVM 모델에 대해 더 자세히 알고 싶다면 도메인 모델 예제, 문서 및 7 개 언어를 참조하십시오.

def dispatch infer(MyLanguageConcept concept, IJvmDeclaredTypeAcceptor acceptor, boolean prelinking) { 
    acceptor.accept(
     concept.toClass(concept.fullyQualifiedName) 
    ).initializeLater [ 
     for (definition : concept.getDefinitions) { 
      members += definition.toMethod(
        definition.name, 
        definition.type) [ 
       for (p : definition.params) { 
        parameters += p.toParameter(p.name, p.parameterType) 
       } 
       body = definition.body 
      ] 
     } 
    ] 
} 
: 당신이해야 할 무엇을 기본적으로

,이 라인을 따라 뭔가