2016-08-23 4 views
1

나는 문법오류 메시지가 다음 적이 역 인용 부호

grammar com.iamsoft.net.Validate with org.eclipse.xtext.common.Terminals 

generate validate "http://www.iamsoft.com/net/Validate" 

Model: 
    netDescription+=DescriptionPair+; 

DescriptionPair:TSO; 
TSO: 
    name=TSO_NAME '=' '"' value=BOOLEAN '"'; 

terminal BOOLEAN: 
    'on' | 'off'; 


terminal TSO_NAME: 
    'TSO_' ID; 

그리고 문자열

TSO_eth1="off" 

의 검증시를 만들 수 있습니다에 값을 추가하는 방법

일치하지 않는 입력 ' "OFF" 'expecteding' '' '' '

하지만 규칙 TSO에서 따옴표를 제거하는 경우, 문법이 제대로 어떻게 문법에 따옴표를 추가 할 문자열

TSO_eth1 = 오프

을 확인?

감사합니다, 블라디미르

+0

캔의 의견을 무시하는 것, 작은 따옴표를 받아? –

답변

0

문제는 이미 당신이 옵션

다음 한 다른 곳 STRING 터미널 규칙이 필요한 경우에 따라 문자열 규칙

이 포함되어 단자 문법의 상속 (이다 1) 터미널 문법 및 복사를 상속하지 마십시오 & 터미널 규칙과 숨겨진 절을 터미널 문법에서 문법에 붙여 넣으십시오.

(2) STRING 규칙을 사용되지 않은 simething으로 대체합니다. terminal STRING: '@@@@@@[email protected]@@@@'

(3) 물건 BOOLEAN: STRINGTSO: name=TSO_NAME '=' value=BOOLEAN;

+0

하지만이 문제를 해결하는 방법은 무엇입니까? –

0

나는 간단한 문자열을 사용하여 검증 및 컨텐츠 제안을 추가하는 대신 데이터 형식 규칙 + A valueconverter를 사용합니다. 설명 쌍은 더 이상 BOOLEAN 데이터 유형에 바인딩되지 않지만 향후 유형을 추가 할 수 있습니다.

문자열 터미널이 원하는하지 않은 경우, 당신은 여전히 ​​내 대답에 규칙을