Skip to content
Snippets Groups Projects
Select Git revision
  • 6313360a01dddaa80e32de6cbc0fdca6c4193816
  • master default protected
  • julia1
  • furuta
  • v0.2.0
  • v0.1.0
6 results

interface_documentation.jl

Blame
  • ArrayTypeRewrite.jrag 1.04 KiB
    aspect ArrayRewrite {
    
      syn boolean Dim.isVariable() {
        for (int i = 0 ; i < getNumExp() ; i++) {
          if (getExp(i) instanceof VariableSize) {
    	return true;
          }	
        }
        return false;
      }
    
      rewrite ParseArrayType {
        when (! getDim(0).isVariable()) 
        to FixedArrayType  { 
          if (getNumDim() == 1) {
            return new FixedArrayType(getType(), 
    				  getDim(0).getExpList());
          } else {
            List l = new List();
            for (int i = 1 ; i < getNumDim() ; i++) {
    	  l.add(getDim(i));
            }
            return new FixedArrayType(new ParseArrayType(getType(), l), 
    				  getDim(0).getExpList());
          }
        }
        when (getDim(0).isVariable()) 
        to VariableArrayType  { 
          if (getNumDim() == 1) {
            return new VariableArrayType(getType(), 
    				     getDim(0).getExpList());
          } else {
            List l = new List();
            for (int i = 1 ; i < getNumDim() ; i++) {
    	  l.add(getDim(i));
            }
            return new VariableArrayType(new ParseArrayType(getType(), l), 
    				     getDim(0).getExpList());
          }
        }
      }
    
    }