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

IF_SUBPACKAGE_VERSION[IF_aribas] := "dev";


IF_CAS_DESCRIPTION[IF_aribas] :=
[ "ARIBAS",
"ARIBAS is an interactive interpreter for big integer arithmetic and multi-precision floating point arithmetic",
"http://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html" ];


IF_EXEC_NAME[IF_aribas] := "aribas";
IF_EXEC_FULL_PATH[IF_aribas] := "/home/costanti/marco/CASes/aribas/src/aribas";
IF_EXEC_OPTIONS[IF_aribas] := [];

IF_QUIT_COMMAND[IF_aribas] := "exit";
IF_DISPLAY_VERSION[IF_aribas] := "version().";

# IF_FIRST_COMMAND[IF_aribas] := "";
IF_FIRST_PROMPT[IF_aribas] := "\n\n==> ";
IF_PROMPTS[IF_aribas] :=[ "\n\n==> " ];
IF_FUNC_REMOVE_PROMPT[IF_aribas] := OUT -> OUT{[ 4 .. Length( OUT ) - Length( IF_PROMPTS[IF_aribas][1] ) ]};

IF_ASSIGN[IF_aribas] := ":=";
IF_END_COMMAND[IF_aribas] := ".";
IF_IS_THERE_PROMPT[IF_aribas] := true;
IF_FUNC_TYPE[IF_aribas] := "type_ident";
IF_TYPE_IS_QUOTED[IF_aribas] := false;

IF_STRING_ARE_QUOTED[IF_aribas] := true;
IF_FUNC_STRING[IF_aribas] := "";
IF_FUNC_DISPLAY[IF_aribas] := "";
IF_PROHIBITED_CHARS[IF_aribas] := [  ];


IF_DATA_TYPES[IF_aribas] := rec(

1  := [
"boolean",
obj -> IsBool( obj ) and ( obj = true or obj = false ),
String,
function( obj )
    if obj = "true"  then
        return true;
    elif obj = "false"  then
        return false;
    fi;
end,
],

2  := [
"integer",
IsInt,
String,
obj -> Int( ReplacedString( obj, "_", "" ) )
],

4  := [
"real",
],

10 := [
"char",
IsChar,
String,
obj -> obj[2]
],

11 := [
"string",
IsString and IsStringRep,
IF_ParseGapString,
IF_EvalString
],

12 := [
"byte_string",
],

20 := [
"array",
],

21 := [
"record",
],

22 := [
"pointer",
],

23 := [
"stack",
],

30 := [
"file",
],

40 := [
"function",
]



);

