/*
	Copyright 2010-2011 Leszek Dubiel <leszek@dubiel.pl>

	This file is part of Treep.

	Treep is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	Treep is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Treep. If not, see <http://www.gnu.org/licenses/>.
*/

extern size_t argc;		/* global */
extern char **argv;		/* global */
extern struct vlue *back;	/* global */

struct vlue *core_do(size_t, struct vlue **);
struct vlue *core_df(size_t, struct vlue **);
struct vlue *core_is(size_t, struct vlue **);

struct vlue *core_inc(size_t, struct vlue **);
struct vlue *core_dec(size_t, struct vlue **);
struct vlue *core_add(size_t, struct vlue **);
struct vlue *core_sub(size_t, struct vlue **);
struct vlue *core_mul(size_t, struct vlue **);
struct vlue *core_div(size_t, struct vlue **);
struct vlue *core_rnd(size_t, struct vlue **);
struct vlue *core_flo(size_t, struct vlue **);
struct vlue *core_cil(size_t, struct vlue **);
struct vlue *core_min(size_t, struct vlue **);
struct vlue *core_max(size_t, struct vlue **);
struct vlue *core_ops(size_t, struct vlue **);
struct vlue *core_abs(size_t, struct vlue **);

struct vlue *core_zer(size_t, struct vlue **);
struct vlue *core_pos(size_t, struct vlue **);
struct vlue *core_neg(size_t, struct vlue **);
struct vlue *core_equ(size_t, struct vlue **);
struct vlue *core_gre(size_t, struct vlue **);
struct vlue *core_les(size_t, struct vlue **);

struct vlue *core_yes(size_t, struct vlue **);
struct vlue *core_no(size_t, struct vlue **);
struct vlue *core_not(size_t, struct vlue **);
struct vlue *core_and(size_t, struct vlue **);
struct vlue *core_or(size_t, struct vlue **);

struct vlue *core_numb(size_t, struct vlue **);
struct vlue *core_name(size_t, struct vlue **);
struct vlue *core_text(size_t, struct vlue **);

struct vlue *core_same(size_t, struct vlue **);
struct vlue *core_bfor(size_t, struct vlue **);
struct vlue *core_aftr(size_t, struct vlue **);
struct vlue *core_leng(size_t, struct vlue **);
struct vlue *core_escp(size_t, struct vlue **);
struct vlue *core_unes(size_t, struct vlue **);
struct vlue *core_uppr(size_t, struct vlue **);
struct vlue *core_lowr(size_t, struct vlue **);
struct vlue *core_head(size_t, struct vlue **);
struct vlue *core_tail(size_t, struct vlue **);
struct vlue *core_join(size_t, struct vlue **);
struct vlue *core_part(size_t, struct vlue **);
struct vlue *core_indx(size_t, struct vlue **);
struct vlue *core_ptrn(size_t, struct vlue **);
struct vlue *core_subs(size_t, struct vlue **);
struct vlue *core_mtch(size_t, struct vlue **);
struct vlue *core_msta(size_t, struct vlue **);
struct vlue *core_mend(size_t, struct vlue **);

struct vlue *core_new(size_t, struct vlue **);
struct vlue *core_ref(size_t, struct vlue **);
struct vlue *core_any(size_t, struct vlue **);
struct vlue *core_qty(size_t, struct vlue **);
struct vlue *core_def(size_t, struct vlue **);
struct vlue *core_ins(size_t, struct vlue **);
struct vlue *core_del(size_t, struct vlue **);
struct vlue *core_set(size_t, struct vlue **);
struct vlue *core_get(size_t, struct vlue **);

struct vlue *core_root(size_t, struct vlue **);
struct vlue *core_frst(size_t, struct vlue **);
struct vlue *core_last(size_t, struct vlue **);
struct vlue *core_left(size_t, struct vlue **);
struct vlue *core_rght(size_t, struct vlue **);
struct vlue *core_next(size_t, struct vlue **);
struct vlue *core_prev(size_t, struct vlue **);
struct vlue *core_vlue(size_t, struct vlue **);
struct vlue *core_tree(size_t, struct vlue **);
struct vlue *core_main(size_t, struct vlue **);

struct vlue *core_read(size_t, struct vlue **);
struct vlue *core_back(size_t, struct vlue **);
struct vlue *core_wrte(size_t, struct vlue **);
struct vlue *core_dump(size_t, struct vlue **);

struct vlue *core_void(size_t, struct vlue **);
struct vlue *core_spac(size_t, struct vlue **);
struct vlue *core_tabu(size_t, struct vlue **);
struct vlue *core_line(size_t, struct vlue **);
struct vlue *core_lpar(size_t, struct vlue **);
struct vlue *core_rpar(size_t, struct vlue **);

struct vlue *core_time(size_t, struct vlue **);
struct vlue *core_repr(size_t, struct vlue **);
struct vlue *core_pars(size_t, struct vlue **);

struct vlue *core_rand(size_t, struct vlue **);
struct vlue *core_iden(size_t, struct vlue **);
struct vlue *core_vers(size_t, struct vlue **);

struct vlue *core_info(size_t, struct vlue **);
struct vlue *core_exit(size_t, struct vlue **);
