"Abstract concept instance detected" error and an import error in the sandbox

I get errors in the sandbox. (My language compiles ok).
Does anyone have an idea what am I doing wrong?

This is what I've tried:

I want my language to enable its users to use the following syntax:
for_any  some_string of some_string

e.g.  for_any person of students_list

and it should generate the following Java syntax:
for (int i=0; i< students_list.size(); ++i) {

In order to be able to display the list to the user only by its name, I've extended LinkedListType:

concept NiceList extends LinkedListType      
   implements INamedConcept     
  instance can be root: false
alias: <no alias>
short description: <no short description>

<< ... >>
<< ... >>
<< ... >>

And its editor definition is:
<default> editor for concept NiceList
  node cell layout:   
     { name }         

I've created the list loop concept as:

concept ListExecute extends AbstractCommand              
          implements <none>     
  instance can be root: false
  alias: list_action
  short description: <no short description>

  list_field_name : string

  body : CommandList[1]   
  the_list :  NiceList [1]   

  << ... >>

And its editor:

<default> editor for concept ListExecute   
  node cell layout:
     [- for_any { list_field_name } of ( % the_list % -> { name } ) % body % -]

And the reduction rule is in the attached file.
In the reduction rule:
the first macro is on node.the_list and the second macro is on node.body
(list_field_name field is for future use).

The language compiles ok, yet when I try to use the list_action (alias of ListExecute) in the sandbox I get the following errors:
1) Abstract concept instance detected. Use one of sub-concepts instead. Concept: Type
2) Jetbrains.mps.baseLanguage is not imported

Even though Jetbrains.mps.baseLanguage was added to the sandbox Solution Dependencies
1 comment
Comment actions Permalink
I'm wondering whether the_list should not be an Expression, possibly pointing to some collection, instead of being a Type. Something line the "inputSequence" in ForEachStatement.

Please sign in to leave a comment.