123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- /*
- * 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 NULL_LITERAL
- NULL_LITERAL,
- #undef IN
- IN,
- #undef OUT
- OUT,
- #undef INOUT
- INOUT,
- #undef UNIFORM
- UNIFORM,
- #undef CONST
- CONST,
- #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 PLS
- PLS,
- #undef PLSIN
- PLSIN,
- #undef PLSOUT
- PLSOUT,
- #undef STRUCT
- STRUCT,
- #undef LAYOUT
- LAYOUT,
- #undef PRECISION
- PRECISION,
- #undef ENUM
- ENUM,
- #undef CLASS
- CLASS,
- #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 COLONCOLON
- COLONCOLON,
- #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 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, int32_t offset, int32_t length)
- : fKind(kind), fOffset(offset), fLength(length) {}
- Kind fKind;
- int fOffset;
- int fLength;
- };
- class Lexer {
- public:
- void start(const char* text, int32_t length) {
- fText = text;
- fLength = length;
- fOffset = 0;
- }
- Token next();
- private:
- const char* fText;
- int32_t fLength;
- int32_t fOffset;
- };
- } // namespace
- #endif
|