code: private void parseMapInitializerList( ContextType type )
    {
      MapInitializerExpression mie = new MapInitializerExpression();
  
      IType listType = TypeLord.findParameterizedTypeInHierarchy( type.getType(), JavaTypes.MAP() );
      IType keyType = JavaTypes.OBJECT();
      IType valueType = JavaTypes.OBJECT();
      if( listType.isParameterizedType() )
      {
        keyType = listType.getTypeParameters()[0];
        valueType = listType.getTypeParameters()[1];
      }
  
      do
      {
        parseExpression( new ContextType( keyType ) );
        Expression key = popExpression();
        Expression value;
        if( verify( key, match( null, "->", SourceCodeTokenizer.TT_OPERATOR ), Res.MSG_EXPECTING_ARROW_AFTER_MAP_KEY ) )
        {
          parseExpression( new ContextType( valueType ) );
          value = popExpression();
        }
        else
        {
          value = new NullExpression();
        }
  
        mie.add( key, value );
  
      }
      while( match( null, ',' ) );
  
      pushExpression( mie );
    }
docs: /*
  <i>map-init-list</i>
  &lt;key-expression&gt <b>-></b> &lt;value-expression&gt ;
  &lt;map-init-list&gt; , &lt;expression&gt;