Mercurial > projects > dil
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 } |