aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLLexer.h
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-09-11 13:50:14 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-11 21:45:20 +0000
commit5b5f096a038259b8d9084834f877588a0db80250 (patch)
tree1b78aa591c578a09012b1f8f8533c3fc3d9c1372 /src/sksl/SkSLLexer.h
parent9194706e8cf1ed72f07b2ed9207d81120f2135ad (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.h238
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