Damien Martin-Guillerez | f88f4d8 | 2015-09-25 13:56:55 +0000 | [diff] [blame] | 1 | // Copyright 2014 The Bazel Authors. All rights reserved. |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 2 | // |
| 3 | // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | // you may not use this file except in compliance with the License. |
| 5 | // You may obtain a copy of the License at |
| 6 | // |
| 7 | // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | // |
| 9 | // Unless required by applicable law or agreed to in writing, software |
| 10 | // distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | // See the License for the specific language governing permissions and |
| 13 | // limitations under the License. |
| 14 | |
| 15 | package com.google.devtools.build.lib.syntax; |
| 16 | |
| 17 | /** |
| 18 | * A TokenKind is an enumeration of each different kind of lexical symbol. |
| 19 | */ |
| 20 | public enum TokenKind { |
| 21 | |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 22 | ASSERT("assert"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 23 | AND("and"), |
| 24 | AS("as"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 25 | BREAK("break"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 26 | CLASS("class"), |
| 27 | COLON(":"), |
| 28 | COMMA(","), |
| 29 | COMMENT("comment"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 30 | CONTINUE("continue"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 31 | DEF("def"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 32 | DEL("del"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 33 | DOT("."), |
| 34 | ELIF("elif"), |
| 35 | ELSE("else"), |
| 36 | EOF("EOF"), |
| 37 | EQUALS("="), |
| 38 | EQUALS_EQUALS("=="), |
Laurent Le Brun | 5c8ea36 | 2015-03-18 19:03:57 +0000 | [diff] [blame] | 39 | EXCEPT("except"), |
| 40 | FINALLY("finally"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 41 | FOR("for"), |
Laurent Le Brun | 5c8ea36 | 2015-03-18 19:03:57 +0000 | [diff] [blame] | 42 | FROM("from"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 43 | GLOBAL("global"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 44 | GREATER(">"), |
| 45 | GREATER_EQUALS(">="), |
| 46 | IDENTIFIER("identifier"), |
| 47 | IF("if"), |
| 48 | ILLEGAL("illegal character"), |
Laurent Le Brun | 5c8ea36 | 2015-03-18 19:03:57 +0000 | [diff] [blame] | 49 | IMPORT("import"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 50 | IN("in"), |
| 51 | INDENT("indent"), |
| 52 | INT("integer"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 53 | IS("is"), |
| 54 | LAMBDA("lambda"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 55 | LBRACE("{"), |
| 56 | LBRACKET("["), |
| 57 | LESS("<"), |
| 58 | LESS_EQUALS("<="), |
| 59 | LPAREN("("), |
| 60 | MINUS("-"), |
| 61 | NEWLINE("newline"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 62 | NONLOCAL("nonlocal"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 63 | NOT("not"), |
| 64 | NOT_EQUALS("!="), |
Laurent Le Brun | e3f4ed7 | 2015-05-08 14:47:26 +0000 | [diff] [blame] | 65 | NOT_IN("not in"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 66 | OR("or"), |
| 67 | OUTDENT("outdent"), |
Laurent Le Brun | 0942ee9 | 2015-03-17 20:22:16 +0000 | [diff] [blame] | 68 | PASS("pass"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 69 | PERCENT("%"), |
Laurent Le Brun | 092f13b | 2015-08-24 14:50:00 +0000 | [diff] [blame] | 70 | PIPE("|"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 71 | PLUS("+"), |
| 72 | PLUS_EQUALS("+="), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 73 | RAISE("raise"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 74 | RBRACE("}"), |
| 75 | RBRACKET("]"), |
| 76 | RETURN("return"), |
| 77 | RPAREN(")"), |
| 78 | SEMI(";"), |
Laurent Le Brun | 8a52826 | 2015-04-15 14:23:35 +0000 | [diff] [blame] | 79 | SLASH("/"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 80 | STAR("*"), |
Francois-Rene Rideau | 5dcdbf9 | 2015-02-19 18:36:17 +0000 | [diff] [blame] | 81 | STAR_STAR("**"), |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 82 | STRING("string"), |
Laurent Le Brun | c9041bf | 2015-03-23 15:34:12 +0000 | [diff] [blame] | 83 | TRY("try"), |
| 84 | WHILE("while"), |
| 85 | WITH("with"), |
| 86 | YIELD("yield"); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 87 | |
| 88 | private final String prettyName; |
| 89 | |
| 90 | private TokenKind(String prettyName) { |
| 91 | this.prettyName = prettyName; |
| 92 | } |
| 93 | |
| 94 | /** |
| 95 | * Returns the pretty name for this token, for use in error messages for the user. |
| 96 | */ |
| 97 | public String getPrettyName() { |
| 98 | return prettyName; |
| 99 | } |
| 100 | } |