Skip to content

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