Skip to content
Snippets Groups Projects
Select Git revision
  • d90ddbbf09fd1eac2cb8aef09496832a1a072291
  • master default
  • labcomm2014_tc31
  • labcomm2014
  • js
  • java_dyn_msg_dec
  • anders.blomdell
  • typeref
  • pragma
  • compiler-refactoring
  • labcomm2013
  • v2014.1
  • v2014.0
  • v2013.0
14 results

ErrorCheck.jrag

Blame
  • Forked from Anders Blomdell / LabComm
    Source project has a limited visibility.
    FlatSignature.jrag 3.73 KiB
    import java.util.*;
    
    aspect NoIntentionForTypeOrSampledefs {
        inh boolean TypeInstance.addIntentions();
        eq Decl.getTypeInstance().addIntentions() = false;
        eq StructType.getField(int i).addIntentions() = true;
    }
    
    aspect FlatSignature {
    
      public SignatureList Decl.flatSignature(int version) {
        SignatureList result = getSignature().getFlatSignatureList();
        return result;
      }
    
      public void ASTNode.flatSignature(SignatureList list) {
        throw new Error(this.getClass().getName() +
                        ".flatSignature(SignatureList list)" +
                        " not declared");
      }
    
      public void TypeDecl.flatSignature(SignatureList list) {
        getTypeInstance().flatSignature(list);
      }
    
      public void SampleDecl.flatSignature(SignatureList list) {
        getTypeInstance().flatSignature(list);
      }
    
    //  public void SampleRefType.flatSignature(SignatureList list) {
    //    list.addInt(LABCOMM_SAMPLE_REF, "sample");
    //  }
    
      public void TypeInstance.flatSignature(SignatureList list) {
        if(addIntentions()) {
          debugAnnotations(this.getName()+".TypeInstance.flatSignature");
          list.addIntentions(intentions(), "intentions: "+getIntentionString());
        }
        getDataType().flatSignature(list);
      }
    
      public void VoidType.flatSignature(SignatureList list) {
        list.addInt(LABCOMM_STRUCT, "void");
        list.addInt(0, null);
      }
    
      public void PrimType.flatSignature(SignatureList list) {
        list.addInt(getToken(), null);
      }
    
      public void UserType.flatSignature(SignatureList list) {
        lookupType(getName()).flatSignature(list);
      }
    
      public void ArrayType.flatSignature(SignatureList list) {
        list.addInt(LABCOMM_ARRAY, signatureComment());
        list.indent();
        list.addInt(getNumExp(), null);
        for (int i = 0 ; i < getNumExp() ; i++) {
          getExp(i).flatSignature(list);
        }
        getDataType().flatSignature(list);
        list.unindent();
        list.add(null, "}");
      }
    
      public void StructType.flatSignature(SignatureList list) {
        list.addInt(LABCOMM_STRUCT, "struct { " + getNumField() + " fields");
        list.indent();
        list.addInt(getNumField(), null);