// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package fuchsia.developer.plugin.fidl.psi;

import com.intellij.psi.tree.IElementType;
import fuchsia.developer.plugin.fidl.Language;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;

public class TokenType extends IElementType {
  public TokenType(@NotNull @NonNls String debugName) {
    super(debugName, Language.INSTANCE);
  }

  @Override
  public String toString() {
    return "TokenType." + super.toString();
  }
}
