1 /* 2 * cook - file construction tool 3 * Copyright (C) 1999, 2006, 2007 Peter Miller; 4 * All rights reserved. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see 18 * <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef COOK_BUILTIN_PRIVATE_H 22 #define COOK_BUILTIN_PRIVATE_H 23 24 #include <common/main.h> 25 26 struct string_list_ty; /* existence */ 27 struct expr_position_ty; /* existence */ 28 struct opcode_context_ty; /* existence */ 29 30 typedef struct builtin_ty builtin_ty; 31 struct builtin_ty 32 { 33 char *name; 34 int (*interpret)(struct string_list_ty *, 35 const struct string_list_ty *, 36 const struct expr_position_ty *, 37 const struct opcode_context_ty *); 38 int (*script)(struct string_list_ty *, 39 const struct string_list_ty *, 40 const struct expr_position_ty *, 41 const struct opcode_context_ty *); 42 }; 43 44 int builtin_interpret(builtin_ty *, struct string_list_ty *, 45 const struct string_list_ty *, const struct expr_position_ty *, 46 const struct opcode_context_ty *); 47 int builtin_script(builtin_ty *, struct string_list_ty *, 48 const struct string_list_ty *, const struct expr_position_ty *, 49 const struct opcode_context_ty *); 50 51 #endif /* COOK_BUILTIN_PRIVATE_H */ 52