Changeset 768

Show
Ignore:
Timestamp:
09/18/07 18:33:24 (1 year ago)
Author:
fraserofthenight
Message:

- Some more semantic (72 to go)
- Added DMD 1.020 comments to everything blindly (since I think everything's been ported)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java

    r760 r768  
    4848 
    4949// class Object in DMD compiler 
     50// DMD 1.020 
    5051public abstract class ASTDmdNode extends ASTNode { 
    5152 
  • trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java

    r752 r768  
    1010import static descent.internal.compiler.parser.TOK.TOKvar; 
    1111 
     12// DMD 1.020 
    1213public class AliasDeclaration extends Declaration { 
    1314 
  • trunk/descent.core/src/descent/internal/compiler/parser/AlignDeclaration.java

    r748 r768  
    99import descent.internal.compiler.parser.ast.IASTVisitor; 
    1010 
     11// DMD 1.020 
    1112public class AlignDeclaration extends AttribDeclaration { 
    1213 
  • trunk/descent.core/src/descent/internal/compiler/parser/AnonymousAggregateDeclaration.java

    r283 r768  
    11package descent.internal.compiler.parser; 
    22 
     3// DMD 1.020 
    34public class AnonymousAggregateDeclaration extends AggregateDeclaration { 
    45 
  • trunk/descent.core/src/descent/internal/compiler/parser/Arguments.java

    r759 r768  
    33import java.util.ArrayList; 
    44 
     5// DMD 1.020 
    56public class Arguments extends ArrayList<Argument> { 
    67 
  • trunk/descent.core/src/descent/internal/compiler/parser/ArrayScopeSymbol.java

    r752 r768  
    1717import static descent.internal.compiler.parser.TY.Ttuple; 
    1818 
     19// DMD 1.020 
    1920public class ArrayScopeSymbol extends ScopeDsymbol { 
    2021 
  • trunk/descent.core/src/descent/internal/compiler/parser/AsmBlock.java

    r748 r768  
    44import descent.internal.compiler.parser.ast.IASTVisitor; 
    55 
     6// DMD 1.020 
    67public class AsmBlock extends CompoundStatement { 
    78 
  • trunk/descent.core/src/descent/internal/compiler/parser/AsmStatement.java

    r754 r768  
    55import descent.internal.compiler.parser.ast.IASTVisitor; 
    66 
    7  
     7// DMD 1.020 
    88public class AsmStatement extends Statement { 
    99 
  • trunk/descent.core/src/descent/internal/compiler/parser/BaseClasses.java

    r741 r768  
    33import java.util.ArrayList; 
    44 
     5// DMD 1.020 
    56public class BaseClasses extends ArrayList<BaseClass> { 
    67 
  • trunk/descent.core/src/descent/internal/compiler/parser/BinExp.java

    r759 r768  
    1515import descent.internal.compiler.parser.Constfold.BinExp_fp; 
    1616 
     17// DMD 1.020 
    1718public abstract class BinExp extends Expression { 
    1819 
     
    484485    } 
    485486     
    486     public Expression interpretCommon(InterState istate, BinExp_fp fp, 
     487    public final Expression interpretCommon(InterState istate, BinExp_fp fp, 
    487488            SemanticContext context) { 
    488489        Expression e; 
     
    506507    } 
    507508 
    508     public Expression interpretCommon2(InterState istate, BinExp_fp2 fp, 
     509    public final Expression interpretCommon2(InterState istate, BinExp_fp2 fp, 
    509510            SemanticContext context) { 
    510511        Expression e; 
     
    541542    } 
    542543     
    543     public Expression interpretAssignCommon(InterState istate, BinExp_fp fp, 
     544    public final Expression interpretAssignCommon(InterState istate, BinExp_fp fp, 
    544545            SemanticContext context) 
    545546    { 
     
    547548    } 
    548549     
    549     public Expression interpretAssignCommon(InterState istate, BinExp_fp fp, 
     550    public final Expression interpretAssignCommon(InterState istate, BinExp_fp fp, 
    550551            int post, SemanticContext context) 
    551552    { 
  • trunk/descent.core/src/descent/internal/compiler/parser/CatAssignExp.java

    r759 r768  
    55import static descent.internal.compiler.parser.Constfold.Cat; 
    66 
     7// DMD 1.020 
    78public class CatAssignExp extends BinExp { 
    89 
    910    public CatAssignExp(Loc loc, Expression e1, Expression e2) { 
    1011        super(loc, TOK.TOKcatass, e1, e2); 
    11     } 
    12  
    13     @Override 
    14     public int getNodeType() { 
    15         return CAT_ASSIGN_EXP; 
    1612    } 
    1713 
     
    2420        } 
    2521        visitor.endVisit(this); 
     22    } 
     23 
     24    @Override 
     25    public int getNodeType() { 
     26        return CAT_ASSIGN_EXP; 
     27    } 
     28 
     29    @Override 
     30    public Expression interpret(InterState istate, SemanticContext context) { 
     31        return interpretAssignCommon(istate, Cat, context); 
     32    } 
     33 
     34    @Override 
     35    public char[] opId() 
     36    { 
     37        return Id.catass; 
    2638    } 
    2739 
     
    7789    } 
    7890 
    79     @Override 
    80     public Expression interpret(InterState istate, SemanticContext context) { 
    81         return interpretAssignCommon(istate, Cat, context); 
    82     } 
    83  
    8491} 
  • trunk/descent.core/src/descent/internal/compiler/parser/CatExp.java

    r748 r768  
    44import descent.core.compiler.IProblem; 
    55import descent.internal.compiler.parser.ast.IASTVisitor; 
     6import static descent.internal.compiler.parser.Constfold.Cat; 
    67 
     8// DMD 1.020 
    79public class CatExp extends BinExp { 
    810 
    911    public CatExp(Loc loc, Expression e1, Expression e2) { 
    1012        super(loc, TOK.TOKtilde, e1, e2); 
    11     } 
    12      
    13     @Override 
    14     public int getNodeType() { 
    15         return CAT_EXP; 
    1613    } 
    1714     
     
    2421        } 
    2522        visitor.endVisit(this); 
     23    } 
     24     
     25    @Override 
     26    public int getNodeType() { 
     27        return CAT_EXP; 
     28    } 
     29 
     30    @Override 
     31    public Expression interpret(InterState istate, SemanticContext context) 
     32    { 
     33        //Expression e; 
     34        Expression e1; 
     35        Expression e2; 
     36         
     37        e1 = this.e1.interpret(istate, context); 
     38        if(e1 == EXP_CANT_INTERPRET) 
     39        { 
     40            return EXP_CANT_INTERPRET; //goto Lcant; 
     41        } 
     42        e2 = this.e2.interpret(istate, context); 
     43        if(e2 == EXP_CANT_INTERPRET) 
     44            return EXP_CANT_INTERPRET; //goto Lcant; 
     45        return Cat.call(type, e1, e2, context); 
     46         
     47        //Lcant: 
     48        //  return EXP_CANT_INTERPRET; 
     49    } 
     50 
     51    @Override 
     52    public char[] opId() 
     53    { 
     54        return Id.cat; 
     55    } 
     56 
     57    @Override 
     58    public char[] opId_r() 
     59    { 
     60        return Id.cat_r; 
     61    } 
     62 
     63    @Override 
     64    public Expression optimize(int result, SemanticContext context) 
     65    { 
     66        Expression e; 
     67         
     68        //printf("CatExp.optimize(%d) %s\n", result, toChars()); 
     69        e1 = e1.optimize(result, context); 
     70        e2 = e2.optimize(result, context); 
     71        e = Cat.call(type, e1, e2, context); 
     72        if(e == EXP_CANT_INTERPRET) 
     73            e = this; 
     74        return e; 
    2675    } 
    2776 
  • trunk/descent.core/src/descent/internal/compiler/parser/Chars.java

    r715 r768  
    33import java.math.BigInteger; 
    44 
     5// DMD 1.020 
    56public class Chars { 
    67     
  • trunk/descent.core/src/descent/internal/compiler/parser/ClassDeclaration.java

    r760 r768  
    2222import static descent.internal.compiler.parser.TY.Tclass; 
    2323 
     24// DMD 1.020 
    2425public class ClassDeclaration extends AggregateDeclaration { 
    2526 
  • trunk/descent.core/src/descent/internal/compiler/parser/ClassDeclarations.java

    r741 r768  
    33import java.util.ArrayList; 
    44 
     5// DMD 1.020 
    56public class ClassDeclarations extends ArrayList<ClassDeclaration> { 
    67 
  • trunk/descent.core/src/descent/internal/compiler/parser/Comment.java

    r658 r768  
    33import descent.internal.compiler.parser.ast.IASTVisitor; 
    44 
     5// DMD 1.020 
    56public class Comment extends ASTDmdNode { 
    67     
  • trunk/descent.core/src/descent/internal/compiler/parser/CompileDeclaration.java

    r748 r768  
    66import descent.internal.compiler.parser.ast.IASTVisitor; 
    77 
     8// DMD 1.020 
    89public class CompileDeclaration extends AttribDeclaration { 
    910 
  • trunk/descent.core/src/descent/internal/compiler/parser/CompileExp.java

    r753 r768  
    66import descent.internal.compiler.parser.ast.IASTVisitor; 
    77 
     8// DMD 1.020 
    89public class CompileExp extends UnaExp { 
    910 
     
    1314 
    1415    @Override 
    15     public int getNodeType() { 
    16         return COMPILE_EXP; 
    17     } 
    18      
    19     @Override 
    2016    public void accept0(IASTVisitor visitor) { 
    2117        boolean children = visitor.visit(this); 
     
    2420        } 
    2521        visitor.endVisit(this); 
     22    } 
     23     
     24    @Override 
     25    public int getNodeType() { 
     26        return COMPILE_EXP; 
    2627    } 
    2728     
  • trunk/descent.core/src/descent/internal/compiler/parser/CompileStatement.java

    r748 r768  
    44import descent.internal.compiler.parser.ast.IASTVisitor; 
    55 
     6// DMD 1.020 
    67public class CompileStatement extends Statement { 
    78     
  • trunk/descent.core/src/descent/internal/compiler/parser/ComplexExp.java

    r748 r768  
    55import descent.internal.compiler.parser.ast.IASTVisitor; 
    66 
     7// DMD 1.020 
    78public class ComplexExp extends Expression { 
    89 
  • trunk/descent.core/src/descent/internal/compiler/parser/Condition.java

    r761 r768  
    33import descent.internal.compiler.parser.ast.ASTRangeLessNode; 
    44 
     5// DMD 1.020 
    56public abstract class Condition extends ASTRangeLessNode { 
    67     
  • trunk/descent.core/src/descent/internal/compiler/parser/Declaration.java

    r752 r768  
    55import static descent.internal.compiler.parser.STC.STCref; 
    66 
     7// DMD 1.020 
    78public abstract class Declaration extends Dsymbol { 
    89 
  • trunk/descent.core/src/descent/internal/compiler/parser/DsymbolTable.java

    r690 r768  
    11package descent.internal.compiler.parser; 
    22 
     3// DMD 1.020 
    34public class DsymbolTable { 
    45     
  • trunk/descent.core/src/descent/internal/compiler/parser/Dsymbols.java

    r741 r768  
    33import java.util.ArrayList; 
    44 
     5// DMD 1.020 
    56public class Dsymbols extends ArrayList<Dsymbol> { 
    67 
  • trunk/descent.core/src/descent/internal/compiler/parser/Entity.java

    r661 r768  
    44import descent.core.compiler.IProblem; 
    55 
     6// DMD 1.020 
    67public class Entity { 
    78     
  • trunk/descent.core/src/descent/internal/compiler/parser/Expressions.java

    r759 r768  
    44import java.util.List; 
    55 
     6// DMD 1.020 
    67public class Expressions extends ArrayList<Expression> { 
    78 
  • trunk/descent.core/src/descent/internal/compiler/parser/FileExp.java

    r748 r768  
    2323 *      into optimize(WANTvalue) or otherwise marked as necessary/unnecessary? 
    2424 */ 
     25// DMD 1.020 
    2526public class FileExp extends UnaExp { 
    2627 
  • trunk/descent.core/src/descent/internal/compiler/parser/ForStatement.java

    r754 r768  
    44import descent.internal.compiler.parser.ast.IASTVisitor; 
    55 
     6// DMD 1.020 
    67public class ForStatement extends Statement { 
    78 
  • trunk/descent.core/src/descent/internal/compiler/parser/ForeachRangeStatement.java

    r748 r768  
    44import descent.internal.compiler.parser.ast.IASTVisitor; 
    55 
    6  
     6// DMD 2.003 
    77public class ForeachRangeStatement extends Statement { 
    88 
  • trunk/descent.core/src/descent/internal/compiler/parser/ForeachStatement.java

    r756 r768  
    4040import static descent.internal.compiler.parser.TY.Twchar; 
    4141 
     42// DMD 1.020 
    4243public class ForeachStatement extends Statement { 
    4344 
  • trunk/descent.core/src/descent/internal/compiler/parser/FuncDeclarations.java

    r741 r768  
    33import java.util.ArrayList; 
    44 
     5// DMD 1.020 
    56public class FuncDeclarations extends ArrayList<FuncDeclaration> { 
    67 
  • trunk/descent.core/src/descent/internal/compiler/parser/HashtableOfCharArrayAndObject.java

    r748 r768  
    88 * Hashtable of {String --> int } 
    99 */ 
     10// DMD 1.020 
    1011public final class HashtableOfCharArrayAndObject implements Cloneable { 
    1112    public static final Object MISSING_ELEMENT = null; 
  • trunk/descent.core/src/descent/internal/compiler/parser/HdrGenState.java

    r738 r768  
    11package descent.internal.compiler.parser; 
    22 
     3// DMD 1.020 
    34public class HdrGenState { 
    45     
  • trunk/descent.core/src/descent/internal/compiler/parser/ILS.java

    r712 r768  
    11package descent.internal.compiler.parser; 
    22 
     3// DMD 1.020 
    34public enum ILS { 
    45    ILSuninitialized,   // not computed yet 
  • trunk/descent.core/src/descent/internal/compiler/parser/Id.java

    r760 r768  
    33import descent.core.compiler.CharOperation; 
    44 
     5// DMD 1.020 
    56public interface Id { 
    67     
    7     char[] IUnknown = { 'I', 'u', 'n', 'k', 'n', 'o', 'w', 'n' }; 
    8     char[] Object = { 'O', 'b', 'j', 'e', 'c', 't' }; 
    9     char[] object = { 'o', 'b', 'j', 'e', 'c', 't' }; // shared 
    10     char[] max = { 'm', 'a', 'x' }; 
    11     char[] min = { 'm', 'i', 'n' }; 
    12     char[] This = { 't', 'h', 'i', 's' }; 
    13     char[] ctor = { '_', 'c', 't', 'o', 'r' }; 
    14     char[] dtor = { '_', 'd', 't', 'o', 'r' }; 
    15     char[] classInvariant = { '_', '_', 'i', 'n', 'v', 'a', 'r', 'i', 'a', 'n', 't' }; 
    16     char[] unitTest = { '_', 'u', 'n', 'i', 't', 'T', 'e', 's', 't' }; 
    17     char[] staticCtor = { '_', 's', 't', 'a', 't', 'i', 'c', 'C', 't', 'o', 'r' }; 
    18     char[] staticDtor = { '_', 's', 't', 'a', 't', 'i', 'c', 'D', 't', 'o', 'r' }; 
    19     char[] init = { 'i', 'n', 'i', 't' }; 
    20     char[] size = { 's', 'i', 'z', 'e' }; 
    21     char[] __sizeof = { 's', 'i', 'z', 'e', 'o', 'f' }; 
    22     char[] alignof = { 'a', 'l', 'i', 'g', 'n', 'o', 'f' }; 
    23     char[] mangleof = { 'm', 'a', 'n', 'g', 'l', 'e', 'o', 'f' }; 
    24     char[] stringof = { 's', 't', 'r', 'i', 'n', 'g', 'o', 'f' }; 
    25     char[] length = { 'l', 'e', 'n', 'g', 't', 'h' }; // shared 
    26     char[] remove = { 'r', 'e', 'm', 'o', 'v', 'e' }; 
    27     char[] ptr = { 'p', 't', 'r' }; 
    28     char[] dollar = { '_', '_', 'd', 'o', 'l', 'l', 'a', 'r' }; 
    29     char[] offset = { 'o', 'f', 'f', 's', 'e', 't' }; 
    30     char[] offsetof = { 'o', 'f', 'f', 's', 'e', 't', 'o', 'f' }; 
    31     char[] ModuleInfo = { 'M', 'o', 'd', 'u', 'l', 'e', 'I', 'n', 'f', 'o' }; 
    32     char[] ClassInfo = { 'C', 'l', 'a', 's', 's', 'I', 'n', 'f', 'o' }; 
    33     char[] classinfo = { 'c', 'l', 'a', 's', 's', 'i', 'n', 'f', 'o' }; 
    34     char[] typeinfo = { 't', 'y', 'p', 'e', 'i', 'n', 'f', 'o' }; 
    35     char[] Exception = { 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }; 
    36     char[] withSym = { '_', '_', 'w', 'i', 't', 'h', 'S', 'y', 'm' }; 
    37     char[] result = { '_', '_', 'r', 'e', 's', 'u', 'l', 't' }; 
    38     char[] returnLabel = { '_', '_', 'r', 'e', 't', 'u', 'r', 'n', 'L', 'a', 'b', 'e', 'l' }; 
    39     char[] _delegate = { 'd', 'e', 'l', 'e', 'g', 'a', 't', 'e' }; 
    40     char[] line = { 'l', 'i', 'n', 'e' }; 
    41     char[] empty = CharOperation.NO_CHAR; 
    42     char[] p = { 'p' }; // shared 
    43     char[] coverage = { '_', '_', 'c', 'o', 'v', 'e', 'r', 'a', 'g', 'e' }; 
    44     char[] TypeInfo = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o' }; 
    45     char[] TypeInfo_Class = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'C', 'l', 'a', 's', 's' }; 
    46     char[] TypeInfo_Struct = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'S', 't', 'r', 'u', 'c', 't' }; 
    47     char[] TypeInfo_Interface = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'I', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'e' }; 
    48     char[] TypeInfo_Enum = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'E', 'n', 'u', 'm' }; 
    49     char[] TypeInfo_Typedef = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'T', 'y', 'p', 'e', 'd', 'e', 'f' }; 
    50     char[] TypeInfo_Pointer = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'P', 'o', 'i', 'n', 't', 'e', 'r' }; 
    51     char[] TypeInfo_Array = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'A', 'r', 'r', 'a', 'y' }; 
    52     char[] TypeInfo_StaticArray = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'S', 't', 'a', 't', 'i', 'c', 'A', 'r', 'r', 'a', 'y' }; 
    53     char[] TypeInfo_AssociativeArray = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'A', 's', 's', 'o', 'c', 'i', 'a', 't', 'i', 'v', 'e', 'A', 'r', 'r', 'a', 'y' }; 
    54     char[] TypeInfo_Function = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n' }; 
    55     char[] TypeInfo_Delegate = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'D', 'e', 'l', 'e', 'g', 'a', 't', 'e' }; 
    56     char[] TypeInfo_Tuple = { 'T', 'y', 'p', 'e', 'I', 'n', 'f', 'o', '_', 'T', 'u', 'p', 'l', 'e' }; 
    57     char[] _arguments = { '_', 'a', 'r', 'g', 'u', 'm', 'e', 'n', 't', 's' }; 
    58     char[] _argptr = { '_', 'a', 'r', 'g', 'p', 't', 'r' }; 
    59     char[] _match = { '_', 'm', 'a', 't', 'c', 'h' }; 
    60     char[] LINE = { '_', '_', 'L', 'I', 'N', 'E', '_', '_' }; 
    61     char[] FILE = { '_', '_', 'F', 'I', 'L', 'E', '_', '_' }; 
    62     char[] DATE = { '_', '_', 'D', 'A', 'T', 'E', '_', '_' }; 
    63     char[] TIME = { '_', '_', 'T', 'I', 'M', 'E', '_', '_' }; 
    64     char[] TIMESTAMP = { '_', '_', 'T', 'I', 'M', 'E', 'S', 'T', 'A', 'M', 'P', '_', '_' }; 
    65     char[] VENDOR = { '_', '_', 'V', 'E', 'N', 'D', 'O', 'R', '_', '_' }; 
    66