Xtext, Определение структуры для сюжета

Я должен сделать тип кривой, которая представляет собой график кривой, данные приведены в файле CSV (интерпретатор, который читает файл данных). У меня есть два типа значений: ось X, время (я думаю, INT:INT) минуты: секунды формат; и напряжение по оси Y (двойное). Мои грамматические типы данных следующие:

Model:
elements+=Element*;

Element:
     DataType /* | Operation | Control*/ ;

DataType : 
     Text | Real 
;
Text: 
    ("String" | "Text") name=ID (value=STRING)?
;
Double returns ecore::EDouble:
     INT ('.' INT)?
;
Real: 
     ("Double" | "Real") name=ID (value=Double)?
;

Я пытался сделать карту в моей грамматике в следующем формате: Кривая (Двойное напряжение, время INT:INT), но я не знаю, почему она не работает. Что вы думаете, ребята? я должен определить новый тип для типа времени? или как правильно составить карту? Спасибо за ваше время

   CurveCollection : 
        'Curve['keys+=[Real]*','values+=Time*']'
;
 Time: 
     INT':'INT
 ;

Я пытался определить структуру, но я не знаю, будет ли работать как массивы (ключи, значения), как карта в Java

1 ответ

Решение

Вы можете включить проверку уникального имени по умолчанию, раскомментировав и повторно запустив рабочий процесс на языке.

validator = {
    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}

в качестве альтернативы вы можете реализовать собственную проверку уникального имени в <YourDsl>Validator

Другие вопросы по тегам