using System;
using System.Diagnostics;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using miew.Enumerable;
using miew.String;
namespace agree
{
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
///
/// </summary>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[Serializable]
public sealed partial class Config
{
public Config()
{
this.types = new Types(this);
this.system = new System(this);
this.grammar = new Grammar(this);
this.parser = new Parser(this);
}
public Parser parser;
public NodeLabels nodeLabels = new NodeLabels();
public System system;
public Types types = new Types();
public Grammar grammar;
public struct Types
{
public Types(Config cfg)
{
this.top_type = "⊤";// "*top*";
this.string_type = "string";
this.typs_list = "*list*";
this.typs_empty_list = "*null*";
this.typs_diff_list = "diff-list";
this.f_list_head = "first";
this.f_list_tail = "rest";
this.f_dlist_list = "list";
this.f_dlist_last = "last";
}
public String top_type;
public String string_type;
public String typs_list;
public String typs_empty_list;
public String typs_diff_list;
public String f_list_head;
public String f_list_tail;
public String f_dlist_list;
public String f_dlist_last;
};
public struct Grammar
{
Config cfg;
public Grammar(Config cfg)
: this()
{
this.cfg = cfg;
this.key_daughter_path = new FsPath("key-arg");
this.orth_path = new FsPath("stem");
this.rule_args_path = new FsPath("args");
this.typs_key_daughter = "+";
}
public List<String> start_symbols;
public String head_dtr_path;
public String typs_key_daughter;
public FsPath orth_path;
public FsPath rule_args_path;
public FsPath key_daughter_path;
};
public struct System
{
Config cfg;
public System(Config cfg)
{
this.cfg = cfg;
this.f_multithreading = true;
this.tw_debug = null;
this.submitter = new Submitter(cfg);
}
bool f_multithreading;
public bool MultiThreading
{
get { return f_multithreading; }
set
{
f_multithreading = value;
if (!f_multithreading)
cfg.parser.c_tasks_max = -1;
}
}
public TextWriter tw_debug;
public Submitter submitter;
public struct Submitter
{
Config cfg;
public Submitter(Config cfg)
{
this.cfg = cfg;
this.c = 1;
this.skipitems = 0;
this.takeitems = int.MaxValue;
}
int c;
public int TaskCount
{
get { return c; }
set { c = value; }
}
public int skipitems;
public int takeitems;
};
};
};
}