diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-09-11 13:50:14 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-11 21:45:20 +0000 |
commit | 5b5f096a038259b8d9084834f877588a0db80250 (patch) | |
tree | 1b78aa591c578a09012b1f8f8533c3fc3d9c1372 /src/sksl/SkSLLexer.h | |
parent | 9194706e8cf1ed72f07b2ed9207d81120f2135ad (diff) |
Revert "Revert "Switch to the new SkSL lexer.""
This reverts commit 358515491a0d6891e6a709688a30ad087df1beb1.
Bug: skia:
Change-Id: I013fac0ed83774d8ae7c6ee6819045cab37f5e97
Reviewed-on: https://skia-review.googlesource.com/45180
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/SkSLLexer.h')
-rw-r--r-- | src/sksl/SkSLLexer.h | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/src/sksl/SkSLLexer.h b/src/sksl/SkSLLexer.h new file mode 100644 index 0000000000..246be22b9e --- /dev/null +++ b/src/sksl/SkSLLexer.h @@ -0,0 +1,238 @@ +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +/***************************************************************************************** + ******************** This file was generated by sksllex. Do not edit. ******************* + *****************************************************************************************/ +#ifndef SKSL_Lexer +#define SKSL_Lexer +#include <cstddef> +#include <cstdint> +namespace SkSL { + +struct Token { + enum Kind { +#undef END_OF_FILE + END_OF_FILE, +#undef FLOAT_LITERAL + FLOAT_LITERAL, +#undef INT_LITERAL + INT_LITERAL, +#undef TRUE_LITERAL + TRUE_LITERAL, +#undef FALSE_LITERAL + FALSE_LITERAL, +#undef IF + IF, +#undef STATIC_IF + STATIC_IF, +#undef ELSE + ELSE, +#undef FOR + FOR, +#undef WHILE + WHILE, +#undef DO + DO, +#undef SWITCH + SWITCH, +#undef STATIC_SWITCH + STATIC_SWITCH, +#undef CASE + CASE, +#undef DEFAULT + DEFAULT, +#undef BREAK + BREAK, +#undef CONTINUE + CONTINUE, +#undef DISCARD + DISCARD, +#undef RETURN + RETURN, +#undef IN + IN, +#undef OUT + OUT, +#undef INOUT + INOUT, +#undef UNIFORM + UNIFORM, +#undef CONST + CONST, +#undef LOWP + LOWP, +#undef MEDIUMP + MEDIUMP, +#undef HIGHP + HIGHP, +#undef FLAT + FLAT, +#undef NOPERSPECTIVE + NOPERSPECTIVE, +#undef READONLY + READONLY, +#undef WRITEONLY + WRITEONLY, +#undef COHERENT + COHERENT, +#undef VOLATILE + VOLATILE, +#undef RESTRICT + RESTRICT, +#undef BUFFER + BUFFER, +#undef HASSIDEEFFECTS + HASSIDEEFFECTS, +#undef STRUCT + STRUCT, +#undef LAYOUT + LAYOUT, +#undef PRECISION + PRECISION, +#undef IDENTIFIER + IDENTIFIER, +#undef DIRECTIVE + DIRECTIVE, +#undef SECTION + SECTION, +#undef LPAREN + LPAREN, +#undef RPAREN + RPAREN, +#undef LBRACE + LBRACE, +#undef RBRACE + RBRACE, +#undef LBRACKET + LBRACKET, +#undef RBRACKET + RBRACKET, +#undef DOT + DOT, +#undef COMMA + COMMA, +#undef PLUSPLUS + PLUSPLUS, +#undef MINUSMINUS + MINUSMINUS, +#undef PLUS + PLUS, +#undef MINUS + MINUS, +#undef STAR + STAR, +#undef SLASH + SLASH, +#undef PERCENT + PERCENT, +#undef SHL + SHL, +#undef SHR + SHR, +#undef BITWISEOR + BITWISEOR, +#undef BITWISEXOR + BITWISEXOR, +#undef BITWISEAND + BITWISEAND, +#undef BITWISENOT + BITWISENOT, +#undef LOGICALOR + LOGICALOR, +#undef LOGICALXOR + LOGICALXOR, +#undef LOGICALAND + LOGICALAND, +#undef LOGICALNOT + LOGICALNOT, +#undef QUESTION + QUESTION, +#undef COLON + COLON, +#undef EQ + EQ, +#undef EQEQ + EQEQ, +#undef NEQ + NEQ, +#undef GT + GT, +#undef LT + LT, +#undef GTEQ + GTEQ, +#undef LTEQ + LTEQ, +#undef PLUSEQ + PLUSEQ, +#undef MINUSEQ + MINUSEQ, +#undef STAREQ + STAREQ, +#undef SLASHEQ + SLASHEQ, +#undef PERCENTEQ + PERCENTEQ, +#undef SHLEQ + SHLEQ, +#undef SHREQ + SHREQ, +#undef BITWISEOREQ + BITWISEOREQ, +#undef BITWISEXOREQ + BITWISEXOREQ, +#undef BITWISEANDEQ + BITWISEANDEQ, +#undef LOGICALOREQ + LOGICALOREQ, +#undef LOGICALXOREQ + LOGICALXOREQ, +#undef LOGICALANDEQ + LOGICALANDEQ, +#undef SEMICOLON + SEMICOLON, +#undef ARROW + ARROW, +#undef COLONCOLON + COLONCOLON, +#undef WHITESPACE + WHITESPACE, +#undef LINE_COMMENT + LINE_COMMENT, +#undef BLOCK_COMMENT + BLOCK_COMMENT, +#undef INVALID + INVALID, + }; + + Token() : fKind(Kind::INVALID), fOffset(-1), fLength(-1) {} + + Token(Kind kind, int offset, int length) : fKind(kind), fOffset(offset), fLength(length) {} + + Kind fKind; + int fOffset; + int fLength; +}; + +class Lexer { +public: + void start(const char* text, size_t length) { + fText = text; + fLength = length; + fOffset = 0; + } + + Token next(); + +private: + const char* fText; + int fLength; + int fOffset; +}; + +} // namespace +#endif |