전 완전히 XText를 사용합니다.XText : 맞춤 단말기 정의 사용
당신은 당신이 두 번째 문법을 지정하고 말 그대로 선언 정의를 사용할 수 XText 사용하여 문법을 정의 할 때 here :
grammar org.eclipse.xtext.example.Domainmodel with org.eclipse.xtext.common.Terminals
각 문법 고유 이름을 가지고 Xtext에서
하는 등의 공용 Java 클래스 은 파일의 위치를 Java 클래스 경로 내에 반영해야합니다. 의 경우 문법 파일은 /org/eclipse/xtext/example/Domainmodel.xtext 에 있으며 따라서 문법 이름은 org.eclipse.xtext.example.Domainmodel입니다. 그 진술 ( 와 org.eclipse.xtext.common.Terminals) 상태의 두 번째 부분이 문법은 재사용 지정된 문법에서 재정 규칙 것을. org.eclipse.xtext.common.Terminals은 Xtext 와 함께 제공되는 라이브러리 문법 이며, 가장 일반적인 터미널 규칙을 미리 정의
내가 XText 플러그인을 개발하고 있어요 그리고 난 내 자신의 터미널을 정의하고 싶습니다 분리 된 파일의 기호. 가능한가? 내가 어떻게 할 수 있니?
새로운 Xtext 파일을 만들고 org.eclipse.xtext.common.Terminals 뒤에 추가하고 광산을 추가하려고했지만 두 솔루션 모두 컴파일되지 않았습니다.
감사합니다.
편집
내가 같은 프로젝트에서 두 xtext 파일, 문법에 대한 하나 내가 mwe2 파일을 실행 다음과 같은 예외 얻을 문법의 터미널 하나를 사용하는 경우 :
자바. lang.IllegalStateException : '/org/xvr/language/sh/ShaderDsl.xtext 클래스 경로' 를 분석 문제 [XtextLinkingDiagnostic : 널 (null) : 1 문법 'org.xvr.language.sh에 대한 참조를 확인할 수 없습니다. ShTerm inal '. XtextLinkingDiagnostic : null : 9 에 대한 참조를 확인할 수 없습니다. AbstractRule'ID '., TransformationDiagnostic : NULL (19 는 데이터 유형 HIGH_PRECISION 를 만들 수 없다 : TransformationDiagnostic : NULL 17 는 데이터 유형 PRECISION 를 생성 할 수 없습니다 (ErrorCode가 : NoSuchTypeAvailable) TransformationDiagnostic : NULL을 14 는 데이터 유형 불변 식 (NoSuchTypeAvailable ErrorCode가)를 생성 할 수 없습니다 ErrorCode가 : NoSuchTypeAvailable), TransformationDiagnostic : 널 (null) : 20 이 데이터 형식을 MEDIUM_PRECISION (ErrorCode를 만들 수 없습니다 : NoSuchTypeAvailable)를 TransformationDiagnostic : 널 (null) : 21 는 데이터 형식 LOW_PRECISION 를 만들 수 없습니다 (ErrorCode가 : NoSuchTypeAvailable)]
두 xtext 파일은 다음과 같습니다
문법
grammar org.xvr.language.sh.ShaderDsl with org.xvr.language.sh.ShTerminal //org.eclipse.xtext.common.Terminals
generate shaderDsl "http://www.xvr.org/language/sh/ShaderDsl"
....
와 문법의 터미널
grammar org.xvr.language.sh.ShTerminals with org.eclipse.xtext.common.Terminals
generate shTerminals "http://www.xvr.org/language/sh/ShTerminals"
terminal Test : 'test';
나는 그것을 만들었고 생성 된 줄에서 "생성 된 패키지 'myTerminals'이 비어 있지 않을 수도 있습니다."라는 오류가 발생했습니다. 어떻게 그걸 피 했니? – mvmn