X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayTypeReference.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayTypeReference.java index 93edcdc..f7edabc 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayTypeReference.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayTypeReference.java @@ -1,13 +1,13 @@ /******************************************************************************* - * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others. + * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 + * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html + * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation - ******************************************************************************/ + *******************************************************************************/ package net.sourceforge.phpdt.internal.compiler.ast; import net.sourceforge.phpdt.internal.compiler.IAbstractSyntaxTreeVisitor; @@ -17,38 +17,53 @@ import net.sourceforge.phpdt.internal.compiler.lookup.TypeBinding; public class ArrayTypeReference extends SingleTypeReference { public int dimensions; -/** - * ArrayTypeReference constructor comment. - * @param source char[] - * @param dim int - * @param pos int - */ -public ArrayTypeReference(char[] source, int dim, long pos) { - super(source, pos); - dimensions = dim ; -} -public ArrayTypeReference(char[] source, TypeBinding tb, int dim, long pos) { - super(source, tb, pos); - dimensions = dim ;} -public int dimensions() { - return dimensions; -} -public TypeBinding getTypeBinding(Scope scope) { - if (binding != null) - return binding; - return scope.createArray(scope.getType(token), dimensions); -} -public String toStringExpression(int tab){ - /* slow speed */ - - String s = super.toStringExpression(tab) ; - if (dimensions == 1 ) return s + "[]" ; //$NON-NLS-1$ - for (int i=1 ; i <= dimensions ; i++) - s = s + "[]" ; //$NON-NLS-1$ - return s ; -} -public void traverse(IAbstractSyntaxTreeVisitor visitor, BlockScope scope) { - visitor.visit(this, scope); - visitor.endVisit(this, scope); -} + + /** + * ArrayTypeReference constructor comment. + * + * @param source + * char[] + * @param dim + * int + * @param pos + * int + */ + public ArrayTypeReference(char[] source, int dim, long pos) { + super(source, pos); + dimensions = dim; + } + + public ArrayTypeReference(char[] source, TypeBinding tb, int dim, long pos) { + super(source, tb, pos); + dimensions = dim; + } + + public int dimensions() { + return dimensions; + } + + public TypeBinding getTypeBinding(Scope scope) { + if (this.resolvedType != null) + return this.resolvedType; + if (dimensions > 255) { + scope.problemReporter().tooManyDimensions(this); + } + return scope.createArray(scope.getType(token), dimensions); + + } + + public String toStringExpression(int tab) { + + String s = super.toStringExpression(tab); + if (dimensions == 1) + return s + "[]"; //$NON-NLS-1$ + for (int i = 1; i <= dimensions; i++) + s = s + "[]"; //$NON-NLS-1$ + return s; + } + + public void traverse(IAbstractSyntaxTreeVisitor visitor, BlockScope scope) { + visitor.visit(this, scope); + visitor.endVisit(this, scope); + } }