view parser.h @ 75:0083b2f7b3c7

Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
author Mike Pavone <pavone@retrodev.com>
date Tue, 06 Jul 2010 07:52:59 -0400
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__