comparison trunk/src/dil/Statements.d @ 495:b60450804b6e

Attributes are evaluated during the parsing phase now. Renamed parseDeclarationDefinitionsBlock to parseDeclarationDefinitionsBody. Renamed parseDeclaration to parseVariableOrFunction. Removed class Linkage, renamed parseLinkage to parseLinkageType and modified it so that it returns a value from enum LinkageType. Fix in parseStorageAttribute(): class invariants are recognized now. Modified parseAlignAttribute() so that returns an uint - the alignment size. Removed classes AttributeStatement and ExternStatement. Using Declarations instead in parseAttributeStatement(). Added LinkageType to module Enums. Added StorageClassDeclaration and renamed ExternDeclaration to LinkageDeclaration.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sat, 08 Dec 2007 22:20:34 +0100
parents a7291d3ee9d7
children 5a607597dc22
comparison
equal deleted inserted replaced
494:9a7ca8c56e59 495:b60450804b6e
553 this.cond = cond; 553 this.cond = cond;
554 this.versionBody = versionBody; 554 this.versionBody = versionBody;
555 this.elseBody = elseBody; 555 this.elseBody = elseBody;
556 } 556 }
557 } 557 }
558
559 class AttributeStatement : Statement
560 {
561 TOK tok;
562 Statement statement;
563 this(TOK tok, Statement statement)
564 {
565 mixin(set_kind);
566 addChild(statement);
567 this.tok = tok;
568 this.statement = statement;
569 }
570 }
571
572 class ExternStatement : AttributeStatement
573 {
574 Linkage linkage;
575 this(Linkage linkage, Statement statement)
576 {
577 super(TOK.Extern, statement);
578 mixin(set_kind);
579 addOptChild(linkage);
580 this.linkage = linkage;
581 }
582 }