using System.Collections.Generic;
namespace YesNt.Interpreter.Runtime;
///
/// Exposes the script runtime state accessible to custom statement handlers registered
/// via .
///
public interface IStatementContext
{
/// Gets the local variable table for the current scope.
Dictionary Variables { get; }
/// Gets or sets the global variable table shared across all scopes.
Dictionary GlobalVariables { get; set; }
/// Gets or sets the text of the line currently being processed.
/// Inline-substitution handlers (e.g. %read_line) write their result here.
string CurrentLine { get; set; }
/// Gets or sets the zero-based index of the next line to execute.
/// Set this to implement control-flow jumps inside a custom statement.
int LineNumber { get; set; }
/// Terminates execution with the given message.
/// The message written to debug output.
///
/// to signal an error termination;
/// for a planned, non-error termination.
///
void Exit(string message, bool isError);
}