Ethan Nicholas | ca82a92 | 2017-09-07 09:39:50 -0400 | [diff] [blame] | 1 | FLOAT_LITERAL = [0-9]*\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?|[0-9]+([eE][+-]?[0-9]+) |
| 2 | INT_LITERAL = [0-9]+|0x[0-9a-fA-F]+ |
| 3 | TRUE_LITERAL = "true" |
| 4 | FALSE_LITERAL = "false" |
| 5 | IF = "if" |
| 6 | STATIC_IF = "@if" |
| 7 | ELSE = "else" |
| 8 | FOR = "for" |
| 9 | WHILE = "while" |
| 10 | DO = "do" |
| 11 | SWITCH = "switch" |
| 12 | STATIC_SWITCH = "@switch" |
| 13 | CASE = "case" |
| 14 | DEFAULT = "default" |
| 15 | BREAK = "break" |
| 16 | CONTINUE = "continue" |
| 17 | DISCARD = "discard" |
| 18 | RETURN = "return" |
| 19 | IN = "in" |
| 20 | OUT = "out" |
| 21 | INOUT = "inout" |
| 22 | UNIFORM = "uniform" |
| 23 | CONST = "const" |
| 24 | LOWP = "lowp" |
| 25 | MEDIUMP = "mediump" |
| 26 | HIGHP = "highp" |
| 27 | FLAT = "flat" |
| 28 | NOPERSPECTIVE = "noperspective" |
| 29 | READONLY = "readonly" |
| 30 | WRITEONLY = "writeonly" |
| 31 | COHERENT = "coherent" |
| 32 | VOLATILE = "volatile" |
| 33 | RESTRICT = "restrict" |
| 34 | BUFFER = "buffer" |
| 35 | HASSIDEEFFECTS = "sk_has_side_effects" |
| 36 | STRUCT = "struct" |
| 37 | LAYOUT = "layout" |
| 38 | PRECISION = "precision" |
Ethan Nicholas | aae47c8 | 2017-11-10 15:34:03 -0500 | [diff] [blame] | 39 | ENUM = "enum" |
| 40 | CLASS = "class" |
Ethan Nicholas | ca82a92 | 2017-09-07 09:39:50 -0400 | [diff] [blame] | 41 | IDENTIFIER = [a-zA-Z_$]([0-9]|[a-zA-Z_$])* |
| 42 | DIRECTIVE = #[a-zA-Z_$]([0-9]|[a-zA-Z_$])* |
| 43 | SECTION = @[a-zA-Z_$]([0-9]|[a-zA-Z_$])* |
| 44 | LPAREN = "(" |
| 45 | RPAREN = ")" |
| 46 | LBRACE = "{" |
| 47 | RBRACE = "}" |
| 48 | LBRACKET = "[" |
| 49 | RBRACKET = "]" |
| 50 | DOT = "." |
| 51 | COMMA = "," |
| 52 | PLUSPLUS = "++" |
| 53 | MINUSMINUS = "--" |
| 54 | PLUS = "+" |
| 55 | MINUS = "-" |
| 56 | STAR = "*" |
| 57 | SLASH = "/" |
| 58 | PERCENT = "%" |
| 59 | SHL = "<<" |
| 60 | SHR = ">>" |
| 61 | BITWISEOR = "|" |
| 62 | BITWISEXOR = "^" |
| 63 | BITWISEAND = "&" |
| 64 | BITWISENOT = "~" |
| 65 | LOGICALOR = "||" |
| 66 | LOGICALXOR = "^^" |
| 67 | LOGICALAND = "&&" |
| 68 | LOGICALNOT = "!" |
| 69 | QUESTION = "?" |
Ethan Nicholas | aae47c8 | 2017-11-10 15:34:03 -0500 | [diff] [blame] | 70 | COLONCOLON = "::" |
Ethan Nicholas | ca82a92 | 2017-09-07 09:39:50 -0400 | [diff] [blame] | 71 | COLON = ":" |
| 72 | EQ = "=" |
| 73 | EQEQ = "==" |
| 74 | NEQ = "!=" |
| 75 | GT = ">" |
| 76 | LT = "<" |
| 77 | GTEQ = ">=" |
| 78 | LTEQ = "<=" |
| 79 | PLUSEQ = "+=" |
| 80 | MINUSEQ = "-=" |
| 81 | STAREQ = "*=" |
| 82 | SLASHEQ = "/=" |
| 83 | PERCENTEQ = "%=" |
| 84 | SHLEQ = "<<=" |
| 85 | SHREQ = ">>=" |
| 86 | BITWISEOREQ = "|=" |
| 87 | BITWISEXOREQ = "^=" |
| 88 | BITWISEANDEQ = "&=" |
| 89 | LOGICALOREQ = "||=" |
| 90 | LOGICALXOREQ = "^^=" |
| 91 | LOGICALANDEQ = "&&=" |
| 92 | SEMICOLON = ";" |
| 93 | ARROW = "->" |
Ethan Nicholas | ca82a92 | 2017-09-07 09:39:50 -0400 | [diff] [blame] | 94 | WHITESPACE = \s+ |
| 95 | LINE_COMMENT = //.* |
| 96 | BLOCK_COMMENT = /\*([^*]|\*[^/])*\*/ |
| 97 | INVALID = . |