implemented error
This commit is contained in:
@@ -130,6 +130,7 @@ typedef enum {
|
|||||||
Built_In_Division,
|
Built_In_Division,
|
||||||
Built_In_Equal,
|
Built_In_Equal,
|
||||||
Built_In_Eval,
|
Built_In_Eval,
|
||||||
|
Built_In_Error,
|
||||||
Built_In_Exit,
|
Built_In_Exit,
|
||||||
Built_In_First,
|
Built_In_First,
|
||||||
Built_In_Greater,
|
Built_In_Greater,
|
||||||
@@ -170,6 +171,7 @@ char* Built_In_Name_to_string(Built_In_Name name) {
|
|||||||
case Built_In_Define: return "define";
|
case Built_In_Define: return "define";
|
||||||
case Built_In_Division: return "/";
|
case Built_In_Division: return "/";
|
||||||
case Built_In_Equal: return "=";
|
case Built_In_Equal: return "=";
|
||||||
|
case Built_In_Error: return "error";
|
||||||
case Built_In_Eval: return "eval";
|
case Built_In_Eval: return "eval";
|
||||||
case Built_In_Exit: return "exit";
|
case Built_In_Exit: return "exit";
|
||||||
case Built_In_First: return "first";
|
case Built_In_First: return "first";
|
||||||
@@ -291,6 +293,7 @@ Ast_Node* create_ast_node_built_in_function(char* name) {
|
|||||||
else if (string_equal(name, "and")) type = Built_In_And;
|
else if (string_equal(name, "and")) type = Built_In_And;
|
||||||
else if (string_equal(name, "breakpoint")) type = Built_In_Breakpoint;
|
else if (string_equal(name, "breakpoint")) type = Built_In_Breakpoint;
|
||||||
else if (string_equal(name, "define")) type = Built_In_Define;
|
else if (string_equal(name, "define")) type = Built_In_Define;
|
||||||
|
else if (string_equal(name, "error")) type = Built_In_Error;
|
||||||
else if (string_equal(name, "eval")) type = Built_In_Eval;
|
else if (string_equal(name, "eval")) type = Built_In_Eval;
|
||||||
else if (string_equal(name, "exit")) type = Built_In_Exit;
|
else if (string_equal(name, "exit")) type = Built_In_Exit;
|
||||||
else if (string_equal(name, "first")) type = Built_In_First;
|
else if (string_equal(name, "first")) type = Built_In_First;
|
||||||
|
|||||||
@@ -846,6 +846,12 @@ Ast_Node* eval_expr(Ast_Node* node, Environment* env) {
|
|||||||
case Built_In_List: {
|
case Built_In_List: {
|
||||||
return evaluated_arguments;
|
return evaluated_arguments;
|
||||||
}
|
}
|
||||||
|
case Built_In_Error: {
|
||||||
|
if (arguments_length != 0) {
|
||||||
|
report_error(Error_Type_Wrong_Number_Of_Arguments);
|
||||||
|
}
|
||||||
|
report_error(Error_Type_Unknown_Error);
|
||||||
|
}
|
||||||
case Built_In_Print: {
|
case Built_In_Print: {
|
||||||
if (arguments_length != 1) {
|
if (arguments_length != 1) {
|
||||||
report_error(Error_Type_Wrong_Number_Of_Arguments);
|
report_error(Error_Type_Wrong_Number_Of_Arguments);
|
||||||
|
|||||||
Reference in New Issue
Block a user