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#124
picol_parse_sep
int picol_parse_sep(struct picol_parser * p)
Defined at mopscript.c#134
picol_parse_eol
int picol_parse_eol(struct picol_parser * p)
Defined at mopscript.c#146
picol_parse_command
int picol_parse_command(struct picol_parser * p)
Defined at mopscript.c#158
picol_parse_var
int picol_parse_var(struct picol_parser * p)
Defined at mopscript.c#195
picol_parse_brace
int picol_parse_brace(struct picol_parser * p)
Defined at mopscript.c#220
picol_parse_string
int picol_parse_string(struct picol_parser * p)
Defined at mopscript.c#248
picol_parse_comment
int picol_parse_comment(struct picol_parser * p)
Defined at mopscript.c#305
picol_get_token
int picol_get_token(struct picol_parser * p)
Defined at mopscript.c#314
picol_init_interp
struct picol_interp * picol_init_interp()
Defined at mopscript.c#353
picol_set_result
void picol_set_result(struct picol_interp * i, char * s)
Defined at mopscript.c#365
picol_get_var
struct picol_var * picol_get_var(struct picol_interp * i, char * name)
Defined at mopscript.c#371
picol_set_var
void picol_set_var(struct picol_interp * i, char * name, char * val)
Defined at mopscript.c#386
picol_get_command
struct picol_cmd * picol_get_command(struct picol_interp * i, char * name)
Defined at mopscript.c#405
picol_register_command
void picol_register_command(struct picol_interp * i, char * name, picol_cmd_func f)
Defined at mopscript.c#416
picol_eval
int picol_eval(struct picol_interp * i, char * t)
Defined at mopscript.c#442
EVAL!
picol_expr
double picol_expr(struct picol_interp * i, char ** p, int * err, int prec)
Defined at mopscript.c#577
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#713
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#724
picol_command_expr
int picol_command_expr(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#733
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#767
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#789
puts ?-nonewline? string
cmd_collect_proc
static void cmd_collect_proc(void * arg)
Defined at mopscript.c#806
picol_command_exec
int picol_command_exec(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#832
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#871
picol_command_quit
int picol_command_quit(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#899
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#905
picol_command_mkdir
int picol_command_mkdir(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#961
picol_command_if
int picol_command_if(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#986
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#1016
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#1037
break and continue.
picol_drop_call_frame
void picol_drop_call_frame(struct picol_interp * i)
Defined at mopscript.c#1048
picol_free_interp
void picol_free_interp(struct picol_interp * i)
Defined at mopscript.c#1063
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#1080
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#1134
picol_command_return
int picol_command_return(struct picol_interp * i, int argc, char ** argv, struct picol_cmd * cmd)
Defined at mopscript.c#1146
picol_register_core_commands
void picol_register_core_commands(struct picol_interp * i)
Defined at mopscript.c#1154
app_main
void app_main()
Defined at mopscript.c#1181
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