using System;
using YesNt.Interpreter.Enums;
namespace YesNt.Interpreter.Attributes;
///
/// Marks a parameterless method as a YesNt static statement handler.
/// Static statements are invoked once per line before regular statement matching begins,
/// regardless of whether the line matches any keyword. They are typically used for
/// pre-processing tasks such as transforming the current line before other statements run.
///
///
/// Methods decorated with this attribute must be instance methods on a class that inherits
/// and must have no parameters.
///
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class StaticStatementAttribute : Attribute
{
///
/// Gets or sets a value indicating whether this handler is still invoked while the interpreter
/// is in search mode (scanning for a label or function definition). Defaults to .
///
public bool ExecuteInSearchMode { get; set; }
///
/// Gets or sets the execution priority relative to other static statements.
/// Defaults to .
///
public Priority Priority { get; set; } = Priority.Normal;
}