Index
Records
Functions
strbuf_append
void strbuf_append(struct strbuf * sb, char c)
Defined at strbuf.c#5
strbuf_append_n
void strbuf_append_n(struct strbuf * sb, const char * cs, size_t n)
Defined at strbuf.c#20
strbuf_append_str
void strbuf_append_str(struct strbuf * sb, const char * str)
Defined at strbuf.c#26
strbuf_free
void strbuf_free(struct strbuf * strbuf)
Defined at strbuf.c#32
xrealloc
void * xrealloc(void * ptr, size_t size)
Defined at mopscript.c#51
xstrdup
char * xstrdup(const char * s)
Defined at mopscript.c#63
picol_init_parser
void picol_init_parser(struct picol_parser * p, char * text)
Defined at mopscript.c#125
picol_parse_sep
int picol_parse_sep(struct picol_parser * p)
Defined at mopscript.c#135
picol_parse_eol
int picol_parse_eol(struct picol_parser * p)
Defined at mopscript.c#147
picol_parse_command
int picol_parse_command(struct picol_parser * p)
Defined at mopscript.c#163
picol_parse_var
int picol_parse_var(struct picol_parser * p)
Defined at mopscript.c#200
picol_parse_brace
int picol_parse_brace(struct picol_parser * p)
Defined at mopscript.c#225
picol_parse_string
int picol_parse_string(struct picol_parser * p)
Defined at mopscript.c#253
picol_parse_comment
int picol_parse_comment(struct picol_parser * p)
Defined at mopscript.c#310
picol_get_token
int picol_get_token(struct picol_parser * p)
Defined at mopscript.c#319
picol_init_interp
struct picol_interp * picol_init_interp()
Defined at mopscript.c#358
picol_set_result
void picol_set_result(struct picol_interp * i, char * s)
Defined at mopscript.c#370
picol_get_var
struct picol_var * picol_get_var(struct picol_interp * i, char * name)
Defined at mopscript.c#376
picol_set_var
void picol_set_var(struct picol_interp * i, char * name, char * val)
Defined at mopscript.c#391
picol_get_command
struct picol_cmd * picol_get_command(struct picol_interp * i, char * name)
Defined at mopscript.c#410
picol_register_command
void picol_register_command(struct picol_interp * i, char * name, picol_cmd_func f)
Defined at mopscript.c#421
picol_eval
int picol_eval(struct picol_interp * i, char * t)
Defined at mopscript.c#447
EVAL!
picol_expr
double picol_expr(struct picol_interp * i, char ** p, int * err, int prec)
Defined at mopscript.c#582
This is a "Pratt style parser" for expressions: precedence is encoded in a single recursive function. Basically the C call stack replaces the explicit stack here.
Precedences: 0 ||, 1 &&, 2 comparisons, 3 add/sub, 4 mul/div, 5 unary.
Note: picolExpr() is designed to be simple, not fully functional, so it does not expand $vars and [commands]. [expr $a + [foo]] works, but [expr {$a + [foo]}] will not. Also: no short circuits with && ||
picol_expr_expansion
int picol_expr_expansion(struct picol_interp * i, char * s)
Defined at mopscript.c#718
Trick: wrap 's' as "expr s" and evaluate it, so that picolEval handles $var and [cmd] substitution before expr parses pure math expression. This is used in [if] and [while] condition evaluation.
picol_arity_err
int picol_arity_err(struct picol_interp * i, char * name)
Defined at mopscript.c#729
picol_command_expr
int picol_command_expr(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#738
expr a + b * c ... (no var or command expansions! Don't quote expressions)
picol_command_set
int picol_command_set(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#773
set var ?value?
picol_command_puts
int picol_command_puts(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#797
puts ?-nonewline? string
cmd_collect_proc
static void cmd_collect_proc(void * arg)
Defined at mopscript.c#815
picol_command_exec
int picol_command_exec(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#841
picol_command_exec_bg
int picol_command_exec_bg(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#881
picol_command_quit
int picol_command_quit(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#910
picol_command_read_file
int picol_command_read_file(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#917
picol_command_mkdir
int picol_command_mkdir(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#977
picol_command_if
int picol_command_if(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1004
if cond body ?elseif cond body ...? ?else body?
picol_command_while
int picol_command_while(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1036
while cond body
picol_command_ret_codes
int picol_command_ret_codes(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1058
break and continue.
picol_drop_call_frame
void picol_drop_call_frame(struct picol_interp * i)
Defined at mopscript.c#1070
picol_free_interp
void picol_free_interp(struct picol_interp * i)
Defined at mopscript.c#1085
picol_command_call_proc
int picol_command_call_proc(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1102
The callback used for user defined procedures.
picol_command_proc
int picol_command_proc(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1160
picol_command_return
int picol_command_return(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1173
picol_register_core_commands
void picol_register_core_commands(struct picol_interp * i)
Defined at mopscript.c#1182
app_main
void app_main()
Defined at mopscript.c#1211
Enums
| enum |
--
| picol_ok | | picol_err | | picol_return | | picol_break | | picol_continue |
Defined at mopscript.c#73
| enum |
--
| pt_esc | | pt_str | | pt_cmd | | pt_var | | pt_sep | | pt_eol | | pt_eof |
Defined at mopscript.c#74