improved PHP parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / IAbstractSyntaxTreeVisitor.java
index c544d39..6d921c2 100644 (file)
@@ -1,91 +1,88 @@
 /*******************************************************************************
- * 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;
 
 import net.sourceforge.phpdt.core.compiler.IProblem;
-import net.sourceforge.phpdt.internal.compiler.ast.AND_AND_Expression;
-import net.sourceforge.phpdt.internal.compiler.ast.AllocationExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.AnonymousLocalTypeDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.Argument;
-import net.sourceforge.phpdt.internal.compiler.ast.ArrayAllocationExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.ArrayInitializer;
-import net.sourceforge.phpdt.internal.compiler.ast.ArrayQualifiedTypeReference;
-import net.sourceforge.phpdt.internal.compiler.ast.ArrayReference;
-import net.sourceforge.phpdt.internal.compiler.ast.ArrayTypeReference;
-import net.sourceforge.phpdt.internal.compiler.ast.AssertStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.Assignment;
-import net.sourceforge.phpdt.internal.compiler.ast.BinaryExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.Block;
-import net.sourceforge.phpdt.internal.compiler.ast.Break;
-import net.sourceforge.phpdt.internal.compiler.ast.Case;
-import net.sourceforge.phpdt.internal.compiler.ast.CastExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.CharLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.ClassLiteralAccess;
-import net.sourceforge.phpdt.internal.compiler.ast.Clinit;
-import net.sourceforge.phpdt.internal.compiler.ast.CompilationUnitDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.CompoundAssignment;
-import net.sourceforge.phpdt.internal.compiler.ast.ConditionalExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.ConstructorDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.Continue;
-import net.sourceforge.phpdt.internal.compiler.ast.DefaultCase;
-import net.sourceforge.phpdt.internal.compiler.ast.DoStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.DoubleLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.EmptyStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.EqualExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.ExplicitConstructorCall;
-import net.sourceforge.phpdt.internal.compiler.ast.ExtendedStringLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.FalseLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.FieldDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.FieldReference;
-import net.sourceforge.phpdt.internal.compiler.ast.FloatLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.ForStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.IfStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.ImportReference;
-import net.sourceforge.phpdt.internal.compiler.ast.Initializer;
-import net.sourceforge.phpdt.internal.compiler.ast.InstanceOfExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.IntLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.LabeledStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.LocalDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.LocalTypeDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.LongLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.MemberTypeDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.MessageSend;
-import net.sourceforge.phpdt.internal.compiler.ast.MethodDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.NullLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.OR_OR_Expression;
-import net.sourceforge.phpdt.internal.compiler.ast.PostfixExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.PrefixExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.QualifiedAllocationExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.QualifiedNameReference;
-import net.sourceforge.phpdt.internal.compiler.ast.QualifiedSuperReference;
-import net.sourceforge.phpdt.internal.compiler.ast.QualifiedThisReference;
-import net.sourceforge.phpdt.internal.compiler.ast.QualifiedTypeReference;
-import net.sourceforge.phpdt.internal.compiler.ast.ReturnStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.SingleNameReference;
-import net.sourceforge.phpdt.internal.compiler.ast.SingleTypeReference;
-import net.sourceforge.phpdt.internal.compiler.ast.StringLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.SuperReference;
-import net.sourceforge.phpdt.internal.compiler.ast.SwitchStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.SynchronizedStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.ThisReference;
-import net.sourceforge.phpdt.internal.compiler.ast.ThrowStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.TrueLiteral;
-import net.sourceforge.phpdt.internal.compiler.ast.TryStatement;
-import net.sourceforge.phpdt.internal.compiler.ast.TypeDeclaration;
-import net.sourceforge.phpdt.internal.compiler.ast.UnaryExpression;
-import net.sourceforge.phpdt.internal.compiler.ast.WhileStatement;
 import net.sourceforge.phpdt.internal.compiler.lookup.BlockScope;
 import net.sourceforge.phpdt.internal.compiler.lookup.ClassScope;
 import net.sourceforge.phpdt.internal.compiler.lookup.CompilationUnitScope;
 import net.sourceforge.phpdt.internal.compiler.lookup.MethodScope;
+import net.sourceforge.phpeclipse.internal.compiler.ast.AND_AND_Expression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.AllocationExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.AnonymousLocalTypeDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.Argument;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayAllocationExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayInitializer;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayQualifiedTypeReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayTypeReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.AssertStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.Assignment;
+import net.sourceforge.phpeclipse.internal.compiler.ast.BinaryExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.Block;
+import net.sourceforge.phpeclipse.internal.compiler.ast.BreakStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.CaseStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.CastExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.Clinit;
+import net.sourceforge.phpeclipse.internal.compiler.ast.CompilationUnitDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.CompoundAssignment;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ConditionalExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ConstructorDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ContinueStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.DefaultCase;
+import net.sourceforge.phpeclipse.internal.compiler.ast.DoStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.DoubleLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.EmptyStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.EqualExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ExplicitConstructorCall;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ExtendedStringLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.FalseLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.FieldDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.FieldReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.FloatLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ForStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.IfStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ImportReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.Initializer;
+import net.sourceforge.phpeclipse.internal.compiler.ast.InstanceOfExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.IntLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.LabeledStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.LocalDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.LocalTypeDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.LongLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.MemberTypeDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.MessageSend;
+import net.sourceforge.phpeclipse.internal.compiler.ast.MethodDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.NullLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.OR_OR_Expression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.PostfixExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.PrefixExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.QualifiedAllocationExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.QualifiedNameReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.QualifiedSuperReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.QualifiedThisReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.QualifiedTypeReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ReturnStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.SingleNameReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.SingleTypeReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.StringLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.SuperReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.SwitchStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ThisReference;
+import net.sourceforge.phpeclipse.internal.compiler.ast.ThrowStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.TrueLiteral;
+import net.sourceforge.phpeclipse.internal.compiler.ast.TryStatement;
+import net.sourceforge.phpeclipse.internal.compiler.ast.TypeDeclaration;
+import net.sourceforge.phpeclipse.internal.compiler.ast.UnaryExpression;
+import net.sourceforge.phpeclipse.internal.compiler.ast.WhileStatement;
 
 /**
  * A visitor interface for interating through the parse tree.
@@ -107,17 +104,17 @@ public interface IAbstractSyntaxTreeVisitor {
        void endVisit(Assignment assignment, BlockScope scope);
        void endVisit(BinaryExpression binaryExpression, BlockScope scope);
        void endVisit(Block block, BlockScope scope);
-       void endVisit(Break breakStatement, BlockScope scope);
-       void endVisit(Case caseStatement, BlockScope scope);
+       void endVisit(BreakStatement breakStatement, BlockScope scope);
+       void endVisit(CaseStatement caseStatement, BlockScope scope);
        void endVisit(CastExpression castExpression, BlockScope scope);
-       void endVisit(CharLiteral charLiteral, BlockScope scope);
-       void endVisit(ClassLiteralAccess classLiteral, BlockScope scope);
+//     void endVisit(CharLiteral charLiteral, BlockScope scope);
+//     void endVisit(ClassLiteralAccess classLiteral, BlockScope scope);
        void endVisit(Clinit clinit, ClassScope scope);
        void endVisit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope);
        void endVisit(CompoundAssignment compoundAssignment, BlockScope scope);
        void endVisit(ConditionalExpression conditionalExpression, BlockScope scope);
        void endVisit(ConstructorDeclaration constructorDeclaration, ClassScope scope);
-       void endVisit(Continue continueStatement, BlockScope scope);
+       void endVisit(ContinueStatement continueStatement, BlockScope scope);
        void endVisit(DefaultCase defaultCaseStatement, BlockScope scope);
        void endVisit(DoStatement doStatement, BlockScope scope);
        void endVisit(DoubleLiteral doubleLiteral, BlockScope scope);
@@ -159,7 +156,7 @@ public interface IAbstractSyntaxTreeVisitor {
        void endVisit(StringLiteral stringLiteral, BlockScope scope);
        void endVisit(SuperReference superReference, BlockScope scope);
        void endVisit(SwitchStatement switchStatement, BlockScope scope);
-       void endVisit(SynchronizedStatement synchronizedStatement, BlockScope scope);
+//     void endVisit(SynchronizedStatement synchronizedStatement, BlockScope scope);
        void endVisit(ThisReference thisReference, BlockScope scope);
        void endVisit(ThrowStatement throwStatement, BlockScope scope);
        void endVisit(TrueLiteral trueLiteral, BlockScope scope);
@@ -182,17 +179,17 @@ public interface IAbstractSyntaxTreeVisitor {
        boolean visit(Assignment assignment, BlockScope scope);
        boolean visit(BinaryExpression binaryExpression, BlockScope scope);
        boolean visit(Block block, BlockScope scope);
-       boolean visit(Break breakStatement, BlockScope scope);
-       boolean visit(Case caseStatement, BlockScope scope);
+       boolean visit(BreakStatement breakStatement, BlockScope scope);
+       boolean visit(CaseStatement caseStatement, BlockScope scope);
        boolean visit(CastExpression castExpression, BlockScope scope);
-       boolean visit(CharLiteral charLiteral, BlockScope scope);
-       boolean visit(ClassLiteralAccess classLiteral, BlockScope scope);
+//     boolean visit(CharLiteral charLiteral, BlockScope scope);
+//     boolean visit(ClassLiteralAccess classLiteral, BlockScope scope);
        boolean visit(Clinit clinit, ClassScope scope);
        boolean visit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope);
        boolean visit(CompoundAssignment compoundAssignment, BlockScope scope);
        boolean visit(ConditionalExpression conditionalExpression, BlockScope scope);
        boolean visit(ConstructorDeclaration constructorDeclaration, ClassScope scope);
-       boolean visit(Continue continueStatement, BlockScope scope);
+       boolean visit(ContinueStatement continueStatement, BlockScope scope);
        boolean visit(DefaultCase defaultCaseStatement, BlockScope scope);
        boolean visit(DoStatement doStatement, BlockScope scope);
        boolean visit(DoubleLiteral doubleLiteral, BlockScope scope);
@@ -234,7 +231,7 @@ public interface IAbstractSyntaxTreeVisitor {
        boolean visit(StringLiteral stringLiteral, BlockScope scope);
        boolean visit(SuperReference superReference, BlockScope scope);
        boolean visit(SwitchStatement switchStatement, BlockScope scope);
-       boolean visit(SynchronizedStatement synchronizedStatement, BlockScope scope);
+//     boolean visit(SynchronizedStatement synchronizedStatement, BlockScope scope);
        boolean visit(ThisReference thisReference, BlockScope scope);
        boolean visit(ThrowStatement throwStatement, BlockScope scope);
        boolean visit(TrueLiteral trueLiteral, BlockScope scope);