Skip to content
Snippets Groups Projects
Select Git revision
  • 24ea9a4b3a7a5a704603a49228825d8a0728dac6
  • main default protected
  • slumi_interface
  • trajectory_generation
  • rosification
  • refactoring
  • pp
  • mpc
  • realtimelogplotter
  • alv
  • gitlab_ci_podman
  • restructuring
  • viz_fix
13 results

path_in_pixels.csv

Blame
  • 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);
        for (int i = 0 ; i < getNumField() ; i++) {
          getField(i).flatSignature(list);
        }
        list.unindent();
        list.add(null, "}");
      }
    
      public void Field.flatSignature(SignatureList list) {
        debugAnnotations(this.getName()+".Field.flatSignature");
        list.addIntentions(intentions(), "Field: "+getIntentionString());
    //    list.addString(getName(), signatureComment());
        getDataType().flatSignature(list);
      }
    
      public void IntegerLiteral.flatSignature(SignatureList list) {
        list.addInt(Integer.parseInt(getValue()), null);
      }
    
      public void VariableSize.flatSignature(SignatureList list) {
        list.addInt(0, null);
      }
    
      public String ArrayType.signatureComment() {
        StringBuffer result = new StringBuffer("array [");
        for (int i = 0 ; i < getNumExp() ; i++) {
          if (i > 0) {
      result.append(", ");
          }
          result.append(getExp(i).signatureComment());
        }
        result.append("]");
        return result.toString();
      }
    
      public String ASTNode.signatureComment() {
        throw new Error(this.getClass().getName() +
                        ".signatureComment()" +
                        " not declared");
      }
    
      public String Field.signatureComment() {
        return getDataType().signatureComment() + " '" + getName() +"'";
      }
    
    //  public String SampleRefType.signatureComment() {
    //    return "sample";
    //  }
    
      public String PrimType.signatureComment() {
        return getName();
      }
    
      public String UserType.signatureComment() {
        return getName();
      }
    
      public String StructType.signatureComment() {
        return "struct";
      }
    
      public String IntegerLiteral.signatureComment() {
        return getValue();
      }
    
      public String VariableSize.signatureComment() {
        return "_";
      }
    
    }