Home | History | Annotate | Download | only in ast
      1 /*
      2  * Copyright 2016 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef SKSL_ASTEXPRESSION
      9 #define SKSL_ASTEXPRESSION
     10 
     11 #include "SkSLASTPositionNode.h"
     12 
     13 namespace SkSL {
     14 
     15 /**
     16  * Abstract supertype of all expressions.
     17  */
     18 struct ASTExpression : public ASTPositionNode {
     19     enum Kind {
     20         kFloat_Kind,
     21         kIdentifier_Kind,
     22         kInt_Kind,
     23         kBool_Kind,
     24         kPrefix_Kind,
     25         kSuffix_Kind,
     26         kBinary_Kind,
     27         kTernary_Kind
     28     };
     29 
     30     ASTExpression(int offset, Kind kind)
     31     : INHERITED(offset)
     32     , fKind(kind) {}
     33 
     34     const Kind fKind;
     35 
     36     typedef ASTPositionNode INHERITED;
     37 };
     38 
     39 } // namespace
     40 
     41 #endif
     42