All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalariform.lexer.Tokens.scala Maven / Gradle / Ivy

The newest version!
package scalariform.lexer

object Tokens {

  val PACKAGE = TokenType("PACKAGE")
  val STAR = TokenType("STAR")
  val WHILE = TokenType("WHILE")
  val CASE = TokenType("CASE")
  val NEW = TokenType("NEW")
  val DO = TokenType("DO")
  val EQUALS = TokenType("EQUALS")
  val SUBTYPE = TokenType("SUBTYPE")
  val EOF = TokenType("EOF")
  val SEALED = TokenType("SEALED")
  val TYPE = TokenType("TYPE")
  val LBRACKET = TokenType("LBRACKET")
  val FINAL = TokenType("FINAL")
  val RPAREN = TokenType("RPAREN")
  val IMPORT = TokenType("IMPORT")
  val STRING_LITERAL = TokenType("STRING_LITERAL")
  val FLOATING_POINT_LITERAL = TokenType("FLOATING_POINT_LITERAL")
  val EXCLAMATION = TokenType("EXCLAMATION")
  val NEWLINES = TokenType("NEWLINES")
  val THIS = TokenType("THIS")
  val RETURN = TokenType("RETURN")
  val VAL = TokenType("VAL")
  val VAR = TokenType("VAR")
  val SUPER = TokenType("SUPER")
  val RBRACE = TokenType("RBRACE")
  val LINE_COMMENT = TokenType("LINE_COMMENT")
  val PRIVATE = TokenType("PRIVATE")
  val NULL = TokenType("NULL")
  val ELSE = TokenType("ELSE")
  val CHARACTER_LITERAL = TokenType("CHARACTER_LITERAL")
  val MATCH = TokenType("MATCH")
  val TRY = TokenType("TRY")
  val WS = TokenType("WS")
  val SUPERTYPE = TokenType("SUPERTYPE")
  val INTEGER_LITERAL = TokenType("INTEGER_LITERAL")
  val OP = TokenType("OP")
  val USCORE = TokenType("USCORE")
  val LOWER = TokenType("LOWER")
  val CATCH = TokenType("CATCH")
  val FALSE = TokenType("FALSE")
  val VARID = TokenType("VARID")
  val THROW = TokenType("THROW")
  val UPPER = TokenType("UPPER")
  val PROTECTED = TokenType("PROTECTED")
  val CLASS = TokenType("CLASS")
  val DEF = TokenType("DEF")
  val LBRACE = TokenType("LBRACE")
  val FOR = TokenType("FOR")
  val LARROW = TokenType("LARROW")
  val ABSTRACT = TokenType("ABSTRACT")
  val LPAREN = TokenType("LPAREN")
  val IF = TokenType("IF")
  val AT = TokenType("AT")
  val MULTILINE_COMMENT = TokenType("MULTILINE_COMMENT")
  val SYMBOL_LITERAL = TokenType("SYMBOL_LITERAL")
  val OBJECT = TokenType("OBJECT")
  val COMMA = TokenType("COMMA")
  val YIELD = TokenType("YIELD")
  val TILDE = TokenType("TILDE")
  val PLUS = TokenType("PLUS")
  val PIPE = TokenType("PIPE")
  val VIEWBOUND = TokenType("VIEWBOUND")
  val RBRACKET = TokenType("RBRACKET")
  val DOT = TokenType("DOT")
  val WITH = TokenType("WITH")
  val IMPLICIT = TokenType("IMPLICIT")
  val LAZY = TokenType("LAZY")
  val TRAIT = TokenType("TRAIT")
  val HASH = TokenType("HASH")
  val FORSOME = TokenType("FORSOME")
  val MINUS = TokenType("MINUS")
  val TRUE = TokenType("TRUE")
  val SEMI = TokenType("SEMI")
  val COLON = TokenType("COLON")
  val OTHERID = TokenType("OTHERID")
  val REQUIRES = TokenType("REQUIRES")
  val NEWLINE = TokenType("NEWLINE")
  val FINALLY = TokenType("FINALLY")
  val OVERRIDE = TokenType("OVERRIDE")
  val ARROW = TokenType("ARROW")
  val EXTENDS = TokenType("EXTENDS")
  val XML_START_OPEN = TokenType("XML_START_OPEN", isXml = true)
  val XML_EMPTY_CLOSE = TokenType("XML_EMPTY_CLOSE", isXml = true)
  val XML_TAG_CLOSE = TokenType("XML_TAG_CLOSE", isXml = true)
  val XML_END_OPEN = TokenType("XML_END_OPEN", isXml = true)
  val XML_WHITESPACE = TokenType("XML_WHITESPACE", isXml = true)
  val XML_ATTR_EQ = TokenType("XML_ATTR_EQ", isXml = true)
  val XML_ATTR_VALUE = TokenType("XML_ATTR_VALUE", isXml = true)
  val XML_NAME = TokenType("XML_NAME", isXml = true)
  val XML_PCDATA = TokenType("XML_PCDATA", isXml = true)
  val XML_COMMENT = TokenType("XML_COMMENT", isXml = true)
  val XML_CDATA = TokenType("XML_CDATA", isXml = true)
  val XML_UNPARSED = TokenType("XML_UNPARSED", isXml = true)
  val XML_PROCESSING_INSTRUCTION = TokenType("XML_PROCESSING_INSTRUCTION", isXml = true)

  val KEYWORDS = Set(
    ABSTRACT, CASE, CATCH, CLASS, DEF,
    DO, ELSE, EXTENDS, FINAL,
    FINALLY, FOR, FORSOME, IF, IMPLICIT,
    IMPORT, LAZY, MATCH, NEW,
    OBJECT, OVERRIDE, PACKAGE, PRIVATE, PROTECTED,
    REQUIRES, RETURN, SEALED, SUPER, THIS,
    THROW, TRAIT, TRY, TYPE,
    VAL, VAR, WHILE, WITH, YIELD)

  val COMMENTS = Set(LINE_COMMENT, MULTILINE_COMMENT, XML_COMMENT)

  val IDS = Set(VARID, OTHERID, PLUS, MINUS, STAR, PIPE, TILDE, EXCLAMATION)

  val LITERALS = Set(CHARACTER_LITERAL, INTEGER_LITERAL, FLOATING_POINT_LITERAL, STRING_LITERAL, SYMBOL_LITERAL, TRUE, FALSE, NULL)

}

case class TokenType(name: String, isXml: Boolean = false) {
  override lazy val toString = name

  def isNewline = this == Tokens.NEWLINE || this == Tokens.NEWLINES

  def isKeyword = Tokens.KEYWORDS contains this

  def isComment = Tokens.COMMENTS contains this

  def isId = Tokens.IDS contains this

  def isLiteral = Tokens.LITERALS contains this
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy