diff options
Diffstat (limited to 'src/sksl/ast/SkSLASTStatement.h')
-rw-r--r-- | src/sksl/ast/SkSLASTStatement.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/sksl/ast/SkSLASTStatement.h b/src/sksl/ast/SkSLASTStatement.h new file mode 100644 index 0000000000..9ddde063ea --- /dev/null +++ b/src/sksl/ast/SkSLASTStatement.h @@ -0,0 +1,46 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SKSL_ASTSTATEMENT +#define SKSL_ASTSTATEMENT + +#include <vector> +#include "SkSLASTPositionNode.h" +#include "SkSLASTExpression.h" + +namespace SkSL { + +/** + * Abstract supertype of all statements. + */ +struct ASTStatement : public ASTPositionNode { + enum Kind { + kBlock_Kind, + kVarDeclaration_Kind, + kExpression_Kind, + kIf_Kind, + kFor_Kind, + kWhile_Kind, + kDo_Kind, + kReturn_Kind, + kBreak_Kind, + kContinue_Kind, + kDiscard_Kind + }; + + ASTStatement(Position position, Kind kind) + : INHERITED(position) + , fKind(kind) {} + + Kind fKind; + + typedef ASTPositionNode INHERITED; +}; + +} // namespace + +#endif |