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