Changeset 1141
- Timestamp:
- 04/30/08 19:13:49 (4 months ago)
- Files:
-
- trunk/descent.core/src/descent/core/Signature.java (modified) (2 diffs)
- trunk/descent.core/src/descent/core/dom/CompilationUnitResolver.java (modified) (10 diffs)
- trunk/descent.core/src/descent/internal/codeassist/CompletionEngine.java (modified) (9 diffs)
- trunk/descent.core/src/descent/internal/codeassist/SelectionEngine.java (modified) (8 diffs)
- trunk/descent.core/src/descent/internal/codeassist/complete/CompletionOnTemplateMixin.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/codeassist/complete/CompletionParser.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/SourceElementParser.java (modified) (9 diffs)
- trunk/descent.core/src/descent/internal/compiler/lookup/DescentModuleFinder.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/lookup/ModuleBuilder.java (modified) (8 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ASTNodeEncoder.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/ArrayInitializer.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/ArrayLiteralExp.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Constfold.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/DVCondition.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Expression.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/Lexer.java (modified) (4 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Module.java (modified) (6 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/Parser.java (modified) (15 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/SemanticContext.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/StringExp.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateDeclaration.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateInstance.java (modified) (8 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateMixin.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TemplateValueParameter.java (modified) (5 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeAArray.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeIdentifier.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeSArray.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeSlice.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/TypeTypeof.java (modified) (3 diffs)
- trunk/descent.core/src/descent/internal/compiler/parser/VarDeclaration.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/core/CompilationUnit.java (modified) (2 diffs)
- trunk/descent.core/src/descent/internal/core/InternalSignature.java (modified) (14 diffs)
- trunk/descent.core/src/descent/internal/core/JavaCorePreferenceInitializer.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/core/ReconcileWorkingCopyOperation.java (modified) (1 diff)
- trunk/descent.core/src/descent/internal/core/builder/JavaBuilder.java (modified) (9 diffs)
- trunk/descent.tests/descent/tests/mangling/SignatureToTemplateParameter_Test.java (modified) (11 diffs)
- trunk/descent.tests/descent/tests/mangling/SignatureToType_Test.java (modified) (17 diffs)
- trunk/descent.tests/descent/tests/mangling/Signature_Test.java (modified) (3 diffs)
- trunk/descent.tests/descent/tests/mars/Parser_Test.java (modified) (2 diffs)
- trunk/descent.ui/src/descent/internal/ui/javaeditor/SemanticHighlightingReconciler.java (modified) (1 diff)
- trunk/descent.ui/src/descent/internal/ui/javaeditor/SemanticHighlightings.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/descent.core/src/descent/core/Signature.java
r1137 r1141 1692 1692 StringBuilder sb = new StringBuilder(); 1693 1693 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]); 1697 1700 } 1698 sb.append(compoundName[i]); 1701 } else if (compoundName.length > 0) { 1702 sb.append(compoundName[compoundName.length - 1]); 1699 1703 } 1700 1704 … … 1828 1832 private char nextTemplateParameterName() { 1829 1833 // 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()); 1836 1835 } 1837 1836 @Override trunk/descent.core/src/descent/core/dom/CompilationUnitResolver.java
r1140 r1141 31 31 import descent.internal.compiler.impl.CompilerOptions; 32 32 import descent.internal.compiler.lookup.DescentModuleFinder; 33 import descent.internal.compiler.parser.ASTNodeEncoder; 33 34 import descent.internal.compiler.parser.Global; 34 35 import descent.internal.compiler.parser.HashtableOfCharArrayAndObject; … … 44 45 45 46 private final static boolean RESOLVE = true; 46 private final static boolean STATS = true;47 private final static boolean STATS = false; 47 48 48 49 public static class ParseResult { … … 50 51 public PublicScanner scanner; 51 52 public SemanticContext context; 52 public ParseResult(Module module, PublicScanner scanner) { 53 public ASTNodeEncoder encoder; 54 public ParseResult(Module module, PublicScanner scanner, ASTNodeEncoder encoder) { 53 55 this.module = module; 54 56 this.scanner = scanner; 57 this.encoder = encoder; 55 58 } 56 59 } … … 133 136 Util.toCharArrays(taskTags.split(",")), 134 137 Util.toCharArrays(((String) options.get(JavaCore.COMPILER_TASK_PRIORITIES)).split(",")), 138 recordLineSeparator, 135 139 JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_TASK_CASE_SENSITIVE)), 136 140 filename 137 141 ); 138 142 } else { 139 parser = new Parser(apiLevel, source, 0, source.length, filename );143 parser = new Parser(apiLevel, source, 0, source.length, filename, recordLineSeparator); 140 144 } 141 145 } else { 142 parser = new Parser(apiLevel, source, 0, source.length, filename );146 parser = new Parser(apiLevel, source, 0, source.length, filename, recordLineSeparator); 143 147 } 144 148 145 149 parser.diet = diet; 146 150 147 PublicScanner scanner = new PublicScanner(true, true, true, true, apiLevel);151 PublicScanner scanner = new PublicScanner(true, true, true, recordLineSeparator, apiLevel); 148 152 scanner.setLexerAndSource(parser, source); 149 153 … … 151 155 module.setSourceRange(0, source.length); 152 156 153 return new ParseResult(module, scanner );157 return new ParseResult(module, scanner, parser.encoder); 154 158 } 155 159 … … 166 170 ParseResult result = parse(apiLevel, sourceUnit, options, recordLineSeparator, statementsRecovery, false); 167 171 result.module.moduleName = sourceUnit.getFullyQualifiedName(); 168 result.context = resolve(result.module, javaProject, owner );172 result.context = resolve(result.module, javaProject, owner, result.encoder); 169 173 return result; 170 174 } … … 173 177 final Module module, 174 178 final IJavaProject project, 175 final WorkingCopyOwner owner) 179 final WorkingCopyOwner owner, 180 final ASTNodeEncoder encoder) 176 181 throws JavaModelException { 177 182 … … 179 184 180 185 Global global = prepareForSemantic(project, config); 181 return resolve(module, project, global, owner, config );186 return resolve(module, project, global, owner, config, encoder); 182 187 } 183 188 … … 187 192 final Global global, 188 193 final WorkingCopyOwner owner, 189 final CompilerConfiguration config) throws JavaModelException { 194 final CompilerConfiguration config, 195 final ASTNodeEncoder encoder) throws JavaModelException { 190 196 191 197 long time = System.currentTimeMillis(); … … 334 340 module, 335 341 project, 336 new DescentModuleFinder(new CancelableNameEnvironment((JavaProject) project, owner, null), config ),342 new DescentModuleFinder(new CancelableNameEnvironment((JavaProject) project, owner, null), config, encoder), 337 343 global, 338 config); 344 config, 345 encoder); 339 346 340 347 if (!RESOLVE) return context; trunk/descent.core/src/descent/internal/codeassist/CompletionEngine.java
r1137 r1141 49 49 import descent.internal.compiler.env.ICompilationUnit; 50 50 import descent.internal.compiler.parser.ASTDmdNode; 51 import descent.internal.compiler.parser.ASTNodeEncoder; 51 52 import descent.internal.compiler.parser.AggregateDeclaration; 52 53 import descent.internal.compiler.parser.AliasDeclaration; … … 232 233 Module module; 233 234 SemanticContext semanticContext; 235 ASTNodeEncoder encoder; 234 236 235 237 char[] fileName = null; … … 328 330 } 329 331 330 long time = System.currentTimeMillis();332 // long time = System.currentTimeMillis(); 331 333 332 334 this.requestor.beginReporting(); … … 351 353 352 354 parser = new CompletionParser(Util.getApiLevel(this.compilerOptions.getMap()), source, this.fileName); 355 encoder = parser.encoder; 356 353 357 parser.cursorLocation = completionPosition; 354 358 parser.nextToken(); … … 363 367 364 368 ASTDmdNode assistNode = parser.getAssistNode(); 365 366 if (assistNode != null) {367 System.out.println(assistNode.getClass());368 }369 369 370 370 if (parser.wantNames()) { … … 425 425 this.requestor.endReporting(); 426 426 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."); 429 429 } 430 430 } … … 669 669 670 670 semanticRun = true; 671 semanticContext = CompilationUnitResolver.resolve(module, this.javaProject, null );671 semanticContext = CompilationUnitResolver.resolve(module, this.javaProject, null, encoder); 672 672 } 673 673 … … 1741 1741 1742 1742 private void completeTypeClass(TypeClass type, boolean onlyStatics) { 1743 long time = System.currentTimeMillis();1744 1745 1743 // Keep a hashtable of already used signatures, in order to avoid 1746 1744 // suggesting overriden functions … … 1749 1747 // And also all type's properties 1750 1748 suggestAllTypesProperties(type); 1751 1752 time = System.currentTimeMillis() - time;1753 System.out.println("Complete type class took " + time + " milliseconds");1754 1749 } 1755 1750 trunk/descent.core/src/descent/internal/codeassist/SelectionEngine.java
r1138 r1141 11 11 import descent.core.WorkingCopyOwner; 12 12 import descent.core.compiler.CharOperation; 13 import descent.core.dom.ASTNode; 13 14 import descent.core.dom.CompilationUnitResolver; 14 15 import descent.internal.compiler.env.AccessRestriction; … … 16 17 import descent.internal.compiler.impl.CompilerOptions; 17 18 import descent.internal.compiler.parser.ASTDmdNode; 19 import descent.internal.compiler.parser.ASTNodeEncoder; 18 20 import descent.internal.compiler.parser.AliasDeclaration; 19 21 import descent.internal.compiler.parser.AlignDeclaration; … … 76 78 Module module; 77 79 SemanticContext context; 80 ASTNodeEncoder encoder; 78 81 List<IJavaElement> selectedElements; 79 82 InternalSignature internalSignature; … … 90 93 public IJavaElement[] select(ICompilationUnit sourceUnit, final int offset, 91 94 final int length) { 92 long time = System.currentTimeMillis();93 94 95 this.offset = offset; 95 96 this.length = length; … … 106 107 parser.selectionOffset = this.offset; 107 108 parser.selectionLength = this.length; 109 110 encoder = parser.encoder; 108 111 109 112 parser.nextToken(); … … 161 164 } else { 162 165 module.moduleName = sourceUnit.getFullyQualifiedName(); 163 164 long time2 = System.currentTimeMillis();165 166 module.accept(this); 166 time2 = System.currentTimeMillis() - time2;167 System.out.println("Selection visiting time: " + time2);168 167 } 169 168 return selectedElements.toArray(new IJavaElement[selectedElements … … 172 171 Util.log(e); 173 172 return NO_ELEMENTS; 174 } finally {175 time = System.currentTimeMillis() - time;176 System.out.println("Selection time: " + time);177 173 } 178 174 } … … 182 178 try { 183 179 context = CompilationUnitResolver.resolve(module, javaProject, 184 owner );180 owner, encoder); 185 181 } catch (JavaModelException e) { 186 182 Util.log(e); trunk/descent.core/src/descent/internal/codeassist/complete/CompletionOnTemplateMixin.java
r1136 r1141 1 1 package descent.internal.codeassist.complete; 2 2 3 import descent.internal.compiler.parser.ASTNodeEncoder; 3 4 import descent.internal.compiler.parser.IdentifierExp; 4 5 import descent.internal.compiler.parser.Identifiers; … … 14 15 public Scope scope; 15 16 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); 18 19 } 19 20 trunk/descent.core/src/descent/internal/codeassist/complete/CompletionParser.java
r1136 r1141 465 465 wantKeywords = false; 466 466 467 assistNode = new CompletionOnTemplateMixin(loc, id, tqual, idents, tiargs );467 assistNode = new CompletionOnTemplateMixin(loc, id, tqual, idents, tiargs, encoder); 468 468 return (CompletionOnTemplateMixin) assistNode; 469 469 } trunk/descent.core/src/descent/internal/compiler/SourceElementParser.java
r1140 r1141 18 18 import descent.core.dom.AST; 19 19 import descent.core.dom.CompilationUnitResolver; 20 import descent.core.dom.CompilationUnitResolver.ParseResult; 20 21 import descent.internal.compiler.ISourceElementRequestor.FieldInfo; 21 22 import descent.internal.compiler.ISourceElementRequestor.MethodInfo; … … 54 55 private final NaiveASTFlattener flattener; 55 56 private final Stack< Stack<AttribDeclaration> > attribDeclarationStack; 56 p rivate final ASTNodeEncoder astNodeEncoder;57 public ASTNodeEncoder encoder; 57 58 private char[] source; 58 59 … … 73 74 this.attribDeclarationStack = new Stack< Stack<AttribDeclaration> >(); 74 75 this.attribDeclarationStack.push(new Stack<AttribDeclaration>()); 75 this.astNodeEncoder = new ASTNodeEncoder();76 76 } 77 77 … … 92 92 93 93 public Module parseCompilationUnit(descent.internal.compiler.env.ICompilationUnit unit) { 94 long time = System.nanoTime();94 // long time = System.nanoTime(); 95 95 96 96 source = unit.getContents(); 97 97 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; 99 102 100 103 module.moduleName = unit.getFullyQualifiedName(); … … 104 107 requestor.exitCompilationUnit(endOf(module)); 105 108 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."); 108 111 109 112 return module; … … 595 598 596 599 info.type = getSignature(node.type); 597 info.initializationSource = astNodeEncoder.encodeInitializer(node.init);600 info.initializationSource = encoder.encodeInitializer(node.init); 598 601 599 602 requestor.enterField(info); … … 656 659 @Override 657 660 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)); 659 662 return false; 660 663 } … … 751 754 } 752 755 753 info.initializationSource = astNodeEncoder.encodeExpression(node.value);756 info.initializationSource = encoder.encodeExpression(node.value); 754 757 755 758 requestor.enterField(info); … … 783 786 @Override 784 787 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)); 786 789 return false; 787 790 } trunk/descent.core/src/descent/internal/compiler/lookup/DescentModuleFinder.java
r1099 r1141 4 4 import descent.internal.compiler.env.IModuleFinder; 5 5 import descent.internal.compiler.env.INameEnvironment; 6 import descent.internal.compiler.parser.ASTNodeEncoder; 6 7 import descent.internal.compiler.parser.Module; 7 8 import descent.internal.compiler.parser.SemanticContext; … … 13 14 private final ModuleBuilder builder; 14 15 15 public DescentModuleFinder(INameEnvironment environment, CompilerConfiguration config ) {16 public DescentModuleFinder(INameEnvironment environment, CompilerConfiguration config, ASTNodeEncoder encoder) { 16 17 this.environment = environment; 17 this.builder = new ModuleBuilder(config );18 this.builder = new ModuleBuilder(config, encoder); 18 19 } 19 20 trunk/descent.core/src/descent/internal/compiler/lookup/ModuleBuilder.java
r1140 r1141 163 163 } 164 164 165 private final ASTNodeEncoder encoder = new ASTNodeEncoder();165 private final ASTNodeEncoder encoder; 166 166 private final CompilerConfiguration config; 167 167 … … 171 171 * be part of the returned module. 172 172 */ 173 public ModuleBuilder(CompilerConfiguration config ) {173 public ModuleBuilder(CompilerConfiguration config, ASTNodeEncoder encoder) { 174 174 this.config = config; 175 this.encoder = encoder; 175 176 } 176 177 … … 194 195 } 195 196 196 long time = System.currentTimeMillis();197 198 197 State state = new State(); 199 198 … … 202 201 203 202 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 }209 203 } catch (JavaModelException e) { 210 204 e.printStackTrace(); … … 713 707 } 714 708 715 // System.out.println(imp);716 709 members.add(wrap(imp, flags)); 717 710 } … … 794 787 795 788 private TemplateParameter getTemplateParameter(String name, String signature, String defaultValue) { 796 TemplateParameter param = InternalSignature.toTemplateParameter(signature, defaultValue );789 TemplateParameter param = InternalSignature.toTemplateParameter(signature, defaultValue, encoder); 797 790 param.ident = new IdentifierExp(name.toCharArray()); 798 791 return param; … … 846 839 return null; 847 840 } 848 Type type = InternalSignature.toType(signature );841 Type type = InternalSignature.toType(signature, encoder); 849 842 return new BaseClass(type, PROT.PROTpublic); 850 843 } … … 854 847 return null; 855 848 } 856 return InternalSignature.toType(signature );849 return InternalSignature.toType(signature, encoder); 857 850 } 858 851 trunk/descent.core/src/descent/internal/compiler/parser/ASTDmdNode.java
r1137 r1141 824 824 char[] id = ("_arrayArg" + (++context.ASTDmdNode_idn)).toCharArray(); 825 825 Type t = new TypeSArray(tb.next, new IntegerExp(loc, 826 nargs - i) );826 nargs - i), context.encoder); 827 827 t = t.semantic(loc, sc, context); 828 828 VarDeclaration v = new VarDeclaration(loc, t, id, trunk/descent.core/src/descent/internal/compiler/parser/ASTNodeEncoder.java
r1098 r1141 17 17 private Parser initParser(char[] source) { 18 18 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); 20 20 } else { 21 21 parser.reset(source, 0, source.length, false, false, false, false); trunk/descent.core/src/descent/internal/compiler/parser/AliasDeclaration.java
r1137 r1141 119 119 } 120 120 return; 121 }122 123 if (sc == null) {124 System.out.println(1);125 121 } 126 122 trunk/descent.core/src/descent/internal/compiler/parser/ArrayInitializer.java
r1087 r1141 67 67 if (iz != null) { 68 68 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); 70 70 t = t.semantic(loc, sc, context); 71 71 return t; … … 138 138 ArrayInitializer ai = new ArrayInitializer(loc); 139 139 140 if (!( index.size() == value.size())) {140 if (!(size(index) == size(value))) { 141 141 throw new IllegalStateException("assert(index.dim == value.dim);"); 142 142 } 143 143 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)); 146 146 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++) { 150 150 Expression e = index.get(i); 151 151 if (e != null) { trunk/descent.core/src/descent/internal/compiler/parser/ArrayLiteralExp.java
r1118 r1141 176 176 } 177 177 // PERHAPS singleton 178 type = new TypeSArray(t0, new IntegerExp(loc, elements.size()) );178 type = new TypeSArray(t0, new IntegerExp(loc, elements.size()), context.encoder); 179 179 type = type.semantic(loc, sc, context); 180 180 return this; trunk/descent.core/src/descent/internal/compiler/parser/Constfold.java
r1087 r1141 866 866 e.type = new TypeSArray(e1.type.toBasetype(context).next, 867 867 new IntegerExp(Loc.ZERO, es1.elements.size(), 868 Type.tindex) );868 Type.tindex), context.encoder); 869 869 e.type = e.type.semantic(loc, null, context); 870 870 } else { … … 885 885 if (type.toBasetype(context).ty == Tsarray) { 886 886 e.type = new TypeSArray(e2.type, new IntegerExp(Loc.ZERO, 887 es1.elements.size(), Type.tindex) );887 es1.elements.size(), Type.tindex), context.encoder); 888 888 e.type = e.type.semantic(loc, null, context); 889 889 } else { … … 904 904 if (type.toBasetype(context).ty == Tsarray) { 905 905 e.type = new TypeSArray(e1.type, new IntegerExp(Loc.ZERO, 906 es2.elements.size(), Type.tindex) );906 es2.elements.size(), Type.tindex), context.encoder); 907 907 e.type = e.type.semantic(loc, null, context); 908 908 } else { trunk/descent.core/src/descent/internal/compiler/parser/DVCondition.java
r1128 r1141 15 15 this.level = level; 16 16 this.ident = id; 17 18 if (mod == null) {19 System.out.println(this);20 }21 17 } 22 18 trunk/descent.core/src/descent/internal/compiler/parser/Expression.java
r1118 r1141 251 251 252 252 public Expression deref() { 253 if (type == null) {254 System.out.println(1);255 }256 257 253 if (type.ty == Treference) { 258 254 Expression e; trunk/descent.core/src/descent/internal/compiler/parser/Lexer.java
r1140 r1141 159 159 public char[][] taskPriorities = null; 160 160 public boolean isTaskCaseSensitive = true; 161 162 public final ASTNodeEncoder encoder; 161 163 162 164 private boolean tokenizeComments; … … 201 203 newEntry6 = 0; 202 204 203 /* package */ Lexer(int apiLevel) {205 /* package */ Lexer(int apiLevel, ASTNodeEncoder encoder) { 204 206 this.apiLevel = apiLevel; 207 this.encoder = encoder; 205 208 } 206 209 … … 266 269 tokenizeWhiteSpace, recordLineSeparator, apiLevel, null); 267 270 } 268 271 269 272 public Lexer(char[] source, int offset, int length, 270 273 boolean tokenizeComments, boolean tokenizePragmas, 271 274 boolean tokenizeWhiteSpace, boolean recordLineSeparator, 272 275 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); 274 285 reset(source, offset, length, tokenizeComments, tokenizePragmas, 275 286 tokenizeWhiteSpace, recordLineSeparator); … … 4541 4552 stringbuffer.data.getChars(0, stringbuffer.offset(), t.ustring = new char[stringbuffer.offset()], 0); 4542 4553 4543 System.out.println(new String(t.ustring));4544 4545 4554 t.sourceLen = p - t.ptr; 4546 4555 t.sourceString = CharOperation.subarray(input, t.ptr, p); trunk/descent.core/src/descent/internal/compiler/parser/Module.java
r1118 r1141 110 110 return; 111 111 } 112 113 long time = System.currentTimeMillis();114 112 115 113 semanticstarted = 1; … … 162 160 163 161 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 }169 162 } 170 163 … … 187 180 } 188 181 semanticstarted = 2; 189 190 long time = System.currentTimeMillis();191 182 192 183 // Note that modules get their own scope, from scratch. … … 207 198 sc.pop(); 208 199 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 }214 200 } 215 201 … … 226 212 } 227 213 semanticstarted = 3; 228 229 long time = System.currentTimeMillis();230 214 231 215 // Note that modules get their own scope, from scratch. … … 246 230 sc.pop(); 247 231 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 }253 232 } 254 233 trunk/descent.core/src/descent/internal/compiler/parser/Parser.java
r1136 r1141 196 196 public Parser(int apiLevel, char[] source, int offset, 197 197 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); 199 204 } 200 205 201 206 public Parser(int apiLevel, char[] source, int offset, 202 207 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 &
