# The variables are explained in the file gap/data.g
# name := number;

IF_kash := 30;


##############################################################################
# Administrative data


IF_SUBPACKAGE_VERSION[IF_kash] := "dev";

IF_CAS_DESCRIPTION[IF_kash] :=
[ "KANT / KASH",
"Computational Algebraic Number Theory / KAnt SHell",
"http://www.math.tu-berlin.de/~kant/kash.html" ];


##############################################################################
# Low level data


IF_EXEC_NAME[IF_kash] := "kash";
#IF_EXEC_FULL_PATH[IF_kash] := "";
IF_EXEC_OPTIONS[IF_kash] := [ "-l", "/usr/local/KASH_2.4/lib/"]; # -q could be used


IF_QUIT_COMMAND[IF_kash] := ";quit;";
IF_DISPLAY_VERSION[IF_kash] := "VERSION;";


# IF_FIRST_COMMAND[IF_kash] := "";

# We will look into this.  Could  you for now just append a statement 
# Print("kash> "); to the end of the commands that you send to KASH ?

IF_FIRST_PROMPT[IF_kash] := "\nkash> ";
IF_PROMPTS[IF_kash] :=["\nkash> "];
IF_FUNC_REMOVE_PROMPT[IF_kash] := OUT ->
OUT{[ PositionSublist( OUT, "\r\n" ) + 2 .. Length( OUT ) - Length( IF_PROMPTS[IF_kash][1] ) ]};

IF_IS_THERE_PROMPT[IF_kash] := true;


##############################################################################
# High level data


IF_ASSIGN[IF_kash] := ":=";
IF_END_COMMAND[IF_kash] := ";";
IF_END_COMMAND_NO_OUTPUT[IF_kash] := ";;";
IF_FUNC_TYPE[IF_kash] := "TYPE";
IF_TYPE_IS_QUOTED[IF_kash] := true;

IF_FUNC_DISPLAY[IF_kash] := "";

IF_STRING_ARE_QUOTED[IF_kash] := true;
# IF_FUNC_STRING[IF_kash] := "String";
# IF_PROHIBITED_CHARS[IF_kash] := [  ];


##############################################################################
# data types data


# ? data types reference


IF_DATA_TYPES[IF_kash] := rec(

Small\ integer := [
"Small integer",
],

rational := [
"rational",
],

cyclotomic := [
"cyclotomic",
],

unknown := [
"unknown",
],

finite\ field\ element := [
"finite field element",
],

permutation := [
"permutation",
],

word := [
"word",
],

sparse\ word := [
"sparse word",
],

agword := [
"agword",
],

boolean := [
"boolean",
],

character := [
"character",
],

\function := [
"function",
],

internal\ function := [
"internal function",
],

list := [
"list",
],

set := [
"set",
],

t_vec := [
"t_vec",
],

finite\ field\ t_vec := [
"finite field t_vec",
],

boolean\ list := [
"boolean list",
],

string := [
"string",
],

range := [
"range",
],

record := [
"record",
],

t_mat\ \(extended\) := [
"t_mat (extended)",
],

matffe\ \(extended\) := [
"matffe (extended)",
],

list\ \(extended\) := [
"list (extended)",
],

Big\ integer := [
"Big integer",
],

KANT\ ring := [
"KANT ring",
],

KANT\ polynomial := [
"KANT polynomial",
],

KANT\ file := [
"KANT file",
],

KANT\ order := [
"KANT order",
],

KANT\ polynomial\ algebra := [
"KANT polynomial algebra",
],

KANT\ algebraic\ element := [
"KANT algebraic element",
],

KANT\ ideal := [
"KANT ideal",
],

KANT\ matrix := [
"KANT matrix",
],

KANT\ real := [
"KANT real",
],

KANT\ complex := [
"KANT complex",
],

KANT\ constant := [
"KANT constant",
],

KANT\ finite\ field := [
"KANT finite field",
],

KANT\ finite\ field\ elt := [
"KANT finite field elt",
],

KANT\ quotient\ field := [
"KANT quotient field",
],

KANT\ quotient\ field\ elt := [
"KANT quotient field elt",
],

KANT\ valuation\ ring := [
"KANT valuation ring",
],

KANT\ valuation\ ring\ elt := [
"KANT valuation ring elt",
],

KANT\ Thue\ equation := [
"KANT Thue equation",
],

KANT\ lattice := [
"KANT lattice",
],

KANT\ lattice\ elt := [
"KANT lattice elt",
],

KANT\ simplex := [
"KANT simplex",
],

KANT\ function\ field := [
"KANT function field",
],

KANT\ function\ field\ order := [
"KANT function field order",
],

KANT\ function\ field\ order\ elt := [
"KANT function field order elt",
],

KANT\ function\ field\ order\ ideal := [
"KANT function field order ideal",
],

KANT\ series\ algebra := [
"KANT series algebra",
],

KANT\ series\ algebra\ elt := [
"KANT series algebra elt",
],

KANT\ function\ field\ place := [
"KANT function field place",
],

KANT\ function\ field\ divisor := [
"KANT function field divisor",
],

KANT\ module := [
"KANT module",
],

KANT\ Pari\ real := [
"KANT Pari real",
],

KANT\ matrow := [
"KANT matrow",
],

KANT\ qp := [
"KANT qp",
],

KANT\ qp\ elt := [
"KANT qp elt",
],

cycle := [
"cycle",
],

finite\ field := [
"finite field",
],

abstract\ generator := [
"abstract generator",
],

aggroup := [
"aggroup",
],

polycyclic\ presentation := [
"polycyclic presentation",
],

ag\ exponent\ t_vec := [
"ag exponent t_vec",
],

ag\ exponent\/generator := [
"ag exponent/generator",
]



);


