blob: 43363fc310cc9cb4926a4b909ed26366a64bb69f [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14package com.google.devtools.build.lib.syntax;
15
Klaas Boesche0ec13b92015-11-06 12:16:03 +000016
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010017/**
18 * Base class for all statements nodes in the AST.
19 */
20public abstract class Statement extends ASTNode {
21
22 /**
laurentlbaf682d12017-08-24 20:32:02 +020023 * Kind of the statement. This is similar to using instanceof, except that it's more efficient and
24 * can be used in a switch/case.
25 */
26 public enum Kind {
27 ASSIGNMENT,
28 AUGMENTED_ASSIGNMENT,
29 CONDITIONAL,
30 EXPRESSION,
31 FLOW,
32 FOR,
33 FUNCTION_DEF,
34 IF,
35 LOAD,
fzaiser95429132017-10-23 18:21:36 +020036 PASS,
laurentlbaf682d12017-08-24 20:32:02 +020037 RETURN,
38 }
39
40 /**
laurentlbaf682d12017-08-24 20:32:02 +020041 * Kind of the statement. This is similar to using instanceof, except that it's more efficient and
42 * can be used in a switch/case.
43 */
44 public abstract Kind kind();
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010045}