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

org.aya.generic.Modifier Maven / Gradle / Ivy

There is a newer version: 0.34.0
Show newest version
// Copyright (c) 2020-2024 Tesla (Yinsen) Zhang.
// Use of this source code is governed by the MIT license that can be found in the LICENSE.md file.
package org.aya.generic;

import org.jetbrains.annotations.NotNull;

/**
 * Modifiers have semantics in core, and are boolean-valued.
 * If a "modifier"-like thing is only for surface or type checking,
 * it should be an annotation.
 *
 * @author kiva
 */
public enum Modifier {
  /**
   * Denotes that a function's invocations are never reduced.
   * Useful in debugging, when you really don't wanna see the full NF.
   */
  Opaque("opaque"),
  /**
   * Denotes that a function's invocations are eagerly reduced.
   */
  Inline("inline"),
  /**
   * That this function uses overlapping and order-insensitive
   * pattern matching semantics.
   */
  Overlap("overlap"),
  /**
   * That the function does not need termination checking,
   * and will not be reduced.
   */
  Partial("partial"),
  ;

  public final @NotNull String keyword;

  Modifier(@NotNull String keyword) { this.keyword = keyword; }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy