view parser.h @ 177:e57c151f351e

Get bytecode engine working well enough for naive fib
author Mike Pavone <pavone@retrodev.com>
date Sun, 12 Jun 2011 03:49:51 -0700
parents 76568becd6d6
children
line wrap: on
line source

#ifndef	PARSER_H__
#define	PARSER_H__

#include "structs.h"

worker_def * create_worker(program * prog, char * name, int num_inputs, int num_outputs, short type);
int find_worker(char * name, int * num_inputs, int * num_outputs, program * prog, worker_def ** def);
int generic_add_to_def(worker_def * parent, char * name,int display_type, int type, int num_inputs, int num_outputs, double xpos, double ypos);
int add_worker_to_def(worker_def * parent, worker_def * worker, double xpos, double ypos);
int find_object(worker_def * def, char * name, int type);
int create_find_room(worker_def * def, char * name, double xpos, double ypos);
int add_constant(worker_def * def, char * value, double xpos, double ypos);
int add_input(worker_def * def, char * name, double xpos, double ypos);
int add_input_num(worker_def * def, char * name, int input_num, double xpos, double ypos);
int add_output_num(worker_def * def, char * name, int input_num, double xpos, double ypos);
int add_output(worker_def * def, char * name, double xpos, double ypos);
int create_find_output(worker_def * def, char * name, double xpos, double ypos);
void add_wire(worker_def * def, int start, int output_num, int end, int input_num);
int process_expression(worker_def * def, int num_outputs, char ** outvars, int num_inputs, char ** inputs, char * workername, BOOL worker_expr, int block_depth, int * block_workers, int * block_output, int last_worker);
int parse_body(worker_def * def, char * code, int len, int prev_block_depth, int * prev_block_output, int * prev_block_workers);
company * create_company(program * prog, char * name, int num_workers, int num_rooms, BOOL buildable);
int add_method(company * this_comp, worker_def * def);
void parse(char * code, int len, program * prog);


#endif	//PARSER_H__