Ошибка учебника JetBrains MPS Shapes

Я следовал учебному пособию по JetBrains MPS Shapes: https://confluence.jetbrains.com/display/MPSD32/Shapes+-+an+introductory+MPS+tutorial

В разделе учебника "Более устойчивое поколение для квадратов" есть следующее определение:

template reduce_Square                                                                                          
input Square                                                                                                    

parameters                                                                                                      
<< ... >>                                                                                                       

content node:                                                                                                   
   { 
      Graphics g = null; 
      <TF { 
          ->$g.setColor(Color.->$red); 
          ->$g.drawRect($10, $10, $10, $10); 
       } TF> 
    }

И эталонный макрос для g (который вы можете увидеть в части редактора Inspector, если навести курсор на ->$g):

(outputNode, genContext, operationContext, node)->join(node<VariableDeclaration> | string) { 
  genContext.get output graphicParam for (node.parent : Canvas); 

}

Тем не менее, при попытке перестроить язык "Shapes" я получаю следующее сообщение об ошибке (4 раза, дважды для каждого ->$g):

type node<> is not a subtype of node<VariableDeclaration>

1 ответ

Не могли бы вы проверить, правильно ли вы указали концепции от и до для метки сопоставления? Это должно быть "label graphicsParam: Canvas -> ParameterDeclaration", как указано в руководстве.

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