From 2345511fa2d6b9ec63533923bfeb8d99ff750d3b Mon Sep 17 00:00:00 2001
From: Sven Gestegard Robertz <sven.robertz@cs.lth.se>
Date: Fri, 30 Jan 2015 16:02:38 +0100
Subject: [PATCH] minor cleanup of AST file

---
 compiler/2014/LabComm.ast | 50 +++++++++++++++++++--------------------
 1 file changed, 24 insertions(+), 26 deletions(-)

diff --git a/compiler/2014/LabComm.ast b/compiler/2014/LabComm.ast
index 904cc17..bbadfad 100644
--- a/compiler/2014/LabComm.ast
+++ b/compiler/2014/LabComm.ast
@@ -1,39 +1,37 @@
 Program ::= Decl*;
 
-//TODO: Add signatures to the abstract grammar, so that
-//they can be extended and refined by more than one aspect.
-//sketch:
-Signature		::= SignatureList FlatSignatureList:SignatureList; 
-SignatureList		::= SignatureLine*;
-abstract SignatureLine 	::= <Indent:int> <Comment:String>; 
-abstract DataSignatureLine : SignatureLine;
-ByteArraySignatureLine : DataSignatureLine ::= <Data:byte[]>;
-IntSignatureLine : DataSignatureLine ::= <Data:int>;
-StringSignatureLine : DataSignatureLine ::= <Data:String>;
-TypeRefSignatureLine   	: SignatureLine ::= Decl;
-
-
-//abstract Decl ::= Type <Name:String>;
-// the signature list be defined as  a non-terminal attribute:
 abstract Decl ::= Type <Name:String> /Signature/;
-TypeDecl : Decl;
+
+TypeDecl   : Decl;
 SampleDecl : Decl;
 
+//Signatures are in the abstract grammar, so that
+//they can be extended and refined by aspects.
+
+Signature                 ::= SignatureList FlatSignatureList:SignatureList; 
+SignatureList             ::= SignatureLine*;
+abstract SignatureLine 	  ::= <Indent:int> <Comment:String>; 
+abstract DataSignatureLine : SignatureLine;
+ByteArraySignatureLine     : DataSignatureLine ::= <Data:byte[]>;
+IntSignatureLine           : DataSignatureLine ::= <Data:int>;
+StringSignatureLine        : DataSignatureLine ::= <Data:String>;
+TypeRefSignatureLine       : SignatureLine     ::= Decl;
+
 Field ::= Type <Name:String>;
 
 abstract Type;
-VoidType          : Type;
-SampleRefType     : Type;
-PrimType          : Type ::= <Name:String> <Token:int>;
-UserType          : Type ::= <Name:String>;
-StructType        : Type ::= Field*;
-ParseArrayType    : Type ::= Type Dim*;
-abstract ArrayType :Type ::= Type Exp*;
-VariableArrayType : ArrayType;
-FixedArrayType    : ArrayType;
+VoidType           : Type;
+SampleRefType      : Type;
+PrimType           : Type ::= <Name:String> <Token:int>;
+UserType           : Type ::= <Name:String>;
+StructType         : Type ::= Field*;
+ParseArrayType     : Type ::= Type Dim*;
+abstract ArrayType : Type ::= Type Exp*;
+VariableArrayType  : ArrayType;
+FixedArrayType     : ArrayType;
 
 Dim ::= Exp*;
 
 abstract Exp;
 IntegerLiteral : Exp ::= <Value:String>;
-VariableSize : Exp;
+VariableSize   : Exp;
-- 
GitLab