view src/ploki/run.h @ 8427:1fc808cd5b1f

<b_jonas> learn can\'t is the most frequent word whose pronunciation varies between /\xc9\x91\xcb\x90/ and /\xc3\xa6/ depending on dialect. The list is: advance after answer ask aunt brass can\'t cast castle chance class command dance demand draft enhance example fast father glass graph grass half last laugh mask master nasty pass past path plant rather sample shan\'t staff task vast
author HackBot
date Thu, 09 Jun 2016 21:28:47 +0000
parents ac0403686959
children
line wrap: on
line source

#ifndef RUN_H_
#define RUN_H_

#include "config.h"
#include "op.h"
#include "text.h"
#include "val.h"
#include "stack.h"

#include <stddef.h>

struct val *execute(const struct op *, struct val *);
ATTR_NORETURN
void run(const struct text *, size_t, char **);

struct Interp {
	struct val arg;
	struct val result;

	struct {
		struct val *argv;
		size_t argc;
	} a;
	struct {
		struct val *matches;
		size_t length, size;
	} match;
	struct {
		size_t *index;
		size_t size;
	} m_start;
	struct {
		size_t *index;
		size_t size;
	} m_end;
};
extern struct Interp Interp;

typedef struct {
	struct val *target;
	struct val content;
} save_pair;

stack_declare(save_pair, extern)
extern stack(save_pair) Saved;

void stack_store(struct val *, const struct val *);
size_t depth_get(void);
void depth_restore(size_t);

#endif /* RUN_H_ */