Changeset 1141

Show
Ignore:
Timestamp:
04/30/08 19:13:49 (4 months ago)
Author:
asterite
Message:

Huge memory usage and speed optimization! Smoothness...

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/descent.core/src/descent/core/Signature.java

    r1137 r1141  
    16921692                StringBuilder sb = new StringBuilder(); 
    16931693                 
    1694                 for (int i = 0; i < compoundName.length; i++) { 
    1695                     if (i != 0) { 
    1696                         sb.append('.'); 
     1694                if (fqn) { 
     1695                    for (int i = 0; i < compoundName.length; i++) { 
     1696                        if (i != 0) { 
     1697                            sb.append('.'); 
     1698                        } 
     1699                        sb.append(compoundName[i]); 
    16971700                    } 
    1698                     sb.append(compoundName[i]); 
     1701                } else if (compoundName.length > 0) { 
     1702                    sb.append(compoundName[compoundName.length - 1]); 
    16991703                } 
    17001704                 
     
    18281832            private char nextTemplateParameterName() { 
    18291833                // We don't care about crazy templates with more than 8 parameters 
    1830                 try { 
    1831                     return (char) ('T' + templateParameters.peek().size()); 
    1832                 } catch (EmptyStackException e) { 
    1833                     System.out.println(1); 
    1834                     return 'T'; 
    1835                 } 
     1834                return (char) ('T' + templateParameters.peek().size()); 
    18361835            } 
    18371836            @Override 
  • trunk/descent.core/src/descent/core/dom/CompilationUnitResolver.java

    r1140 r1141  
    3131import descent.internal.compiler.impl.CompilerOptions; 
    3232import descent.internal.compiler.lookup.DescentModuleFinder; 
     33import descent.internal.compiler.parser.ASTNodeEncoder; 
    3334import descent.internal.compiler.parser.Global; 
    3435import descent.internal.compiler.parser.HashtableOfCharArrayAndObject; 
     
    4445     
    4546    private final static boolean RESOLVE = true; 
    46     private final static boolean STATS = true; 
     47    private final static boolean STATS = false; 
    4748     
    4849    public static class ParseResult { 
     
    5051        public PublicScanner scanner; 
    5152        public SemanticContext context; 
    52         public ParseResult(Module module, PublicScanner scanner) { 
     53        public ASTNodeEncoder encoder; 
     54        public ParseResult(Module module, PublicScanner scanner, ASTNodeEncoder encoder) { 
    5355            this.module = module; 
    5456            this.scanner = scanner; 
     57            this.encoder = encoder; 
    5558        } 
    5659    } 
     
    133136                        Util.toCharArrays(taskTags.split(",")), 
    134137                        Util.toCharArrays(((String) options.get(JavaCore.COMPILER_TASK_PRIORITIES)).split(",")), 
     138                        recordLineSeparator, 
    135139                        JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_TASK_CASE_SENSITIVE)), 
    136140                        filename 
    137141                        ); 
    138142            } else { 
    139                 parser = new Parser(apiLevel, source, 0, source.length, filename); 
     143                parser = new Parser(apiLevel, source, 0, source.length, filename, recordLineSeparator); 
    140144            } 
    141145        } else { 
    142             parser = new Parser(apiLevel, source, 0, source.length, filename); 
     146            parser = new Parser(apiLevel, source, 0, source.length, filename, recordLineSeparator); 
    143147        } 
    144148         
    145149        parser.diet = diet; 
    146150         
    147         PublicScanner scanner = new PublicScanner(true, true, true, true, apiLevel); 
     151        PublicScanner scanner = new PublicScanner(true, true, true, recordLineSeparator, apiLevel); 
    148152        scanner.setLexerAndSource(parser, source); 
    149153         
     
    151155        module.setSourceRange(0, source.length); 
    152156         
    153         return new ParseResult(module, scanner); 
     157        return new ParseResult(module, scanner, parser.encoder); 
    154158    } 
    155159     
     
    166170        ParseResult result = parse(apiLevel, sourceUnit, options, recordLineSeparator, statementsRecovery, false); 
    167171        result.module.moduleName = sourceUnit.getFullyQualifiedName(); 
    168         result.context = resolve(result.module, javaProject, owner); 
     172        result.context = resolve(result.module, javaProject, owner, result.encoder); 
    169173        return result; 
    170174    } 
     
    173177            final Module module,  
    174178            final IJavaProject project, 
    175             final WorkingCopyOwner owner)  
     179            final WorkingCopyOwner owner, 
     180            final ASTNodeEncoder encoder)  
    176181        throws JavaModelException { 
    177182         
     
    179184         
    180185        Global global = prepareForSemantic(project, config); 
    181         return resolve(module, project, global, owner, config); 
     186        return resolve(module, project, global, owner, config, encoder); 
    182187    } 
    183188     
     
    187192            final Global global, 
    188193            final WorkingCopyOwner owner, 
    189             final CompilerConfiguration config) throws JavaModelException { 
     194            final CompilerConfiguration config, 
     195            final ASTNodeEncoder encoder) throws JavaModelException { 
    190196         
    191197        long time = System.currentTimeMillis(); 
     
    334340                module,  
    335341                project, 
    336                 new DescentModuleFinder(new CancelableNameEnvironment((JavaProject) project, owner, null), config), 
     342                new DescentModuleFinder(new CancelableNameEnvironment((JavaProject) project, owner, null), config, encoder), 
    337343                global, 
    338                 config); 
     344                config, 
     345                encoder); 
    339346         
    340347        if (!RESOLVE) return context; 
  • trunk/descent.core/src/descent/internal/codeassist/CompletionEngine.java

    r1137 r1141  
    4949import descent.internal.compiler.env.ICompilationUnit; 
    5050import descent.internal.compiler.parser.ASTDmdNode; 
     51import descent.internal.compiler.parser.ASTNodeEncoder; 
    5152import descent.internal.compiler.parser.AggregateDeclaration; 
    5253import descent.internal.compiler.parser.AliasDeclaration; 
     
    232233    Module module; 
    233234    SemanticContext semanticContext; 
     235    ASTNodeEncoder encoder; 
    234236     
    235237    char[] fileName = null; 
     
    328330        } 
    329331         
    330       long time = System.currentTimeMillis(); 
     332//        long time = System.currentTimeMillis(); 
    331333         
    332334        this.requestor.beginReporting(); 
     
    351353             
    352354            parser = new CompletionParser(Util.getApiLevel(this.compilerOptions.getMap()), source, this.fileName); 
     355            encoder = parser.encoder; 
     356             
    353357            parser.cursorLocation = completionPosition; 
    354358            parser.nextToken(); 
     
    363367             
    364368            ASTDmdNode assistNode = parser.getAssistNode(); 
    365              
    366             if (assistNode != null) { 
    367                 System.out.println(assistNode.getClass()); 
    368             } 
    369369             
    370370            if (parser.wantNames()) { 
     
    425425            this.requestor.endReporting(); 
    426426             
    427           time = System.currentTimeMillis() - time; 
    428           System.out.println("Completion took " + time + " milliseconds to complete."); 
     427//            time = System.currentTimeMillis() - time; 
     428//            System.out.println("Completion took " + time + " milliseconds to complete."); 
    429429        } 
    430430    } 
     
    669669         
    670670        semanticRun = true; 
    671         semanticContext = CompilationUnitResolver.resolve(module, this.javaProject, null); 
     671        semanticContext = CompilationUnitResolver.resolve(module, this.javaProject, null, encoder); 
    672672    } 
    673673 
     
    17411741     
    17421742    private void completeTypeClass(TypeClass type, boolean onlyStatics) { 
    1743         long time = System.currentTimeMillis(); 
    1744          
    17451743        // Keep a hashtable of already used signatures, in order to avoid 
    17461744        // suggesting overriden functions 
     
    17491747        // And also all type's properties 
    17501748        suggestAllTypesProperties(type); 
    1751          
    1752         time = System.currentTimeMillis() - time; 
    1753         System.out.println("Complete type class took " + time + " milliseconds"); 
    17541749    } 
    17551750     
  • trunk/descent.core/src/descent/internal/codeassist/SelectionEngine.java

    r1138 r1141  
    1111import descent.core.WorkingCopyOwner; 
    1212import descent.core.compiler.CharOperation; 
     13import descent.core.dom.ASTNode; 
    1314import descent.core.dom.CompilationUnitResolver; 
    1415import descent.internal.compiler.env.AccessRestriction; 
     
    1617import descent.internal.compiler.impl.CompilerOptions; 
    1718import descent.internal.compiler.parser.ASTDmdNode; 
     19import descent.internal.compiler.parser.ASTNodeEncoder; 
    1820import descent.internal.compiler.parser.AliasDeclaration; 
    1921import descent.internal.compiler.parser.AlignDeclaration; 
     
    7678    Module module; 
    7779    SemanticContext context; 
     80    ASTNodeEncoder encoder; 
    7881    List<IJavaElement> selectedElements; 
    7982    InternalSignature internalSignature; 
     
    9093    public IJavaElement[] select(ICompilationUnit sourceUnit, final int offset, 
    9194            final int length) { 
    92         long time = System.currentTimeMillis(); 
    93          
    9495        this.offset = offset; 
    9596        this.length = length; 
     
    106107            parser.selectionOffset = this.offset; 
    107108            parser.selectionLength = this.length; 
     109             
     110            encoder = parser.encoder; 
    108111             
    109112            parser.nextToken(); 
     
    161164            } else { 
    162165                module.moduleName = sourceUnit.getFullyQualifiedName(); 
    163  
    164                 long time2 = System.currentTimeMillis(); 
    165166                module.accept(this); 
    166                 time2 = System.currentTimeMillis() - time2; 
    167                 System.out.println("Selection visiting time: " + time2); 
    168167            } 
    169168            return selectedElements.toArray(new IJavaElement[selectedElements 
     
    172171            Util.log(e); 
    173172            return NO_ELEMENTS; 
    174         } finally { 
    175             time = System.currentTimeMillis() - time; 
    176             System.out.println("Selection time: " + time); 
    177173        } 
    178174    } 
     
    182178            try { 
    183179                context = CompilationUnitResolver.resolve(module, javaProject, 
    184                         owner); 
     180                        owner, encoder); 
    185181            } catch (JavaModelException e) { 
    186182                Util.log(e); 
  • trunk/descent.core/src/descent/internal/codeassist/complete/CompletionOnTemplateMixin.java

    r1136 r1141  
    11package descent.internal.codeassist.complete; 
    22 
     3import descent.internal.compiler.parser.ASTNodeEncoder; 
    34import descent.internal.compiler.parser.IdentifierExp; 
    45import descent.internal.compiler.parser.Identifiers; 
     
    1415    public Scope scope; 
    1516 
    16     public CompletionOnTemplateMixin(Loc loc, IdentifierExp ident, Type tqual, Identifiers idents, Objects tiargs) { 
    17         super(loc, ident, tqual, idents, tiargs); 
     17    public CompletionOnTemplateMixin(Loc loc, IdentifierExp ident, Type tqual, Identifiers idents, Objects tiargs, ASTNodeEncoder encoder) { 
     18        super(loc, ident, tqual, idents, tiargs, encoder); 
    1819    } 
    1920     
  • trunk/descent.core/src/descent/internal/codeassist/complete/CompletionParser.java

    r1136 r1141  
    465465            wantKeywords = false; 
    466466             
    467             assistNode = new CompletionOnTemplateMixin(loc, id, tqual, idents, tiargs); 
     467            assistNode = new CompletionOnTemplateMixin(loc, id, tqual, idents, tiargs, encoder); 
    468468            return (CompletionOnTemplateMixin) assistNode; 
    469469        } 
  • trunk/descent.core/src/descent/internal/compiler/SourceElementParser.java

    r1140 r1141  
    1818import descent.core.dom.AST; 
    1919import descent.core.dom.CompilationUnitResolver; 
     20import descent.core.dom.CompilationUnitResolver.ParseResult; 
    2021import descent.internal.compiler.ISourceElementRequestor.FieldInfo; 
    2122import descent.internal.compiler.ISourceElementRequestor.MethodInfo; 
     
    5455    private final NaiveASTFlattener flattener; 
    5556    private final Stack< Stack<AttribDeclaration> > attribDeclarationStack; 
    56     private final ASTNodeEncoder astNodeEncoder; 
     57    public ASTNodeEncoder encoder; 
    5758    private char[] source; 
    5859     
     
    7374        this.attribDeclarationStack = new Stack< Stack<AttribDeclaration> >(); 
    7475        this.attribDeclarationStack.push(new Stack<AttribDeclaration>()); 
    75         this.astNodeEncoder = new ASTNodeEncoder(); 
    7676    } 
    7777     
     
    9292     
    9393    public Module parseCompilationUnit(descent.internal.compiler.env.ICompilationUnit unit) { 
    94       long time = System.nanoTime(); 
     94//        long time = System.nanoTime(); 
    9595         
    9696        source = unit.getContents(); 
    9797         
    98         module = CompilationUnitResolver.parse(getASTlevel(), unit, options.getMap(), recordLineSeparator, true, diet).module; 
     98        ParseResult result = CompilationUnitResolver.parse(getASTlevel(), unit, options.getMap(), recordLineSeparator, true, diet); 
     99         
     100        module = result.module; 
     101        encoder = result.encoder; 
    99102         
    100103        module.moduleName = unit.getFullyQualifiedName(); 
     
    104107        requestor.exitCompilationUnit(endOf(module)); 
    105108         
    106       time = System.nanoTime() - time; 
    107       System.out.println("SourceElementParser took: " + time + " nanoseconds to complete."); 
     109//        time = System.nanoTime() - time; 
     110//        System.out.println("SourceElementParser took: " + time + " nanoseconds to complete."); 
    108111         
    109112        return module; 
     
    595598         
    596599        info.type = getSignature(node.type); 
    597         info.initializationSource = astNodeEncoder.encodeInitializer(node.init); 
     600        info.initializationSource = encoder.encodeInitializer(node.init); 
    598601         
    599602        requestor.enterField(info); 
     
    656659    @Override 
    657660    public boolean visit(StaticAssert node) { 
    658         requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccStaticAssert, astNodeEncoder.encodeExpression(node.exp)); 
     661        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccStaticAssert, encoder.encodeExpression(node.exp)); 
    659662        return false; 
    660663    } 
     
    751754        } 
    752755         
    753         info.initializationSource = astNodeEncoder.encodeExpression(node.value); 
     756        info.initializationSource = encoder.encodeExpression(node.value); 
    754757         
    755758        requestor.enterField(info); 
     
    783786    @Override 
    784787    public boolean visit(CompileDeclaration node) { 
    785         requestor.enterInitializer(startOf(node), getFlags(node, node.modifiers) | Flags.AccMixin, astNodeEncoder.encodeExpression(node.exp)); 
     788        requestor.enterInitializer(startOf(node), getFlags(node, node.modifiers) | Flags.AccMixin, encoder.encodeExpression(node.exp)); 
    786789        return false; 
    787790    } 
  • trunk/descent.core/src/descent/internal/compiler/lookup/DescentModuleFinder.java

    r1099 r1141  
    44import descent.internal.compiler.env.IModuleFinder; 
    55import descent.internal.compiler.env.INameEnvironment; 
     6import descent.internal.compiler.parser.ASTNodeEncoder; 
    67import descent.internal.compiler.parser.Module; 
    78import descent.internal.compiler.parser.SemanticContext; 
     
    1314    private final ModuleBuilder builder; 
    1415 
    15     public DescentModuleFinder(INameEnvironment environment, CompilerConfiguration config) { 
     16    public DescentModuleFinder(INameEnvironment environment, CompilerConfiguration config, ASTNodeEncoder encoder) { 
    1617        this.environment = environment; 
    17         this.builder = new ModuleBuilder(config); 
     18        this.builder = new ModuleBuilder(config, encoder); 
    1819    } 
    1920 
  • trunk/descent.core/src/descent/internal/compiler/lookup/ModuleBuilder.java

    r1140 r1141  
    163163    } 
    164164     
    165     private final ASTNodeEncoder encoder = new ASTNodeEncoder();   
     165    private final ASTNodeEncoder encoder;  
    166166    private final CompilerConfiguration config; 
    167167     
     
    171171     * be part of the returned module. 
    172172     */ 
    173     public ModuleBuilder(CompilerConfiguration config) { 
     173    public ModuleBuilder(CompilerConfiguration config, ASTNodeEncoder encoder) { 
    174174        this.config = config; 
     175        this.encoder = encoder; 
    175176    } 
    176177     
     
    194195            } 
    195196             
    196             long time = System.currentTimeMillis(); 
    197              
    198197            State state = new State(); 
    199198             
     
    202201             
    203202            state.surface = false; 
    204              
    205             time = System.currentTimeMillis() - time; 
    206             if (time != 0) { 
    207                 System.out.println("Building module " + module.moduleName + " took: " + time + " milliseconds to complete."); 
    208             } 
    209203        } catch (JavaModelException e) { 
    210204            e.printStackTrace(); 
     
    713707        } 
    714708         
    715 //      System.out.println(imp); 
    716709        members.add(wrap(imp, flags)); 
    717710    } 
     
    794787 
    795788    private TemplateParameter getTemplateParameter(String name, String signature, String defaultValue) { 
    796         TemplateParameter param = InternalSignature.toTemplateParameter(signature, defaultValue); 
     789        TemplateParameter param = InternalSignature.toTemplateParameter(signature, defaultValue, encoder); 
    797790        param.ident = new IdentifierExp(name.toCharArray()); 
    798791        return param; 
     
    846839            return null; 
    847840        } 
    848         Type type = InternalSignature.toType(signature); 
     841        Type type = InternalSignature.toType(signature, encoder); 
    849842        return new BaseClass(type, PROT.PROTpublic); 
    850843    } 
     
    854847            return null; 
    855848        } 
    856         return InternalSignature.toType(signature); 
     849        return InternalSignature.toType(signature, encoder); 
    857850    } 
    858851     
  • trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java

    r1137 r1141  
    824824                            char[] id = ("_arrayArg" + (++context.ASTDmdNode_idn)).toCharArray(); 
    825825                            Type t = new TypeSArray(tb.next, new IntegerExp(loc, 
    826                                     nargs - i)); 
     826                                    nargs - i), context.encoder); 
    827827                            t = t.semantic(loc, sc, context); 
    828828                            VarDeclaration v = new VarDeclaration(loc, t, id, 
  • trunk/descent.core/src/descent/internal/compiler/parser/ASTNodeEncoder.java

    r1098 r1141  
    1717    private Parser initParser(char[] source) { 
    1818        if (parser == null) { 
    19             parser = new Parser(Parser.DEFAULT_LEVEL, source); 
     19            parser = new Parser(source, 0, source.length, false, false, false, false, Parser.DEFAULT_LEVEL, null, null, false, null); 
    2020        } else { 
    2121            parser.reset(source, 0, source.length, false, false, false, false); 
  • trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java

    r1137 r1141  
    119119            } 
    120120            return; 
    121         } 
    122          
    123         if (sc == null) { 
    124             System.out.println(1); 
    125121        } 
    126122         
  • trunk/descent.core/src/descent/internal/compiler/parser/ArrayInitializer.java

    r1087 r1141  
    6767                if (iz != null) { 
    6868                    Type t = iz.inferType(sc, context); 
    69                     t = new TypeSArray(t, new IntegerExp(iz.loc, value.size())); 
     69                    t = new TypeSArray(t, new IntegerExp(iz.loc, value.size()), context.encoder); 
    7070                    t = t.semantic(loc, sc, context); 
    7171                    return t; 
     
    138138        ArrayInitializer ai = new ArrayInitializer(loc); 
    139139 
    140         if (!(index.size() == value.size())) { 
     140        if (!(size(index) == size(value))) { 
    141141            throw new IllegalStateException("assert(index.dim == value.dim);"); 
    142142        } 
    143143 
    144         ai.index = new Expressions(index.size()); 
    145         ai.value = new Initializers(value.size()); 
     144        ai.index = new Expressions(size(index)); 
     145        ai.value = new Initializers(size(value)); 
    146146         
    147         ai.index.setDim(index.size()); 
    148         ai.value.setDim(value.size()); 
    149         for (int i = 0; i < ai.value.size(); i++) { 
     147        ai.index.setDim(size(index)); 
     148        ai.value.setDim(size(value)); 
     149        for (int i = 0; i < size(ai.value); i++) { 
    150150            Expression e = index.get(i); 
    151151            if (e != null) { 
  • trunk/descent.core/src/descent/internal/compiler/parser/ArrayLiteralExp.java

    r1118 r1141  
    176176        } 
    177177        // PERHAPS singleton 
    178         type = new TypeSArray(t0, new IntegerExp(loc, elements.size())); 
     178        type = new TypeSArray(t0, new IntegerExp(loc, elements.size()), context.encoder); 
    179179        type = type.semantic(loc, sc, context); 
    180180        return this; 
  • trunk/descent.core/src/descent/internal/compiler/parser/Constfold.java

    r1087 r1141  
    866866                    e.type = new TypeSArray(e1.type.toBasetype(context).next, 
    867867                            new IntegerExp(Loc.ZERO, es1.elements.size(), 
    868                                     Type.tindex)); 
     868                                    Type.tindex), context.encoder); 
    869869                    e.type = e.type.semantic(loc, null, context); 
    870870                } else { 
     
    885885                if (type.toBasetype(context).ty == Tsarray) { 
    886886                    e.type = new TypeSArray(e2.type, new IntegerExp(Loc.ZERO, 
    887                             es1.elements.size(), Type.tindex)); 
     887                            es1.elements.size(), Type.tindex), context.encoder); 
    888888                    e.type = e.type.semantic(loc, null, context); 
    889889                } else { 
     
    904904                if (type.toBasetype(context).ty == Tsarray) { 
    905905                    e.type = new TypeSArray(e1.type, new IntegerExp(Loc.ZERO, 
    906                             es2.elements.size(), Type.tindex)); 
     906                            es2.elements.size(), Type.tindex), context.encoder); 
    907907                    e.type = e.type.semantic(loc, null, context); 
    908908                } else { 
  • trunk/descent.core/src/descent/internal/compiler/parser/DVCondition.java

    r1128 r1141  
    1515        this.level = level; 
    1616        this.ident = id; 
    17          
    18         if (mod == null) { 
    19             System.out.println(this); 
    20         } 
    2117    } 
    2218     
  • trunk/descent.core/src/descent/internal/compiler/parser/Expression.java

    r1118 r1141  
    251251 
    252252    public Expression deref() { 
    253         if (type == null) { 
    254             System.out.println(1); 
    255         } 
    256  
    257253        if (type.ty == Treference) { 
    258254            Expression e; 
  • trunk/descent.core/src/descent/internal/compiler/parser/Lexer.java

    r1140 r1141  
    159159    public char[][] taskPriorities = null; 
    160160    public boolean isTaskCaseSensitive = true; 
     161     
     162    public final ASTNodeEncoder encoder; 
    161163 
    162164    private boolean tokenizeComments; 
     
    201203            newEntry6 = 0; 
    202204 
    203     /* package */Lexer(int apiLevel) { 
     205    /* package */ Lexer(int apiLevel, ASTNodeEncoder encoder) { 
    204206        this.apiLevel = apiLevel; 
     207        this.encoder = encoder; 
    205208    } 
    206209 
     
    266269                tokenizeWhiteSpace, recordLineSeparator, apiLevel, null); 
    267270    } 
    268  
     271     
    269272    public Lexer(char[] source, int offset, int length, 
    270273            boolean tokenizeComments, boolean tokenizePragmas, 
    271274            boolean tokenizeWhiteSpace, boolean recordLineSeparator, 
    272275            int apiLevel, char[] filename) { 
    273         this(apiLevel); 
     276        this(source, offset, length, tokenizeComments, tokenizePragmas, 
     277                tokenizeWhiteSpace, recordLineSeparator, apiLevel, filename, new ASTNodeEncoder()); 
     278    } 
     279 
     280    public Lexer(char[] source, int offset, int length, 
     281            boolean tokenizeComments, boolean tokenizePragmas, 
     282            boolean tokenizeWhiteSpace, boolean recordLineSeparator, 
     283            int apiLevel, char[] filename, ASTNodeEncoder encoder) { 
     284        this(apiLevel, encoder); 
    274285        reset(source, offset, length, tokenizeComments, tokenizePragmas, 
    275286                tokenizeWhiteSpace, recordLineSeparator); 
     
    45414552        stringbuffer.data.getChars(0, stringbuffer.offset(), t.ustring = new char[stringbuffer.offset()], 0); 
    45424553         
    4543         System.out.println(new String(t.ustring)); 
    4544          
    45454554        t.sourceLen = p - t.ptr; 
    45464555        t.sourceString = CharOperation.subarray(input, t.ptr, p); 
  • trunk/descent.core/src/descent/internal/compiler/parser/Module.java

    r1118 r1141  
    110110            return; 
    111111        } 
    112          
    113         long time = System.currentTimeMillis(); 
    114112 
    115113        semanticstarted = 1; 
     
    162160 
    163161        semanticdone = semanticstarted; 
    164          
    165         time = System.currentTimeMillis() - time; 
    166         if (time != 0) { 
    167 //          System.out.println("Semantic 1 on " + moduleName + " took: " + time + " milliseconds to complete."); 
    168         } 
    169162    } 
    170163 
     
    187180        } 
    188181        semanticstarted = 2; 
    189          
    190         long time = System.currentTimeMillis(); 
    191182 
    192183        // Note that modules get their own scope, from scratch. 
     
    207198        sc.pop(); 
    208199        semanticdone = semanticstarted; 
    209          
    210         time = System.currentTimeMillis() - time; 
    211         if (time != 0) { 
    212 //          System.out.println("Semantic 2 on " + moduleName + " took: " + time + " milliseconds to complete."); 
    213         } 
    214200    } 
    215201 
     
    226212        } 
    227213        semanticstarted = 3; 
    228          
    229         long time = System.currentTimeMillis(); 
    230214 
    231215        // Note that modules get their own scope, from scratch. 
     
    246230        sc.pop(); 
    247231        semanticdone = semanticstarted; 
    248          
    249         time = System.currentTimeMillis() - time; 
    250         if (time != 0) { 
    251 //          System.out.println("Semantic 3 on " + moduleName + " took: " + time + " milliseconds to complete."); 
    252         } 
    253232    } 
    254233 
  • trunk/descent.core/src/descent/internal/compiler/parser/Parser.java

    r1136 r1141  
    196196    public Parser(int apiLevel, char[] source, int offset,  
    197197            int length, char[] filename) { 
    198         this(apiLevel, source, offset, length, null, null, false, filename); 
     198        this(apiLevel, source, offset, length, filename, true); 
     199    } 
     200     
     201    public Parser(int apiLevel, char[] source, int offset,  
     202            int length, char[] filename, boolean recordLineSeparator) { 
     203        this(apiLevel, source, offset, length, null, null, recordLineSeparator, false, filename); 
    199204    } 
    200205     
    201206    public Parser(int apiLevel, char[] source, int offset,  
    202207            int length, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive, char[] filename) { 
     208        this(apiLevel, source, offset, length, taskTags, taskPriorities, isTaskCaseSensitive, filename, new ASTNodeEncoder()); 
     209    } 
     210     
     211    public Parser(int apiLevel, char[] source, int offset,  
     212            int length, char[][] taskTags, char[][] taskPriorities, boolean recordLineSeparator, boolean isTaskCaseSensitive, char[] filename) { 
     213  &