1*c8dee2aaSAndroid Build Coastguard Worker // ***************** 2*c8dee2aaSAndroid Build Coastguard Worker // *** IMPORTANT *** 3*c8dee2aaSAndroid Build Coastguard Worker // ***************** 4*c8dee2aaSAndroid Build Coastguard Worker // 5*c8dee2aaSAndroid Build Coastguard Worker // 1. This file is only used when gn arg skia_lex is set to true. It is used to regenerate the 6*c8dee2aaSAndroid Build Coastguard Worker // SkSLLexer.h and SkSLLexer.cpp files. 7*c8dee2aaSAndroid Build Coastguard Worker // 2. Since token IDs are used to identify operators and baked into the .dehydrated.sksl files, 8*c8dee2aaSAndroid Build Coastguard Worker // after modifying this file it is likely everything will break until you update the dehydrated 9*c8dee2aaSAndroid Build Coastguard Worker // binaries. If things break after updating the lexer, set REHYDRATE in SkSLCompiler.cpp to 0, 10*c8dee2aaSAndroid Build Coastguard Worker // rebuild, and then set it back to 1. 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Worker FLOAT_LITERAL = [0-9]*\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?|[0-9]+([eE][+-]?[0-9]+) 13*c8dee2aaSAndroid Build Coastguard Worker INT_LITERAL = ([1-9][0-9]*|0[0-7]*|0[xX][0-9a-fA-F]+)[uU]? 14*c8dee2aaSAndroid Build Coastguard Worker BAD_OCTAL = (0[0-9]+)[uU]? 15*c8dee2aaSAndroid Build Coastguard Worker TRUE_LITERAL = "true" 16*c8dee2aaSAndroid Build Coastguard Worker FALSE_LITERAL = "false" 17*c8dee2aaSAndroid Build Coastguard Worker IF = "if" 18*c8dee2aaSAndroid Build Coastguard Worker ELSE = "else" 19*c8dee2aaSAndroid Build Coastguard Worker FOR = "for" 20*c8dee2aaSAndroid Build Coastguard Worker WHILE = "while" 21*c8dee2aaSAndroid Build Coastguard Worker DO = "do" 22*c8dee2aaSAndroid Build Coastguard Worker SWITCH = "switch" 23*c8dee2aaSAndroid Build Coastguard Worker CASE = "case" 24*c8dee2aaSAndroid Build Coastguard Worker DEFAULT = "default" 25*c8dee2aaSAndroid Build Coastguard Worker BREAK = "break" 26*c8dee2aaSAndroid Build Coastguard Worker CONTINUE = "continue" 27*c8dee2aaSAndroid Build Coastguard Worker DISCARD = "discard" 28*c8dee2aaSAndroid Build Coastguard Worker RETURN = "return" 29*c8dee2aaSAndroid Build Coastguard Worker IN = "in" 30*c8dee2aaSAndroid Build Coastguard Worker OUT = "out" 31*c8dee2aaSAndroid Build Coastguard Worker INOUT = "inout" 32*c8dee2aaSAndroid Build Coastguard Worker UNIFORM = "uniform" 33*c8dee2aaSAndroid Build Coastguard Worker CONST = "const" 34*c8dee2aaSAndroid Build Coastguard Worker FLAT = "flat" 35*c8dee2aaSAndroid Build Coastguard Worker NOPERSPECTIVE = "noperspective" 36*c8dee2aaSAndroid Build Coastguard Worker INLINE = "inline" 37*c8dee2aaSAndroid Build Coastguard Worker NOINLINE = "noinline" 38*c8dee2aaSAndroid Build Coastguard Worker PURE = "$pure" 39*c8dee2aaSAndroid Build Coastguard Worker READONLY = "readonly" 40*c8dee2aaSAndroid Build Coastguard Worker WRITEONLY = "writeonly" 41*c8dee2aaSAndroid Build Coastguard Worker BUFFER = "buffer" 42*c8dee2aaSAndroid Build Coastguard Worker STRUCT = "struct" 43*c8dee2aaSAndroid Build Coastguard Worker LAYOUT = "layout" 44*c8dee2aaSAndroid Build Coastguard Worker HIGHP = "highp" 45*c8dee2aaSAndroid Build Coastguard Worker MEDIUMP = "mediump" 46*c8dee2aaSAndroid Build Coastguard Worker LOWP = "lowp" 47*c8dee2aaSAndroid Build Coastguard Worker ES3 = "$es3" 48*c8dee2aaSAndroid Build Coastguard Worker EXPORT = "$export" 49*c8dee2aaSAndroid Build Coastguard Worker WORKGROUP = "workgroup" 50*c8dee2aaSAndroid Build Coastguard Worker PIXELLOCAL = "pixel_local" 51*c8dee2aaSAndroid Build Coastguard Worker RESERVED = atomic|attribute|varying|precision|invariant|asm|class|union|enum|typedef|template|this|packed|goto|volatile|public|static|extern|external|interface|long|double|fixed|unsigned|superp|input|output|hvec[234]|dvec[234]|dmat[234]|dmat[234]x[234]|fvec[234]|(iimage|image|isampler|itexture|uimage|usampler|utexture)(1D|2D|3D|1DArray|2DArray|2DRect|2DMS|2DMSArray|Buffer|Cube|CubeArray)|(sampler|texture)(1D|1DArray|2DArray|2DMS|2DMSArray|3D|Buffer|Cube|CubeArray)|sampler(1DArrayShadow|1DShadow|2DArrayShadow|2DShadow|2DRectShadow|3DRect|CubeArrayShadow|CubeShadow|Shadow)|[iu]subpassInput(MS)?|sizeof|cast|namespace|using|gl_[0-9a-zA-Z_]* 52*c8dee2aaSAndroid Build Coastguard Worker PRIVATE_IDENTIFIER = $[0-9a-zA-Z_]* 53*c8dee2aaSAndroid Build Coastguard Worker IDENTIFIER = [a-zA-Z_][0-9a-zA-Z_]* 54*c8dee2aaSAndroid Build Coastguard Worker DIRECTIVE = #[a-zA-Z_][0-9a-zA-Z_]* 55*c8dee2aaSAndroid Build Coastguard Worker LPAREN = "(" 56*c8dee2aaSAndroid Build Coastguard Worker RPAREN = ")" 57*c8dee2aaSAndroid Build Coastguard Worker LBRACE = "{" 58*c8dee2aaSAndroid Build Coastguard Worker RBRACE = "}" 59*c8dee2aaSAndroid Build Coastguard Worker LBRACKET = "[" 60*c8dee2aaSAndroid Build Coastguard Worker RBRACKET = "]" 61*c8dee2aaSAndroid Build Coastguard Worker DOT = "." 62*c8dee2aaSAndroid Build Coastguard Worker COMMA = "," 63*c8dee2aaSAndroid Build Coastguard Worker PLUSPLUS = "++" 64*c8dee2aaSAndroid Build Coastguard Worker MINUSMINUS = "--" 65*c8dee2aaSAndroid Build Coastguard Worker PLUS = "+" 66*c8dee2aaSAndroid Build Coastguard Worker MINUS = "-" 67*c8dee2aaSAndroid Build Coastguard Worker STAR = "*" 68*c8dee2aaSAndroid Build Coastguard Worker SLASH = "/" 69*c8dee2aaSAndroid Build Coastguard Worker PERCENT = "%" 70*c8dee2aaSAndroid Build Coastguard Worker SHL = "<<" 71*c8dee2aaSAndroid Build Coastguard Worker SHR = ">>" 72*c8dee2aaSAndroid Build Coastguard Worker BITWISEOR = "|" 73*c8dee2aaSAndroid Build Coastguard Worker BITWISEXOR = "^" 74*c8dee2aaSAndroid Build Coastguard Worker BITWISEAND = "&" 75*c8dee2aaSAndroid Build Coastguard Worker BITWISENOT = "~" 76*c8dee2aaSAndroid Build Coastguard Worker LOGICALOR = "||" 77*c8dee2aaSAndroid Build Coastguard Worker LOGICALXOR = "^^" 78*c8dee2aaSAndroid Build Coastguard Worker LOGICALAND = "&&" 79*c8dee2aaSAndroid Build Coastguard Worker LOGICALNOT = "!" 80*c8dee2aaSAndroid Build Coastguard Worker QUESTION = "?" 81*c8dee2aaSAndroid Build Coastguard Worker COLON = ":" 82*c8dee2aaSAndroid Build Coastguard Worker EQ = "=" 83*c8dee2aaSAndroid Build Coastguard Worker EQEQ = "==" 84*c8dee2aaSAndroid Build Coastguard Worker NEQ = "!=" 85*c8dee2aaSAndroid Build Coastguard Worker GT = ">" 86*c8dee2aaSAndroid Build Coastguard Worker LT = "<" 87*c8dee2aaSAndroid Build Coastguard Worker GTEQ = ">=" 88*c8dee2aaSAndroid Build Coastguard Worker LTEQ = "<=" 89*c8dee2aaSAndroid Build Coastguard Worker PLUSEQ = "+=" 90*c8dee2aaSAndroid Build Coastguard Worker MINUSEQ = "-=" 91*c8dee2aaSAndroid Build Coastguard Worker STAREQ = "*=" 92*c8dee2aaSAndroid Build Coastguard Worker SLASHEQ = "/=" 93*c8dee2aaSAndroid Build Coastguard Worker PERCENTEQ = "%=" 94*c8dee2aaSAndroid Build Coastguard Worker SHLEQ = "<<=" 95*c8dee2aaSAndroid Build Coastguard Worker SHREQ = ">>=" 96*c8dee2aaSAndroid Build Coastguard Worker BITWISEOREQ = "|=" 97*c8dee2aaSAndroid Build Coastguard Worker BITWISEXOREQ = "^=" 98*c8dee2aaSAndroid Build Coastguard Worker BITWISEANDEQ = "&=" 99*c8dee2aaSAndroid Build Coastguard Worker SEMICOLON = ";" 100*c8dee2aaSAndroid Build Coastguard Worker WHITESPACE = \s+ 101*c8dee2aaSAndroid Build Coastguard Worker LINE_COMMENT = //.* 102*c8dee2aaSAndroid Build Coastguard Worker BLOCK_COMMENT = /\*([^*]|\*[^/])*\*/ 103*c8dee2aaSAndroid Build Coastguard Worker INVALID = . 104