24 #define OBR_VIS(ID, STR, SYMBOL) ID,
binary_t
all binary operators
unary_t
all unary operators
compare_t
all comparison operators
obr_t * obr_param(obr_symbol_t *symbol, obr_t *type, bool mut)
obr_t * obr_expr_digit(scan_t *scan, where_t where, const mpz_t digit)
obr_t * obr_import(scan_t *scan, where_t where, char *name, char *symbol)
obr_t * obr_expr_cast(scan_t *scan, where_t where, obr_t *expr, obr_t *cast)
obr_t * obr_type_name(scan_t *scan, where_t where, char *symbol)
obr_t * obr_expr_name(scan_t *scan, where_t where, char *name)
obr_symbol_t * obr_symbol(scan_t *scan, where_t where, char *name, obr_visibility_t visibility)
obr_t * obr_stmt_block(scan_t *scan, where_t where, vector_t *stmts)
obr_t * obr_decl_type(scan_t *scan, where_t where, obr_symbol_t *symbol, obr_t *type)
obr_t * obr_expr_string(scan_t *scan, where_t where, char *text, size_t length)
vector_t * obr_expand_fields(scan_t *scan, vector_t *symbols, obr_t *type)
obr_t * obr_decl_const(scan_t *scan, where_t where, obr_symbol_t *symbol, obr_t *value)
obr_t * obr_type_qual(scan_t *scan, where_t where, char *name, char *symbol)
obr_t * obr_field(obr_symbol_t *symbol, obr_t *type)
obr_t * obr_stmt_loop(scan_t *scan, where_t where, vector_t *loop)
obr_t * obr_stmt_return(scan_t *scan, where_t where, obr_t *expr)
obr_t * obr_type_record(scan_t *scan, where_t where, vector_t *fields)
obr_t * obr_stmt_repeat(scan_t *scan, where_t where, vector_t *repeat, obr_t *until)
obr_t * obr_stmt_assign(scan_t *scan, where_t where, obr_t *dst, obr_t *src)
obr_t * obr_expr_call(scan_t *scan, where_t where, obr_t *expr, const vector_t *args)
obr_t * obr_expr_is(scan_t *scan, where_t where, obr_t *lhs, obr_t *rhs)
obr_t * obr_type_array(scan_t *scan, where_t where, const vector_t *sizes, obr_t *type)
obr_t * obr_expr_compare(scan_t *scan, where_t where, compare_t op, obr_t *lhs, obr_t *rhs)
obr_t * obr_expr_unary(scan_t *scan, where_t where, unary_t op, obr_t *expr)
obr_t * obr_expr_in(scan_t *scan, where_t where, obr_t *lhs, obr_t *rhs)
obr_t * obr_expr_field(scan_t *scan, where_t where, obr_t *expr, char *field)
vector_t * obr_expand_vars(scan_t *scan, vector_t *symbols, obr_t *type)
obr_t * obr_decl_procedure(scan_t *scan, where_t where, obr_symbol_t *symbol, obr_t *receiver, const vector_t *params, obr_t *result, vector_t *locals, vector_t *body, char *end)
obr_t * obr_stmt_while(scan_t *scan, where_t where, obr_t *cond, vector_t *then)
obr_t * obr_decl_var(obr_symbol_t *symbol, obr_t *type)
obr_t * obr_expr_binary(scan_t *scan, where_t where, binary_t op, obr_t *lhs, obr_t *rhs)
obr_t * obr_stmt_break(scan_t *scan, where_t where)
obr_t * obr_type_pointer(scan_t *scan, where_t where, obr_t *type)
vector_t * obr_expand_params(scan_t *scan, vector_t *symbols, obr_t *type, bool mut)
obr_t * obr_stmt_branch(scan_t *scan, where_t where, obr_t *cond, vector_t *then, obr_t *other)
obr_t * obr_receiver(scan_t *scan, where_t where, bool mut, char *name, char *type)
obr_t * obr_module(scan_t *scan, where_t where, char *name, char *end, const vector_t *imports, vector_t *decls, vector_t *init)
a position in a source file
obr_visibility_t visibility
obr_visibility_t visibility
a generic vector of pointers
a location inside a scanner locations are inclusive and 0-based