aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-10-13 11:27:13 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-10-13 11:27:13 +0300
commit0485d6bfe2417a7640ef95c9de6f48e1f35003fd (patch)
treef26c8a24a4a12bf9be5038f40e6a20a4f6e9aa79 /awk.h
parent7504a8fbc86b327ad07c79c943b8fe2d253f256d (diff)
parent2a8c128ca91b42261720368e5d25431ee4362c70 (diff)
downloadegawk-0485d6bfe2417a7640ef95c9de6f48e1f35003fd.tar.gz
egawk-0485d6bfe2417a7640ef95c9de6f48e1f35003fd.tar.bz2
egawk-0485d6bfe2417a7640ef95c9de6f48e1f35003fd.zip
Merge branch 'master' into cmake
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/awk.h b/awk.h
index 527b4453..c59c4bf9 100644
--- a/awk.h
+++ b/awk.h
@@ -193,15 +193,6 @@ extern void *memset_ulong(void *dest, int val, unsigned long l);
#define memset memset_ulong
#endif
-#ifdef HAVE_LIBSIGSEGV
-#include <sigsegv.h>
-#else
-typedef void *stackoverflow_context_t;
-#define sigsegv_install_handler(catchsegv) signal(SIGSEGV, catchsig)
-/* define as 0 rather than empty so that (void) cast on it works */
-#define stackoverflow_install_handler(catchstackoverflow, extra_stack, STACK_SIZE) 0
-#endif
-
#if defined(__EMX__) || defined(__MINGW32__)
#include "nonposix.h"
#endif /* defined(__EMX__) || defined(__MINGW32__) */
@@ -297,6 +288,7 @@ typedef enum nodevals {
Node_func, /* lnode is param. list, rnode is body */
Node_ext_func, /* extension function, code_ptr is builtin code */
Node_old_ext_func, /* extension function, code_ptr is builtin code */
+ Node_builtin_func, /* built-in function, main use is for FUNCTAB */
Node_array_ref, /* array passed by ref as parameter */
Node_array_tree, /* Hashed array tree (HAT) */
@@ -676,6 +668,7 @@ typedef enum opcodeval {
Op_func,
+ Op_comment, /* for pretty printing */
Op_exec_count,
Op_breakpoint,
Op_lint,
@@ -1378,6 +1371,12 @@ extern void register_deferred_variable(const char *name, NODE *(*load_func)(void
extern int files_are_same(char *path, SRCFILE *src);
extern void valinfo(NODE *n, Func_print print_func, FILE *fp);
extern void negate_num(NODE *n);
+typedef NODE *(*builtin_func_t)(int); /* function that implements a built-in */
+extern builtin_func_t lookup_builtin(const char *name);
+extern void install_builtins(void);
+extern bool is_alpha(int c);
+extern bool is_alnum(int c);
+extern bool is_identchar(int c);
/* builtin.c */
extern double double_to_int(double d);
extern NODE *do_exp(int nargs);
@@ -1641,7 +1640,7 @@ extern void load_symbols();
extern void init_symbol_table();
extern NODE *symbol_table;
extern NODE *func_table;
-extern NODE *install_symbol(char *name, NODETYPE type);
+extern NODE *install_symbol(const char *name, NODETYPE type);
extern NODE *remove_symbol(NODE *r);
extern void destroy_symbol(NODE *r);
extern void release_symbols(NODE *symlist, int keep_globals);