ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultVisitor.java
author Andrea Lucarelli <raster@netbeans.org>
Sun, 22 Aug 2010 23:37:11 +0200
branchrelease68
changeset 16367 d2820c029d3a
parent 15779 367c7fdb5d23
permissions -rw-r--r--
Add JVM compiler support.
raster@14180
     1
/*
raster@14180
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
raster@14180
     3
 *
raster@14180
     4
 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
raster@14180
     5
 *
raster@14180
     6
 * The contents of this file are subject to the terms of either the GNU
raster@14180
     7
 * General Public License Version 2 only ("GPL") or the Common
raster@14180
     8
 * Development and Distribution License("CDDL") (collectively, the
raster@14180
     9
 * "License"). You may not use this file except in compliance with the
raster@14180
    10
 * License. You can obtain a copy of the License at
raster@14180
    11
 * http://www.netbeans.org/cddl-gplv2.html
raster@14180
    12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
raster@14180
    13
 * specific language governing permissions and limitations under the
raster@14180
    14
 * License.  When distributing the software, include this License Header
raster@14180
    15
 * Notice in each file and include the License file at
raster@14180
    16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
raster@14180
    17
 * particular file as subject to the "Classpath" exception as provided
raster@14180
    18
 * by Sun in the GPL Version 2 section of the License file that
raster@14180
    19
 * accompanied this code. If applicable, add the following below the
raster@14180
    20
 * License Header, with the fields enclosed by brackets [] replaced by
raster@14180
    21
 * your own identifying information:
raster@14180
    22
 * "Portions Copyrighted [year] [name of copyright owner]"
raster@14180
    23
 *
raster@14180
    24
 * If you wish your version of this file to be governed by only the CDDL
raster@14180
    25
 * or only the GPL Version 2, indicate your decision by adding
raster@14180
    26
 * "[Contributor] elects to include this software in this distribution
raster@14180
    27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
raster@14180
    28
 * single choice of license, a recipient has the option to distribute
raster@14180
    29
 * your version of this file under either the CDDL, the GPL Version 2 or
raster@14180
    30
 * to extend the choice of license to its licensees as provided above.
raster@14180
    31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
raster@14180
    32
 * Version 2 license, then the option applies only if the new code is
raster@14180
    33
 * made subject to such option by the copyright holder.
raster@14180
    34
 *
raster@14180
    35
 * Contributor(s):
raster@14180
    36
 *
raster@14180
    37
 * Portions Copyrighted 2008 Sun Microsystems, Inc.
raster@14180
    38
 */
raster@14180
    39
package org.netbeans.modules.ada.editor.ast.nodes.visitors;
raster@14180
    40
raster@14180
    41
import org.netbeans.modules.ada.editor.ast.ASTError;
raster@14180
    42
import org.netbeans.modules.ada.editor.ast.ASTNode;
raster@15779
    43
import org.netbeans.modules.ada.editor.ast.nodes.AbortStatement;
raster@15779
    44
import org.netbeans.modules.ada.editor.ast.nodes.ArrayAccess;
raster@15779
    45
import org.netbeans.modules.ada.editor.ast.nodes.Assignment;
raster@14523
    46
import org.netbeans.modules.ada.editor.ast.nodes.Block;
raster@15779
    47
import org.netbeans.modules.ada.editor.ast.nodes.BlockStatement;
raster@15779
    48
import org.netbeans.modules.ada.editor.ast.nodes.CaseStatement;
raster@15779
    49
import org.netbeans.modules.ada.editor.ast.nodes.CaseWhen;
raster@15779
    50
import org.netbeans.modules.ada.editor.ast.nodes.CodeStatement;
raster@14180
    51
import org.netbeans.modules.ada.editor.ast.nodes.Comment;
raster@15779
    52
import org.netbeans.modules.ada.editor.ast.nodes.DelayStatement;
raster@15779
    53
import org.netbeans.modules.ada.editor.ast.nodes.ExitStatement;
raster@14539
    54
import org.netbeans.modules.ada.editor.ast.nodes.FieldsDeclaration;
raster@14695
    55
import org.netbeans.modules.ada.editor.ast.nodes.FormalParameter;
raster@15779
    56
import org.netbeans.modules.ada.editor.ast.nodes.GotoStatement;
raster@14180
    57
import org.netbeans.modules.ada.editor.ast.nodes.Identifier;
raster@15779
    58
import org.netbeans.modules.ada.editor.ast.nodes.IfStatement;
raster@16367
    59
import org.netbeans.modules.ada.editor.ast.nodes.InfixExpression;
raster@15779
    60
import org.netbeans.modules.ada.editor.ast.nodes.LoopStatement;
raster@14695
    61
import org.netbeans.modules.ada.editor.ast.nodes.MethodDeclaration;
raster@15779
    62
import org.netbeans.modules.ada.editor.ast.nodes.NullStatement;
raster@14523
    63
import org.netbeans.modules.ada.editor.ast.nodes.PackageBody;
raster@14695
    64
import org.netbeans.modules.ada.editor.ast.nodes.PackageInstanceCreation;
raster@15779
    65
import org.netbeans.modules.ada.editor.ast.nodes.PackageRenames;
raster@14180
    66
import org.netbeans.modules.ada.editor.ast.nodes.PackageSpecification;
raster@14180
    67
import org.netbeans.modules.ada.editor.ast.nodes.PackageName;
raster@14180
    68
import org.netbeans.modules.ada.editor.ast.nodes.Program;
raster@15779
    69
import org.netbeans.modules.ada.editor.ast.nodes.QualifiedExpression;
raster@15779
    70
import org.netbeans.modules.ada.editor.ast.nodes.RaiseStatement;
raster@16367
    71
import org.netbeans.modules.ada.editor.ast.nodes.Range;
raster@14695
    72
import org.netbeans.modules.ada.editor.ast.nodes.Reference;
raster@15779
    73
import org.netbeans.modules.ada.editor.ast.nodes.ReturnStatement;
raster@15779
    74
import org.netbeans.modules.ada.editor.ast.nodes.Scalar;
raster@14539
    75
import org.netbeans.modules.ada.editor.ast.nodes.SingleFieldDeclaration;
raster@15779
    76
import org.netbeans.modules.ada.editor.ast.nodes.SubprogramBody;
raster@15779
    77
import org.netbeans.modules.ada.editor.ast.nodes.SubprogramSpecification;
raster@15779
    78
import org.netbeans.modules.ada.editor.ast.nodes.SubtypeDeclaration;
raster@15779
    79
import org.netbeans.modules.ada.editor.ast.nodes.TaskName;
raster@14695
    80
import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
raster@15779
    81
import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
raster@15779
    82
import org.netbeans.modules.ada.editor.ast.nodes.UnaryOperation;
raster@14180
    83
import org.netbeans.modules.ada.editor.ast.nodes.Use;
raster@14180
    84
import org.netbeans.modules.ada.editor.ast.nodes.Variable;
raster@14180
    85
import org.netbeans.modules.ada.editor.ast.nodes.With;
raster@14180
    86
raster@14180
    87
/**
raster@14180
    88
 * Based on org.netbeans.modules.php.editor.parser.astnodes.visitors.DefaultVisitor
raster@14180
    89
 * 
raster@14180
    90
 * @author Andrea Lucarelli
raster@14180
    91
 */
raster@14180
    92
public class DefaultVisitor implements Visitor {
raster@14180
    93
raster@14180
    94
    public void scan(ASTNode node) {
raster@14180
    95
        if (node != null) {
raster@14180
    96
            node.accept(this);
raster@14180
    97
        }
raster@14180
    98
    }
raster@14180
    99
raster@14180
   100
    public void scan(Iterable<? extends ASTNode> nodes) {
raster@14180
   101
        if (nodes != null) {
raster@14180
   102
            for (ASTNode n : nodes) {
raster@14180
   103
                scan(n);
raster@14180
   104
            }
raster@14180
   105
        }
raster@14180
   106
    }
raster@14180
   107
raster@15779
   108
    public void visit(ASTError node) {
raster@14180
   109
    }
raster@14180
   110
raster@14539
   111
    public void visit(ASTNode node) {
raster@14539
   112
    }
raster@14539
   113
raster@15779
   114
    public void visit(AbortStatement node) {
raster@15779
   115
        scan(node.getTasks());
raster@15779
   116
    }
raster@15779
   117
raster@15779
   118
    public void visit(ArrayAccess node) {
raster@15779
   119
        scan(node.getName());
raster@15779
   120
        scan(node.getIndex());
raster@15779
   121
    }
raster@15779
   122
raster@15779
   123
    public void visit(Assignment node) {
raster@15779
   124
        scan(node.getLeftHandSide());
raster@15779
   125
        scan(node.getRightHandSide());
raster@15779
   126
    }
raster@15779
   127
raster@14539
   128
    public void visit(Block node) {
raster@14539
   129
        scan(node.getStatements());
raster@14539
   130
    }
raster@14539
   131
raster@16367
   132
    public void visit(BlockStatement node) {
raster@16367
   133
        scan(node.getLabel());
raster@16367
   134
        scan(node.getDeclarations());
raster@16367
   135
        scan(node.getBody());
raster@16367
   136
    }
raster@16367
   137
raster@16367
   138
    public void visit(CaseStatement node) {
raster@16367
   139
        scan(node.getExpression());
raster@16367
   140
        scan(node.getBody());
raster@16367
   141
    }
raster@16367
   142
raster@16367
   143
    public void visit(CaseWhen node) {
raster@16367
   144
        scan(node.getValue());
raster@16367
   145
        scan(node.getActions());
raster@16367
   146
    }
raster@16367
   147
raster@15779
   148
    public void visit(CodeStatement node) {
raster@15779
   149
        scan(node.getExpression());
raster@15779
   150
    }
raster@15779
   151
raster@14180
   152
    public void visit(Comment comment) {
raster@14180
   153
    }
raster@14180
   154
raster@15779
   155
    public void visit(ExitStatement node) {
raster@15779
   156
        scan(node.getWhenCondition());
raster@15779
   157
    }
raster@15779
   158
raster@15779
   159
    public void visit(DelayStatement node) {
raster@15779
   160
        scan(node.getExpression());
raster@14180
   161
    }
raster@14180
   162
raster@14539
   163
    public void visit(FieldsDeclaration node) {
raster@14539
   164
        scan(node.getFields());
raster@14539
   165
    }
raster@14539
   166
raster@14695
   167
    public void visit(FormalParameter node) {
raster@14695
   168
        scan(node.getParameterName());
raster@14695
   169
        scan(node.getParameterType());
raster@14695
   170
        scan(node.getDefaultValue());
raster@14695
   171
    }
raster@14695
   172
raster@15779
   173
    public void visit(GotoStatement node) {
raster@15779
   174
    }
raster@15779
   175
raster@15779
   176
    public void visit(Identifier node) {
raster@15779
   177
    }
raster@15779
   178
raster@16367
   179
    public void visit(IfStatement node) {
raster@16367
   180
        scan(node.getCondition());
raster@16367
   181
        scan(node.getTrueStatement());
raster@16367
   182
        scan(node.getFalseStatement());
raster@16367
   183
    }
raster@16367
   184
raster@16367
   185
    public void visit(InfixExpression node) {
raster@16367
   186
        scan(node.getLeft());
raster@16367
   187
        scan(node.getRight());
raster@16367
   188
    }
raster@16367
   189
raster@15779
   190
    public void visit(LoopStatement node) {
raster@15779
   191
        scan(node.getCondition());
raster@15779
   192
        scan(node.getBody());
raster@14523
   193
    }
raster@14523
   194
raster@14695
   195
    public void visit(MethodDeclaration node) {
raster@15779
   196
        if (node.isSpefication()) {
raster@15779
   197
            scan(node.getSubprogramSpecification());
raster@15779
   198
        } else {
raster@15779
   199
            scan(node.getSubprogramBody());
raster@14695
   200
        }
raster@15779
   201
    }
raster@15779
   202
raster@15779
   203
    public void visit(NullStatement node) {
raster@14695
   204
    }
raster@14695
   205
raster@14523
   206
    public void visit(PackageBody node) {
raster@14523
   207
        scan(node.getName());
raster@14523
   208
        scan(node.getBody());
raster@14180
   209
    }
raster@14180
   210
raster@14695
   211
    public void visit(PackageInstanceCreation node) {
raster@14695
   212
        scan(node.getPackageName());
raster@14695
   213
        scan(node.ctorParams());
raster@14695
   214
    }
raster@14695
   215
raster@14180
   216
    public void visit(PackageName node) {
raster@15779
   217
        scan(node.getPackageName());
raster@14180
   218
    }
raster@14180
   219
raster@14539
   220
    public void visit(PackageSpecification node) {
raster@14539
   221
        scan(node.getName());
raster@14539
   222
        scan(node.getBody());
raster@14539
   223
    }
raster@14539
   224
raster@16367
   225
    public void visit(PackageRenames node) {
raster@16367
   226
        scan(node.getName());
raster@16367
   227
        scan(node.getPackageRenames());
raster@16367
   228
    }
raster@16367
   229
raster@15779
   230
    public void visit(Program node) {
raster@15779
   231
        scan(node.getStatements());
raster@14695
   232
    }
raster@14695
   233
raster@15779
   234
    public void visit(QualifiedExpression node) {
raster@15779
   235
        scan(node.getSubtypeMark());
raster@15779
   236
        scan(node.getExpression());
raster@14180
   237
    }
raster@14180
   238
raster@16367
   239
    public void visit(Range node) {
raster@16367
   240
        scan(node.getLeft());
raster@16367
   241
        scan(node.getRight());
raster@16367
   242
    }
raster@16367
   243
raster@14695
   244
    public void visit(Reference node) {
raster@14695
   245
        scan(node.getExpression());
raster@14695
   246
    }
raster@14695
   247
raster@15779
   248
    public void visit(SubprogramBody node) {
raster@15779
   249
        scan(node.getSubprogramSpecification().getSubprogramName());
raster@15779
   250
        scan(node.getSubprogramSpecification().getFormalParameters());
raster@15779
   251
        scan(node.getDeclarations());
raster@15779
   252
        scan(node.getBody());
raster@15779
   253
    }
raster@15779
   254
raster@15779
   255
    public void visit(SubprogramSpecification node) {
raster@15779
   256
        scan(node.getSubprogramName());
raster@15779
   257
        scan(node.getFormalParameters());
raster@15779
   258
    }
raster@15779
   259
raster@15779
   260
    public void visit(SubtypeDeclaration node) {
raster@15779
   261
        scan(node.getSubTypeName());
raster@15779
   262
        scan(node.getParentType());
raster@15779
   263
    }
raster@15779
   264
raster@16367
   265
    public void visit(TaskName node) {
raster@15779
   266
        scan(node.getTaskName());
raster@15779
   267
    }
raster@15779
   268
raster@15779
   269
    public void visit(TypeName node) {
raster@15779
   270
        scan(node.getTypeName());
raster@15779
   271
    }
raster@15779
   272
raster@14695
   273
    public void visit(TypeDeclaration node) {
raster@14695
   274
        scan(node.getTypeName());
raster@14695
   275
    }
raster@14695
   276
raster@15779
   277
    public void visit(RaiseStatement node) {
raster@15779
   278
    }
raster@15779
   279
raster@15779
   280
    public void visit(ReturnStatement node) {
raster@15779
   281
        scan(node.getExpression());
raster@15779
   282
    }
raster@15779
   283
raster@15779
   284
    public void visit(Scalar scalar) {
raster@15779
   285
    }
raster@15779
   286
raster@14539
   287
    public void visit(SingleFieldDeclaration node) {
raster@14539
   288
        scan(node.getName());
raster@14539
   289
        scan(node.getValue());
raster@14539
   290
    }
raster@14539
   291
raster@14539
   292
    public void visit(Use node) {
raster@15779
   293
        scan(node.getPackages());
raster@14539
   294
    }
raster@14539
   295
raster@14180
   296
    public void visit(Variable node) {
raster@14180
   297
        scan(node.getName());
raster@15779
   298
        scan(node.getVariableType());
raster@14180
   299
    }
raster@14180
   300
raster@14180
   301
    public void visit(With node) {
raster@15779
   302
        scan(node.getPackages());
raster@15779
   303
    }
raster@15779
   304
raster@15779
   305
    public void visit(UnaryOperation node) {
raster@15779
   306
        scan(node.getExpression());
raster@14180
   307
    }
raster@14180
   308
}