static Symbol init_symlist[] = { /* built-in commands */ { "cd", CMD, CONST, 1, 1, { m_cd }, NULL }, { "clear", CMD, CONST, 1, 1, { m_clear }, NULL }, { "diary", CMD, CONST, 1, 1, { m_diary }, NULL }, #ifdef DEBUG { "disasm", CMD, CONST, 1, 1, { m_disasm }, NULL }, #endif { "echo", CMD, CONST, 1, 1, { m_echo }, NULL }, { "help", CMD, CONST, 1, 1, { m_help }, NULL }, { "history", CMD, CONST, 1, 1, { m_history }, NULL }, { "list", CMD, CONST, 1, 1, { m_list }, NULL }, { "load", CMD, CONST, 1, 1, { m_load }, NULL }, { "pwd", CMD, CONST, 1, 1, { m_pwd }, NULL }, { "quit", CMD, CONST, 1, 1, { m_quit }, NULL }, { "read", CMD, CONST, 1, 1, { m_read }, NULL }, { "save", CMD, CONST, 1, 1, { m_save }, NULL }, { "what", CMD, CONST, 1, 1, { m_what }, NULL }, { "who", CMD, CONST, 1, 1, { m_who }, NULL }, { "write", CMD, CONST, 1, 1, { m_write }, NULL }, /* built-in functions */ { "IO", FN, CONST, 1, 1, { m_IO }, NULL }, { "abs", FN, CONST, 1, 1, { m_abs }, NULL }, { "acos", FN, CONST, 1, 1, { m_acos }, NULL }, { "all", FN, CONST, 1, 1, { m_all }, NULL }, { "any", FN, CONST, 1, 1, { m_any }, NULL }, { "asin", FN, CONST, 1, 1, { m_asin }, NULL }, { "atan", FN, CONST, 1, 1, { m_atan }, NULL }, { "atan2", FN, CONST, 1, 1, { m_atan2 }, NULL }, { "ceil", FN, CONST, 1, 1, { m_ceil }, NULL }, { "cleanup", FN, CONST, 1, 1, { m_cleanup }, NULL }, { "cols", FN, CONST, 1, 1, { m_cols }, NULL }, { "cos", FN, CONST, 1, 1, { m_cos }, NULL }, { "cosh", FN, CONST, 1, 1, { m_cosh }, NULL }, { "diag", FN, CONST, 1, 1, { m_diag }, NULL }, { "eps", FN, CONST, 1, 1, { m_eps }, NULL }, { "erf", FN, CONST, 1, 1, { m_erf }, NULL }, { "erfc", FN, CONST, 1, 1, { m_erfc }, NULL }, { "exp", FN, CONST, 1, 1, { m_exp }, NULL }, { "eye", FN, CONST, 1, 1, { m_eye }, NULL }, { "fabs", FN, CONST, 1, 1, { m_abs }, NULL }, { "feval", FN, CONST, 1, 1, { m_feval }, NULL }, { "find", FN, CONST, 1, 1, { m_find }, NULL }, { "floor", FN, CONST, 1, 1, { m_floor }, NULL }, { "format", FN, CONST, 1, 1, { m_format }, NULL }, { "log", FN, CONST, 1, 1, { m_log }, NULL }, { "log10", FN, CONST, 1, 1, { m_log10 }, NULL }, { "max", FN, CONST, 1, 1, { m_max }, NULL }, { "min", FN, CONST, 1, 1, { m_min }, NULL }, { "norm", FN, CONST, 1, 1, { m_norm }, NULL }, { "null", FN, CONST, 1, 1, { m_null }, NULL }, { "ones", FN, CONST, 1, 1, { m_ones }, NULL }, { "prnum", FN, CONST, 1, 1, { m_num }, NULL }, { "prod", FN, CONST, 1, 1, { m_prod }, NULL }, { "prtol", FN, CONST, 1, 1, { m_tol }, NULL }, { "round", FN, CONST, 1, 1, { m_round }, NULL }, { "round2", FN, CONST, 1, 1, { m_round2 }, NULL }, { "rand", FN, CONST, 1, 1, { m_rand }, NULL }, { "reshape", FN, CONST, 1, 1, { m_reshape }, NULL }, { "rows", FN, CONST, 1, 1, { m_rows }, NULL }, { "sin", FN, CONST, 1, 1, { m_sin }, NULL }, { "sinh", FN, CONST, 1, 1, { m_sinh }, NULL }, { "sizeof", FN, CONST, 1, 1, { m_sizeof }, NULL }, { "sort", FN, CONST, 1, 1, { m_sort }, NULL }, { "sqrt", FN, CONST, 1, 1, { m_sqrt }, NULL }, { "sum", FN, CONST, 1, 1, { m_sum }, NULL }, { "svd", FN, CONST, 1, 1, { m_svd }, NULL }, { "tan", FN, CONST, 1, 1, { m_tan }, NULL }, { "tanh", FN, CONST, 1, 1, { m_tanh }, NULL }, { "trunc", FN, CONST, 1, 1, { m_trunc }, NULL }, { "trunc2", FN, CONST, 1, 1, { m_trunc2 }, NULL }, { "undef", FN, CONST, 1, 1, { m_undef }, NULL }, { "zeros", FN, CONST, 1, 1, { m_zeros }, NULL }, /* built-in procedures */ #ifdef DEBUG { "debug", PROC, CONST, 1, 1, { m_debug }, NULL }, #endif { "dump", PROC, CONST, 1, 1, { m_dump }, NULL }, { "exit", PROC, CONST, 1, 1, { m_exit }, NULL }, { "hplot", PROC, CONST, 1, 1, { m_hplot }, NULL }, { "plot", PROC, CONST, 1, 1, { m_plot }, NULL }, { "plot2d", PROC, CONST, 1, 1, { m_plot2d }, NULL }, { "print", PROC, CONST, 1, 1, { m_printfn }, NULL }, { "printf", PROC, CONST, 1, 1, { m_printf }, NULL }, { "qr", PROC, CONST, 1, 1, { m_qr }, NULL }, { "srand", PROC, CONST, 1, 1, { m_srand }, NULL }, /* keywords */ /* if keywords are added, adjust sname in m.y */ { "auto", AUTO, EXTERN, 1, 1, { NULL }, NULL }, { "break", BREAK, EXTERN, 1, 1, { NULL }, NULL }, { "case", CASE, EXTERN, 1, 1, { NULL }, NULL }, { "continue", CONTINUE, EXTERN, 1, 1, { NULL }, NULL }, { "default", DEFAULT, EXTERN, 1, 1, { NULL }, NULL }, { "do", DO, EXTERN, 1, 1, { NULL }, NULL }, { "double", DOUBLE, EXTERN, 1, 1, { NULL }, NULL }, { "else", ELSE, EXTERN, 1, 1, { NULL }, NULL }, { "extern", EXTERN, EXTERN, 1, 1, { NULL }, NULL }, { "for", FOR, EXTERN, 1, 1, { NULL }, NULL }, { "if", IF, EXTERN, 1, 1, { NULL }, NULL }, { "int", INT, EXTERN, 1, 1, { NULL }, NULL }, { "matrix", matrix, EXTERN, 1, 1, { NULL }, NULL }, { "return", RETURN, EXTERN, 1, 1, { NULL }, NULL }, { "static", STATIC, EXTERN, 1, 1, { NULL }, NULL }, { "string", String, EXTERN, 1, 1, { NULL }, NULL }, { "switch", SWITCH, EXTERN, 1, 1, { NULL }, NULL }, { "vector", vector, EXTERN, 1, 1, { NULL }, NULL }, { "void", VOID, EXTERN, 1, 1, { NULL }, NULL }, { "while", WHILE, EXTERN, 1, 1, { NULL }, NULL }, { NULL, 0, 0, 0, 0, { NULL }, NULL } };