diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-09-07 15:44:01 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-11 16:17:00 +0000 |
commit | c576e93d174f3106e072a2f506bca3990b541265 (patch) | |
tree | d4a410200aa71183c95643535b440bec919f2e18 /src/sksl/ir/SkSLBinaryExpression.h | |
parent | a2bdf005f3c706065d1aa93f319f4b73932721d4 (diff) |
Switch to the new SkSL lexer.
This completely replaces flex with a new in-house lexical analyzer generator,
which we have done for performance and memory usage reasons. Flex requires us
to copy strings every time we need the text of a token, whereas this new lexer
allows us to handle strings as a (non-null-terminated) pointer and length
everywhere, eliminating most string copies.
Bug: skia:
Change-Id: I2add26efc9e20cb699520e82abcf713af3968aca
Reviewed-on: https://skia-review.googlesource.com/39780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/ir/SkSLBinaryExpression.h')
-rw-r--r-- | src/sksl/ir/SkSLBinaryExpression.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/sksl/ir/SkSLBinaryExpression.h b/src/sksl/ir/SkSLBinaryExpression.h index 789db5783b..c26994edf2 100644 --- a/src/sksl/ir/SkSLBinaryExpression.h +++ b/src/sksl/ir/SkSLBinaryExpression.h @@ -11,7 +11,7 @@ #include "SkSLExpression.h" #include "SkSLExpression.h" #include "../SkSLIRGenerator.h" -#include "../SkSLToken.h" +#include "../SkSLLexer.h" namespace SkSL { @@ -19,9 +19,9 @@ namespace SkSL { * A binary operation. */ struct BinaryExpression : public Expression { - BinaryExpression(Position position, std::unique_ptr<Expression> left, Token::Kind op, + BinaryExpression(int offset, std::unique_ptr<Expression> left, Token::Kind op, std::unique_ptr<Expression> right, const Type& type) - : INHERITED(position, kBinary_Kind, type) + : INHERITED(offset, kBinary_Kind, type) , fLeft(std::move(left)) , fOperator(op) , fRight(std::move(right)) {} @@ -34,12 +34,12 @@ struct BinaryExpression : public Expression { } bool hasSideEffects() const override { - return Token::IsAssignment(fOperator) || fLeft->hasSideEffects() || + return Compiler::IsAssignment(fOperator) || fLeft->hasSideEffects() || fRight->hasSideEffects(); } String description() const override { - return "(" + fLeft->description() + " " + Token::OperatorName(fOperator) + " " + + return "(" + fLeft->description() + " " + Compiler::OperatorName(fOperator) + " " + fRight->description() + ")"; } |