/// Dedicated to the public domain by Christopher Diggins
/// http://creativecommons.org/licenses/publicdomain/
using System;
using System.Collections.Generic;
using System.Text;
namespace Cat
{
///
/// The config class contain global switches for controlling the behaviour
/// of the interpreter and compiler. This is not actively maintained, and could
/// easily be out of sync with the rest of the code
///
class Config
{
///
/// Tells us whether this is a release build or not.
///
public static bool gbReleaseVersion = true;
///
/// Determines whether the contents of the stacks is reported
/// after each line entry into the interpreter.
///
public static bool gbOutputStack = true;
///
/// Output the amount of time elapsed after each entry in the interpreter.
///
public static bool gbOutputTimeElapsed = false;
///
/// The number of completion port threads (?) that the interpreter can spawn at one time.
///
public static int gnMaxCompletionPortThreads = 0;
///
/// Set this to false to prevent implicit redefining existing functions.
///
public static bool gbAllowRedefines = true;
///
/// Set to false to only implement point-free Cat
///
public static bool gbAllowNamedParams = true;
///
/// Outputs the result of performing a conversion from a function
/// with named arguments to a point-free form.
///
public static bool gbShowPointFreeConversion = false;
///
/// Turns on type checking and type reconstruction algorithms
///
public static bool gbTypeChecking = true;
///
/// Outputs detailed information of each of the inference mechanism works
///
public static bool gbVerboseInference = false;
///
/// When a function is defined in interpreter, shows the inferred type.
///
public static bool gbShowInferredType = true;
///
/// Outputs detailed information of each of the inference mechanism works
/// while loading a module.
///
public static bool gbVerboseInferenceOnLoad = false;
///
/// Version number
///
public static string gsVersion = "1.0 beta 5";
///
/// Displays a turtle representing the current pen when drawing.
///
public static bool gbShowTurtle = true;
///
/// Cause bin_rec to use a second thread.
///
public static bool gbMultiThreadBinRec = false;
///
/// Shows a log of each rewriting rule applied
///
public static bool gbShowRewritingRuleApplications = false;
///
/// Shows the total result of all rewritings
///
public static bool gbShowRewritingResults = false;
///
/// Show a welcome message when the interpreter starts up
///
public static bool gbShowWelcome = true;
///
/// Applies rewriting rules to improve lambda definitions
///
public static bool gbOptimizeLambdas = false;
///
/// Applies rewriting rules to all literal quotations
///
public static bool gbOptimizeQuotations = false;
///
/// run all self-tests automatically
///
public static bool gbSelfTest = true;
///
/// Folder for storing data file
///
public static string gsDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\cat";
}
}