Asterisk - The Open Source Telephony Project
18.5.0
|
Compile symbolic Asterisk Extension Logic into Asterisk extensions, version 2. More...
#include "asterisk.h"
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <regex.h>
#include <sys/stat.h>
#include "asterisk/pbx.h"
#include "asterisk/config.h"
#include "asterisk/module.h"
#include "asterisk/logger.h"
#include "asterisk/cli.h"
#include "asterisk/app.h"
#include "asterisk/channel.h"
#include "asterisk/callerid.h"
#include "asterisk/pval.h"
#include "asterisk/ael_structs.h"
#include "asterisk/utils.h"
Go to the source code of this file.
Macros | |
#define | ASTMM_LIBC ASTMM_REDIRECT |
#define | BUF_SIZE 2000 |
Variables | |
static int | control_statement_count |
static int | count_labels |
static pval * | current_context |
static pval * | current_db |
static pval * | current_extension |
static char * | days [] |
static int | errs |
static char | expr_output [2096] |
static int | in_abstract_context |
static int | label_count |
static pval * | last_matched_label |
static const char * | match_context |
static const char * | match_exten |
static const char * | match_label |
static char * | months [] |
static int | notes |
static char * | registrar = "pbx_ael" |
static int | return_on_context_match |
static int | warns |
Compile symbolic Asterisk Extension Logic into Asterisk extensions, version 2.
Definition in file pval.c.
#define ASTMM_LIBC ASTMM_REDIRECT |
#define BUF_SIZE 2000 |
Definition at line 61 of file pval.c.
Referenced by gen_prios().
void add_extensions | ( | struct ael_extension * | exten | ) |
Definition at line 4213 of file pval.c.
References AEL_APPCALL, AEL_CONTROL1, AEL_FOR_CONTROL, AEL_IF_CONTROL, AEL_IFTIME_CONTROL, AEL_LABEL, AEL_RAND_CONTROL, AEL_RETURN, ael_priority::app, ael_priority::appargs, ast_add_extension2(), ast_free_ptr(), ast_log, AST_MAX_EXTENSION, ael_extension::cidmatch, ael_extension::context, pval::else_statements, ael_priority::exten, ael_priority::goto_false, ael_priority::goto_true, ael_extension::hints, last, LOG_WARNING, ael_extension::name, ael_priority::next, ael_extension::next_exten, NULL, ael_priority::origin, pbx_substitute_variables_helper(), ael_extension::plist, PRIORITY_HINT, ael_priority::priority_num, PV_IFTIME, PV_SWITCH, registrar, pval::str, strdup, pval::type, ael_priority::type, pval::u1, and pval::u3.
Referenced by ast_compile_ael2().
void ael2_print | ( | char * | fname, |
pval * | tree | ||
) |
Definition at line 382 of file pval.c.
References ast_log, item, LOG_ERROR, print_pval_list(), traverse_pval_item_template(), and traverse_pval_template().
Referenced by main().
void ael2_semantic_check | ( | pval * | item, |
int * | arg_errs, | ||
int * | arg_warns, | ||
int * | arg_notes | ||
) |
Definition at line 2885 of file pval.c.
References ast_alloca, ast_config_AST_VAR_DIR, check_context_names(), check_pval(), errs, item, notes, and warns.
Referenced by pbx_load_module().
int ast_compile_ael2 | ( | struct ast_context ** | local_contexts, |
struct ast_hashtab * | local_table, | ||
struct pval * | root | ||
) |
Definition at line 4413 of file pval.c.
References add_extensions(), AEL_APPCALL, AEL_LABEL, ael_priority::app, ael_priority::appargs, pval::arglist, ARRAY_LEN, ast_context_add_ignorepat2(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_find_or_create(), ast_custom_function_find(), ast_get_context_name(), attach_exten(), buf, buf2, c, ael_extension::cidmatch, ael_extension::context, context, context_used(), control_statement_count, destroy_extensions(), ael_priority::exten, exten, fix_gotos_in_extensions(), gen_prios(), pval::hints, ael_extension::hints, linkprio(), pval::list, pval::macro_statements, ael_extension::name, new_exten(), new_prio(), pval::next, ael_extension::next_exten, NULL, ael_priority::origin, pbx_builtin_setvar(), ael_extension::plist_last, priority, ael_priority::priority_num, PV_CONTEXT, PV_ESWITCHES, PV_EXTENSION, PV_GLOBALS, PV_IGNOREPAT, PV_INCLUDES, PV_MACRO, PV_SWITCHES, pval::regexten, ael_extension::regexten, registrar, remove_spaces_before_equals(), ael_extension::return_needed, set_priorities(), pval::statements, pval::str, strdup, pval::type, ael_priority::type, pval::u1, pval::u2, pval::u3, pval::u4, and pval::val.
Referenced by pbx_load_module().
|
static |
Definition at line 4318 of file pval.c.
References ael_extension::next_exten.
Referenced by ast_compile_ael2().
|
static |
Definition at line 2329 of file pval.c.
References ast_log, pval::endline, pval::filename, pval::list, LOG_WARNING, pval::next, PV_CONTEXT, PV_INCLUDES, pval::startline, pval::str, pval::type, pval::u1, pval::u2, and warns.
Referenced by check_pval_item().
Definition at line 2130 of file pval.c.
References ast_log, pval::endline, pval::filename, LOG_WARNING, pval::next, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
|
static |
Definition at line 1038 of file pval.c.
References ast_log, pval::dad, pval::endline, errs, pval::filename, item, LOG_ERROR, PV_CASE, PV_CONTEXT, PV_DEFAULT, PV_FOR, PV_MACRO, PV_PATTERN, PV_WHILE, pval::startline, and pval::type.
Referenced by check_pval_item().
|
static |
Definition at line 2310 of file pval.c.
References pval::abstract, ast_log, pval::endline, pval::filename, LOG_WARNING, pval::next, PV_CONTEXT, PV_MACRO, pval::startline, pval::str, pval::type, pval::u1, pval::u3, and warns.
Referenced by ael2_semantic_check().
|
static |
Definition at line 1058 of file pval.c.
References ast_log, pval::dad, pval::endline, errs, pval::filename, item, LOG_ERROR, PV_CONTEXT, PV_FOR, PV_MACRO, PV_WHILE, pval::startline, and pval::type.
Referenced by check_pval_item().
|
static |
Definition at line 937 of file pval.c.
References ast_log, ast_strdupa, ast_strlen_zero, c, pval::endline, pval::filename, LOG_WARNING, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
|
static |
get_dow: Get day of week
Definition at line 898 of file pval.c.
References ast_log, ast_strdupa, ast_strlen_zero, c, days, pval::endline, pval::filename, LOG_WARNING, NULL, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
|
static |
Definition at line 801 of file pval.c.
References ast_log, pval::endline, pval::filename, LOG_WARNING, pval::startline, and warns.
Referenced by check_pval_item().
|
static |
Definition at line 1225 of file pval.c.
References ast_log, E_FINDLABEL, E_MATCH, pval::endline, errs, pval::filename, find_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), first, get_contxt(), get_extension_or_contxt(), in_context(), in_macro(), pval::list, localized_pbx_load_module(), LOG_ERROR, LOG_WARNING, pval::next, NULL, pbx_find_extension(), PV_INCLUDES, pbx_find_info::stacklen, pval::startline, pval::statements, pbx_find_info::status, STATUS_SUCCESS, pval::str, pval::type, pval::u1, pval::u2, and warns.
Referenced by check_pval_item(), and find_pval_goto_item().
|
static |
Definition at line 811 of file pval.c.
References ast_log, pval::endline, pval::filename, find_context(), pval::list, LOG_WARNING, pval::next, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
|
static |
Definition at line 1106 of file pval.c.
References ast_log, current_context, current_extension, pval::dad, pval::endline, errs, pval::filename, find_first_label_in_current_context(), item, LOG_ERROR, PV_EXTENSION, PV_MACRO, pval::startline, pval::str, pval::type, and pval::u1.
Referenced by check_pval_item().
|
static |
Definition at line 650 of file pval.c.
References ast_log, calloc, pval::endcol, pval::endline, pval::filename, LOG_WARNING, pval::macro_statements, pval::next, NULL, PV_RETURN, pval::startcol, pval::startline, pval::str, strdup, pval::type, pval::u1, and pval::u3.
Referenced by check_pval_item().
|
static |
Definition at line 1000 of file pval.c.
References ast_log, ast_strdupa, ast_strlen_zero, c, pval::endline, pval::filename, LOG_WARNING, months, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
Definition at line 2865 of file pval.c.
References check_pval_item(), and pval::next.
Referenced by ael2_semantic_check(), and check_pval_item().
Definition at line 2357 of file pval.c.
References pval::abstract, app, pval::arglist, ast_expr(), ast_expr_clear_extra_error_info(), ast_expr_register_extra_error_info(), ast_log, check_abstract_reference(), check_app_args(), check_break(), check_continue(), check_day(), check_dow(), check_expr2_input(), check_goto(), check_includes(), check_label(), check_macro_returns(), check_month(), check_pval(), check_switch_expr(), check_timerange(), E_MATCH, pval::else_statements, pval::endcol, pval::endline, errs, expr_output, pval::filename, find_context(), find_macro(), find_pval_gotos(), pval::for_inc, pval::for_init, pval::for_statements, pval::for_test, free(), in_abstract_context, item, pval::list, localized_pbx_load_module(), LOG_ERROR, LOG_WARNING, pval::macro_statements, pval::next, argapp::next, NULL, pbx_find_extension(), PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTEXT, PV_CONTINUE, PV_DEFAULT, PV_ESWITCHES, PV_EXTENSION, PV_FOR, PV_GLOBALS, PV_GOTO, PV_IF, PV_IFTIME, PV_IGNOREPAT, PV_INCLUDES, PV_LABEL, PV_LOCALVARDEC, PV_MACRO, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_SWITCHES, PV_VARDEC, PV_WHILE, PV_WORD, pbx_find_info::stacklen, pval::startcol, pval::startline, pval::statements, pbx_find_info::status, STATUS_SUCCESS, pval::str, pval::type, pval::u1, pval::u2, pval::u3, pval::u4, pval::val, and warns.
Referenced by check_pval().
Definition at line 2184 of file pval.c.
References a, ast_log, ast_strdupa, c, calloc, pval::endcol, pval::endline, pval::filename, item, LOG_WARNING, pval::next, argapp::next, PV_APPLICATION_CALL, PV_CASE, PV_DEFAULT, PV_PATTERN, PV_STATEMENTBLOCK, pval::startcol, pval::startline, pval::statements, pval::str, strdup, pval::type, pval::u1, pval::u2, and warns.
Referenced by check_pval_item().
|
static |
Definition at line 830 of file pval.c.
References ast_log, ast_strdupa, ast_strlen_zero, pval::endline, pval::filename, LOG_WARNING, pval::startline, pval::str, pval::u1, and warns.
Referenced by check_pval_item().
int contains_switch | ( | pval * | item | ) |
Definition at line 3329 of file pval.c.
References find_switch_item(), and pval::next.
Referenced by find_switch_item(), gen_match_to_pattern(), and gen_prios().
|
static |
Definition at line 4398 of file pval.c.
References ast_context_ignorepats_count(), ast_context_includes_count(), ast_context_switches_count(), ast_walk_context_extensions(), ael_extension::context, exten, ael_extension::next_exten, and NULL.
Referenced by ast_compile_ael2().
void destroy_extensions | ( | struct ael_extension * | exten | ) |
Definition at line 2978 of file pval.c.
References ael_priority::app, ael_priority::appargs, free(), ael_priority::goto_false, ael_priority::goto_true, ael_extension::hints, ael_extension::loop_break, ael_extension::loop_continue, ael_extension::name, ael_priority::next, ael_extension::next_exten, ael_priority::origin, ael_extension::plist, and ael_extension::plist_last.
Referenced by ast_compile_ael2().
void destroy_pval | ( | pval * | item | ) |
Definition at line 4940 of file pval.c.
References destroy_pval_item(), name, and pval::next.
Referenced by destroy_pval_item(), pbx_load_module(), pvalIfTimeSetCondition(), pvalIncludesAddIncludeWithTimeConstraints(), yydestruct(), and yyparse().
void destroy_pval_item | ( | pval * | item | ) |
Definition at line 4672 of file pval.c.
References pval::arglist, ast_log, destroy_pval(), pval::else_statements, pval::filename, pval::for_inc, pval::for_init, pval::for_statements, pval::for_test, free(), pval::hints, pval::list, LOG_WARNING, pval::macro_statements, NULL, PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTEXT, PV_CONTINUE, PV_DEFAULT, PV_ESWITCHES, PV_EXTENSION, PV_FOR, PV_GLOBALS, PV_GOTO, PV_IF, PV_IFTIME, PV_IGNOREPAT, PV_INCLUDES, PV_LABEL, PV_LOCALVARDEC, PV_MACRO, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_SWITCHES, PV_VARDEC, PV_WHILE, PV_WORD, pval::statements, pval::str, pval::type, pval::u1, pval::u2, pval::u3, pval::u4, and pval::val.
Referenced by destroy_pval().
|
static |
Definition at line 694 of file pval.c.
References ast_log, pval::endline, pval::filename, LOG_ERROR, LOG_WARNING, and pval::startline.
Referenced by match_pval_item().
struct pval* find_context | ( | char * | name | ) |
Definition at line 1953 of file pval.c.
References count_labels, match_context, match_exten, match_label, match_pval(), name, and return_on_context_match.
Referenced by check_goto(), check_includes(), check_pval_item(), find_first_label_in_current_context(), find_label_in_current_context(), find_pval_goto_item(), and get_goto_target().
Definition at line 1839 of file pval.c.
References count_labels, find_context(), pval::list, match_context, match_exten, match_label, match_pval(), pval::next, PV_INCLUDES, return_on_context_match, pval::statements, pval::str, pval::type, pval::u1, and pval::u2.
Referenced by check_label().
Definition at line 1879 of file pval.c.
References count_labels, exten, find_context(), pval::list, match_context, match_exten, match_label, match_pval(), pval::next, PV_INCLUDES, return_on_context_match, pval::statements, pval::str, pval::type, pval::u1, and pval::u2.
Referenced by check_goto(), and get_goto_target().
|
static |
Definition at line 1929 of file pval.c.
References context, count_labels, exten, match_context, match_exten, match_label, match_pval(), and return_on_context_match.
Referenced by check_goto(), and get_goto_target().
Definition at line 1918 of file pval.c.
References count_labels, match_context, match_exten, match_label, match_pval(), and return_on_context_match.
Referenced by check_goto(), and get_goto_target().
struct pval* find_macro | ( | char * | name | ) |
Definition at line 1943 of file pval.c.
References count_labels, match_context, match_exten, match_label, match_pval(), name, and return_on_context_match.
Referenced by check_pval_item().
|
static |
Definition at line 1379 of file pval.c.
References ast_log, check_goto(), pval::else_statements, find_context(), find_pval_gotos(), pval::for_statements, pval::list, LOG_ERROR, pval::macro_statements, pval::next, PV_CASE, PV_CATCH, PV_CONTEXT, PV_DEFAULT, PV_EXTENSION, PV_FOR, PV_GOTO, PV_IF, PV_IFTIME, PV_INCLUDES, PV_MACRO, PV_PATTERN, PV_RANDOM, PV_STATEMENTBLOCK, PV_SWITCH, PV_WHILE, pval::statements, pval::str, pval::type, pval::u1, pval::u2, pval::u3, and pval::u4.
Referenced by find_pval_gotos().
|
static |
Definition at line 1550 of file pval.c.
References find_pval_goto_item(), and pval::next.
Referenced by check_pval_item(), and find_pval_goto_item().
int find_switch_item | ( | pval * | item | ) |
Definition at line 3090 of file pval.c.
References contains_switch(), pval::else_statements, pval::for_statements, pval::list, pval::macro_statements, PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTEXT, PV_CONTINUE, PV_DEFAULT, PV_ESWITCHES, PV_EXTENSION, PV_FOR, PV_GLOBALS, PV_GOTO, PV_IF, PV_IFTIME, PV_IGNOREPAT, PV_INCLUDES, PV_LABEL, PV_LOCALVARDEC, PV_MACRO, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_SWITCHES, PV_VARDEC, PV_WHILE, PV_WORD, pval::statements, pval::type, pval::u1, pval::u2, pval::u3, and pval::u4.
Referenced by contains_switch(), and gen_match_to_pattern().
|
static |
Definition at line 4355 of file pval.c.
References ael_priority::appargs, buf1, pval::compiled_label, free(), pval::goto_target, pval::goto_target_in_case, pval::list, ael_extension::name, pval::next, ael_priority::next, ael_extension::next_exten, ael_priority::origin, ael_extension::plist, PV_GOTO, pval::str, strdup, pval::type, pval::u1, pval::u2, and pval::u3.
Referenced by ast_compile_ael2().
|
static |
Definition at line 3061 of file pval.c.
References contains_switch(), find_switch_item(), and result.
Referenced by gen_prios().
|
static |
Definition at line 3341 of file pval.c.
References AEL_APPCALL, AEL_CONTROL1, AEL_FOR_CONTROL, AEL_IF_CONTROL, AEL_IFTIME_CONTROL, AEL_LABEL, AEL_RETURN, ael_priority::app, ael_priority::appargs, pval::arglist, buf, buf1, buf2, BUF_SIZE, ael_extension::checked_switch, pval::compiled_label, contains_switch(), ael_extension::context, control_statement_count, pval::else_statements, ael_priority::exten, exten, first, pval::for_inc, pval::for_init, pval::for_statements, pval::for_test, free(), gen_match_to_pattern(), get_goto_target(), ael_priority::goto_false, pval::goto_target, pval::goto_target_in_case, ael_priority::goto_true, ael_extension::has_switch, ael_extension::is_switch, label_inside_case(), linkexten(), linkprio(), pval::list, ael_extension::loop_break, ael_extension::loop_continue, malloc(), ael_extension::name, new_exten(), new_prio(), pval::next, NULL, ael_priority::origin, PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTINUE, PV_DEFAULT, PV_FOR, PV_GOTO, PV_IF, PV_IFTIME, PV_LABEL, PV_LOCALVARDEC, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_VARDEC, PV_WHILE, RAII_VAR, remove_spaces_before_equals(), ael_extension::return_needed, pval::statements, pval::str, strdup, pval::type, ael_priority::type, pval::u1, pval::u2, pval::u3, pval::u4, and pval::val.
Referenced by ast_compile_ael2().
Definition at line 4345 of file pval.c.
References pval::dad, PV_CONTEXT, PV_MACRO, and pval::type.
Referenced by check_goto(), and get_goto_target().
Definition at line 4335 of file pval.c.
References pval::dad, PV_CONTEXT, PV_EXTENSION, PV_MACRO, and pval::type.
Referenced by check_goto(), and get_goto_target().
Definition at line 1153 of file pval.c.
References find_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), first, get_contxt(), get_extension_or_contxt(), pval::list, pval::next, NULL, PV_INCLUDES, pval::statements, pval::str, pval::type, pval::u1, and pval::u2.
Referenced by gen_prios().
Definition at line 1090 of file pval.c.
References pval::dad, item, PV_CONTEXT, PV_MACRO, and pval::type.
Referenced by check_goto().
Definition at line 1077 of file pval.c.
References pval::dad, item, PV_MACRO, and pval::type.
Referenced by check_goto().
int is_empty | ( | char * | arg | ) |
Definition at line 1981 of file pval.c.
References app, ast_log, ast_strdupa, pval::endline, errs, pval::filename, is_float(), is_int(), LOG_ERROR, LOG_WARNING, argapp::next, pval::startline, pval::str, pval::u1, and warns.
int is_float | ( | char * | arg | ) |
Definition at line 1963 of file pval.c.
Referenced by is_empty().
int is_int | ( | char * | arg | ) |
Definition at line 1972 of file pval.c.
Referenced by is_empty().
|
static |
Definition at line 3018 of file pval.c.
References pval::dad, PV_CASE, PV_CONTEXT, PV_DEFAULT, PV_MACRO, PV_PATTERN, and pval::type.
Referenced by gen_prios().
|
static |
Definition at line 3032 of file pval.c.
References ael_extension::next_exten.
Referenced by gen_prios().
void linkprio | ( | struct ael_extension * | exten, |
struct ael_priority * | prio, | ||
struct ael_extension * | mother_exten | ||
) |
Definition at line 2936 of file pval.c.
References ael_priority::appargs, ael_priority::exten, exten, free(), ael_extension::has_switch, malloc(), ael_priority::next, ael_extension::plist, and ael_extension::plist_last.
Referenced by ast_compile_ael2(), and gen_prios().
Definition at line 5922 of file pval.c.
References pval::next, pval::prev, and pval::u1_last.
Referenced by pvalAppCallAddArg(), pvalCasePatDefAddStatement(), pvalContextAddStatement(), pvalESwitchesAddSwitch(), pvalGlobalsAddStatement(), pvalIncludesAddInclude(), pvalIncludesAddIncludeWithTimeConstraints(), pvalMacroAddArg(), pvalMacroAddStatement(), pvalMacroCallAddArg(), pvalStatementBlockAddStatement(), pvalSwitchAddCase(), pvalSwitchesAddSwitch(), pvalTopLevAddObject(), and yyparse().
int localized_pbx_load_module | ( | void | ) |
Definition at line 5647 of file extconf.c.
References ast_context_verify_includes(), ast_merge_contexts_and_delete(), ast_walk_contexts(), ast_context::name, NULL, and pbx_load_config().
Referenced by check_goto(), check_pval_item(), and localized_context_verify_includes().
Definition at line 1811 of file pval.c.
References count_labels, count_labels_in_current_context(), label_count, match_pval_item(), pval::next, return_on_context_match, pval::statements, and pval::u2.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), and match_pval_item().
Definition at line 1563 of file pval.c.
References count_labels, pval::else_statements, extension_matches(), pval::for_statements, item, label_count, pval::list, pval::macro_statements, match_context, match_exten, match_label, match_pval(), pval::next, PV_CASE, PV_CATCH, PV_CONTEXT, PV_DEFAULT, PV_EXTENSION, PV_FOR, PV_IF, PV_IFTIME, PV_LABEL, PV_MACRO, PV_PATTERN, PV_RANDOM, PV_STATEMENTBLOCK, PV_SWITCH, PV_WHILE, return_on_context_match, pval::statements, pval::str, pval::type, pval::u1, pval::u2, pval::u3, and pval::u4.
Referenced by match_pval().
struct ael_extension* new_exten | ( | void | ) |
Definition at line 2930 of file pval.c.
References calloc.
Referenced by ast_compile_ael2(), and gen_prios().
struct ael_priority* new_prio | ( | void | ) |
Definition at line 2924 of file pval.c.
References calloc.
Referenced by ast_compile_ael2(), and gen_prios().
|
static |
Definition at line 115 of file pval.c.
References pval::abstract, pval::arglist, pval::else_statements, pval::for_inc, pval::for_init, pval::for_statements, pval::for_test, pval::hints, pval::list, pval::macro_statements, pval::next, print_pval_list(), PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTEXT, PV_CONTINUE, PV_DEFAULT, PV_ESWITCHES, PV_EXTENSION, PV_FOR, PV_GLOBALS, PV_GOTO, PV_IF, PV_IFTIME, PV_IGNOREPAT, PV_INCLUDES, PV_LABEL, PV_LOCALVARDEC, PV_MACRO, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_SWITCHES, PV_VARDEC, PV_WHILE, PV_WORD, pval::regexten, pval::statements, pval::str, pval::type, pval::u1, pval::u2, pval::u3, pval::u4, and pval::val.
Referenced by print_pval_list().
|
static |
Definition at line 373 of file pval.c.
References pval::next, and print_pval().
Referenced by ael2_print(), and print_pval().
Definition at line 5268 of file pval.c.
References pval::arglist, linku1(), PV_APPLICATION_CALL, pvalCheckType(), and pval::u2.
Referenced by main().
char* pvalAppCallGetAppName | ( | pval * | p | ) |
Definition at line 5254 of file pval.c.
References PV_APPLICATION_CALL, pvalCheckType(), pval::str, and pval::u1.
void pvalAppCallSetAppName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5247 of file pval.c.
References name, PV_APPLICATION_CALL, pvalCheckType(), pval::str, and pval::u1.
Referenced by main().
Definition at line 5261 of file pval.c.
References pval::arglist, PV_APPLICATION_CALL, pvalCheckType(), and pval::u2.
Definition at line 5278 of file pval.c.
References pval::arglist, args, pval::next, PV_APPLICATION_CALL, pvalCheckType(), and pval::u2.
Definition at line 5303 of file pval.c.
References pval::arglist, linku1(), pval::statements, and pval::u2.
Definition at line 5311 of file pval.c.
References pval::next, pval::statements, and pval::u2.
char* pvalCasePatGetVal | ( | pval * | p | ) |
void pvalCasePatSetVal | ( | pval * | p, |
char * | val | ||
) |
Definition at line 5291 of file pval.c.
References PV_APPLICATION_CALL, pvalCheckType(), pval::str, and pval::u1.
char* pvalCatchGetExtName | ( | pval * | p | ) |
Definition at line 5343 of file pval.c.
References PV_CATCH, pvalCheckType(), pval::statements, and pval::u2.
void pvalCatchSetExtName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5336 of file pval.c.
References PV_CATCH, pvalCheckType(), pval::statements, and pval::u2.
Definition at line 5031 of file pval.c.
References ast_log, LOG_ERROR, and pval::type.
Referenced by pvalAppCallAddArg(), pvalAppCallGetAppName(), pvalAppCallSetAppName(), pvalAppCallSetArglist(), pvalAppCallWalkArgs(), pvalCasePatSetVal(), pvalCatchGetExtName(), pvalCatchGetStatement(), pvalCatchSetExtName(), pvalCatchSetStatement(), pvalContextAddStatement(), pvalContextGetAbstract(), pvalContextGetName(), pvalContextSetAbstract(), pvalContextSetName(), pvalContextUnsetAbstract(), pvalContextWalkStatements(), pvalESwitchesAddSwitch(), pvalESwitchesWalkNames(), pvalExtenGetHints(), pvalExtenGetName(), pvalExtenGetRegexten(), pvalExtenGetStatement(), pvalExtenSetHints(), pvalExtenSetName(), pvalExtenSetRegexten(), pvalExtenSetStatement(), pvalExtenUnSetRegexten(), pvalForGetInc(), pvalForGetInit(), pvalForGetStatement(), pvalForGetTest(), pvalForSetInc(), pvalForSetInit(), pvalForSetStatement(), pvalForSetTest(), pvalGlobalsWalkStatements(), pvalGotoGetTarget(), pvalGotoSetTarget(), pvalIfGetCondition(), pvalIfSetCondition(), pvalIfTimeGetCondition(), pvalIfTimeSetCondition(), pvalIgnorePatGetPattern(), pvalIgnorePatSetPattern(), pvalIncludeGetTimeConstraints(), pvalIncludesAddInclude(), pvalIncludesAddIncludeWithTimeConstraints(), pvalIncludesWalk(), pvalLabelGetName(), pvalLabelSetName(), pvalMacroAddArg(), pvalMacroAddStatement(), pvalMacroCallAddArg(), pvalMacroCallGetMacroName(), pvalMacroCallSetArglist(), pvalMacroCallSetMacroName(), pvalMacroCallWalkArgs(), pvalMacroGetName(), pvalMacroSetArglist(), pvalMacroSetName(), pvalMacroWalkArgs(), pvalMacroWalkStatements(), pvalRandomGetCondition(), pvalRandomSetCondition(), pvalStatementBlockAddStatement(), pvalStatementBlockWalkStatements(), pvalSwitchAddCase(), pvalSwitchesAddSwitch(), pvalSwitchesWalkNames(), pvalSwitchGetTestexpr(), pvalSwitchSetTestexpr(), pvalSwitchWalkCases(), pvalVarDecGetValue(), pvalVarDecGetVarname(), pvalVarDecSetValue(), pvalVarDecSetVarname(), pvalWordGetString(), and pvalWordSetString().
Definition at line 5751 of file pval.c.
References pval::else_statements, and pval::u3.
Definition at line 5746 of file pval.c.
References pval::statements, and pval::u2.
Definition at line 5741 of file pval.c.
References pval::else_statements, and pval::u3.
Definition at line 5736 of file pval.c.
References pval::statements, and pval::u2.
Definition at line 5180 of file pval.c.
References linku1(), PV_CONTEXT, pvalCheckType(), pval::statements, and pval::u2.
Referenced by main().
int pvalContextGetAbstract | ( | pval * | p | ) |
Definition at line 5171 of file pval.c.
References pval::abstract, PV_CONTEXT, pvalCheckType(), and pval::u3.
char* pvalContextGetName | ( | pval * | p | ) |
Definition at line 5150 of file pval.c.
References PV_CONTEXT, pvalCheckType(), pval::str, and pval::u1.
void pvalContextSetAbstract | ( | pval * | p | ) |
Definition at line 5157 of file pval.c.
References pval::abstract, PV_CONTEXT, pvalCheckType(), and pval::u3.
void pvalContextSetName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5143 of file pval.c.
References name, PV_CONTEXT, pvalCheckType(), pval::str, and pval::u1.
Referenced by main().
void pvalContextUnsetAbstract | ( | pval * | p | ) |
Definition at line 5164 of file pval.c.
References pval::abstract, PV_CONTEXT, pvalCheckType(), and pval::u3.
Definition at line 5190 of file pval.c.
References pval::next, PV_CONTEXT, pvalCheckType(), pval::statements, and pval::u2.
Definition at line 5042 of file pval.c.
References calloc, pval::type, and ael_priority::type.
Referenced by main(), pvalESwitchesAddSwitch(), pvalGotoSetTarget(), pvalIfTimeSetCondition(), pvalIncludesAddInclude(), pvalIncludesAddIncludeWithTimeConstraints(), and pvalSwitchesAddSwitch().
void pvalESwitchesAddSwitch | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5373 of file pval.c.
References linku1(), pval::list, name, PV_ESWITCHES, PV_WORD, pvalCheckType(), pvalCreateNode(), pval::str, and pval::u1.
Definition at line 5383 of file pval.c.
References pval::list, pval::next, PV_ESWITCHES, pvalCheckType(), pval::str, and pval::u1.
char* pvalExtenGetHints | ( | pval * | p | ) |
Definition at line 5837 of file pval.c.
References pval::hints, PV_EXTENSION, pvalCheckType(), and pval::u3.
char* pvalExtenGetName | ( | pval * | p | ) |
Definition at line 5802 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::str, and pval::u1.
int pvalExtenGetRegexten | ( | pval * | p | ) |
Definition at line 5823 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::regexten, and pval::u4.
Definition at line 5851 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::statements, and pval::u2.
void pvalExtenSetHints | ( | pval * | p, |
char * | hints | ||
) |
Definition at line 5830 of file pval.c.
References pval::hints, hints, PV_EXTENSION, pvalCheckType(), and pval::u3.
Referenced by main().
void pvalExtenSetName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5795 of file pval.c.
References name, PV_EXTENSION, pvalCheckType(), pval::str, and pval::u1.
Referenced by main().
void pvalExtenSetRegexten | ( | pval * | p | ) |
Definition at line 5809 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::regexten, and pval::u4.
Definition at line 5844 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::statements, and pval::u2.
Referenced by main().
void pvalExtenUnSetRegexten | ( | pval * | p | ) |
Definition at line 5816 of file pval.c.
References PV_EXTENSION, pvalCheckType(), pval::regexten, and pval::u4.
char* pvalForGetInc | ( | pval * | p | ) |
Definition at line 5647 of file pval.c.
References pval::for_inc, PV_FOR, pvalCheckType(), and pval::u3.
char* pvalForGetInit | ( | pval * | p | ) |
Definition at line 5633 of file pval.c.
References pval::for_init, PV_FOR, pvalCheckType(), and pval::u1.
Definition at line 5654 of file pval.c.
References pval::for_statements, PV_FOR, pvalCheckType(), and pval::u4.
char* pvalForGetTest | ( | pval * | p | ) |
Definition at line 5640 of file pval.c.
References pval::for_test, PV_FOR, pvalCheckType(), and pval::u2.
void pvalForSetInc | ( | pval * | p, |
char * | inc | ||
) |
Definition at line 5619 of file pval.c.
References pval::for_inc, PV_FOR, pvalCheckType(), and pval::u3.
void pvalForSetInit | ( | pval * | p, |
char * | init | ||
) |
Definition at line 5605 of file pval.c.
References pval::for_init, PV_FOR, pvalCheckType(), and pval::u1.
Definition at line 5626 of file pval.c.
References pval::for_statements, PV_FOR, pvalCheckType(), and pval::u4.
void pvalForSetTest | ( | pval * | p, |
char * | test | ||
) |
Definition at line 5612 of file pval.c.
References pval::for_test, PV_FOR, pvalCheckType(), test, and pval::u2.
Definition at line 5874 of file pval.c.
References ast_log, linku1(), LOG_ERROR, PV_GLOBALS, pval::statements, pval::type, and pval::u1.
Definition at line 5887 of file pval.c.
References pval::next, PV_GLOBALS, and pvalCheckType().
void pvalGotoGetTarget | ( | pval * | p, |
char ** | context, | ||
char ** | exten, | ||
char ** | label | ||
) |
Definition at line 5563 of file pval.c.
References pval::list, pval::next, PV_GOTO, pvalCheckType(), pval::str, and pval::u1.
void pvalGotoSetTarget | ( | pval * | p, |
char * | context, | ||
char * | exten, | ||
char * | label | ||
) |
Definition at line 5527 of file pval.c.
References context, ext, ael_priority::exten, pval::list, pval::next, PV_GOTO, PV_WORD, pvalCheckType(), pvalCreateNode(), pval::str, and pval::u1.
char* pvalIfGetCondition | ( | pval * | p | ) |
void pvalIfSetCondition | ( | pval * | p, |
char * | expr | ||
) |
void pvalIfTimeGetCondition | ( | pval * | p, |
char ** | hour_range, | ||
char ** | dow_range, | ||
char ** | dom_range, | ||
char ** | month_range | ||
) |
Definition at line 5712 of file pval.c.
References pval::list, pval::next, PV_IFTIME, pvalCheckType(), pval::str, and pval::u1.
void pvalIfTimeSetCondition | ( | pval * | p, |
char * | hour_range, | ||
char * | dow_range, | ||
char * | dom_range, | ||
char * | mon_range | ||
) |
Definition at line 5677 of file pval.c.
References destroy_pval(), pval::list, pval::next, PV_IFTIME, PV_WORD, pvalCheckType(), pvalCreateNode(), pvalWordSetString(), and pval::u1.
char* pvalIgnorePatGetPattern | ( | pval * | p | ) |
Definition at line 5866 of file pval.c.
References PV_IGNOREPAT, pvalCheckType(), pval::str, and pval::u1.
void pvalIgnorePatSetPattern | ( | pval * | p, |
char * | pat | ||
) |
Definition at line 5859 of file pval.c.
References PV_IGNOREPAT, pvalCheckType(), pval::str, and pval::u1.
Referenced by main().
void pvalIncludeGetTimeConstraints | ( | pval * | p, |
char ** | hour_range, | ||
char ** | dom_range, | ||
char ** | dow_range, | ||
char ** | month_range | ||
) |
Definition at line 5450 of file pval.c.
References pval::arglist, pval::next, PV_WORD, pvalCheckType(), pval::str, pval::u1, and pval::u2.
void pvalIncludesAddInclude | ( | pval * | p, |
const char * | include | ||
) |
Definition at line 5396 of file pval.c.
References linku1(), pval::list, PV_INCLUDES, PV_WORD, pvalCheckType(), pvalCreateNode(), pval::str, and pval::u1.
Referenced by main().
void pvalIncludesAddIncludeWithTimeConstraints | ( | pval * | p, |
const char * | include, | ||
char * | hour_range, | ||
char * | dom_range, | ||
char * | dow_range, | ||
char * | month_range | ||
) |
Definition at line 5407 of file pval.c.
References pval::arglist, destroy_pval(), linku1(), pval::list, pval::next, PV_INCLUDES, PV_WORD, pvalCheckType(), pvalCreateNode(), pval::str, pval::u1, and pval::u2.
Referenced by main().
Definition at line 5467 of file pval.c.
References pval::list, pval::next, PV_INCLUDES, pvalCheckType(), pval::str, and pval::u1.
char* pvalLabelGetName | ( | pval * | p | ) |
void pvalLabelSetName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5094 of file pval.c.
References pval::arglist, linku1(), PV_MACRO, pvalCheckType(), and pval::u2.
Definition at line 5117 of file pval.c.
References linku1(), pval::macro_statements, PV_MACRO, pvalCheckType(), and pval::u3.
Definition at line 5224 of file pval.c.
References pval::arglist, linku1(), PV_MACRO_CALL, pvalCheckType(), and pval::u2.
char* pvalMacroCallGetMacroName | ( | pval * | p | ) |
Definition at line 5210 of file pval.c.
References PV_MACRO_CALL, pvalCheckType(), pval::str, and pval::u1.
Definition at line 5217 of file pval.c.
References pval::arglist, PV_MACRO_CALL, pvalCheckType(), and pval::u2.
void pvalMacroCallSetMacroName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5203 of file pval.c.
References name, PV_MACRO_CALL, pvalCheckType(), pval::str, and pval::u1.
Definition at line 5234 of file pval.c.
References pval::arglist, args, pval::next, PV_MACRO_CALL, pvalCheckType(), and pval::u2.
char* pvalMacroGetName | ( | pval * | p | ) |
Definition at line 5087 of file pval.c.
References pval::arglist, PV_MACRO, pvalCheckType(), and pval::u2.
void pvalMacroSetName | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5105 of file pval.c.
References pval::arglist, pval::next, PV_MACRO, pvalCheckType(), and pval::u2.
Definition at line 5129 of file pval.c.
References pval::macro_statements, pval::next, PV_MACRO, pvalCheckType(), and pval::u3.
Definition at line 5052 of file pval.c.
References pval::type.
char* pvalRandomGetCondition | ( | pval * | p | ) |
void pvalRandomSetCondition | ( | pval * | p, |
char * | percent | ||
) |
Definition at line 5480 of file pval.c.
References linku1(), pval::list, PV_STATEMENTBLOCK, pvalCheckType(), and pval::u1.
Referenced by main().
Definition at line 5487 of file pval.c.
References pval::list, pval::next, PV_STATEMENTBLOCK, pvalCheckType(), and pval::u1.
Definition at line 5770 of file pval.c.
References linku1(), PV_CASE, PV_SWITCH, pvalCheckType(), pval::statements, and pval::u2.
void pvalSwitchesAddSwitch | ( | pval * | p, |
char * | name | ||
) |
Definition at line 5351 of file pval.c.
References linku1(), pval::list, name, PV_SWITCHES, PV_WORD, pvalCheckType(), pvalCreateNode(), pval::str, and pval::u1.
Referenced by main().
Definition at line 5361 of file pval.c.
References pval::list, pval::next, PV_SWITCHES, pvalCheckType(), pval::str, and pval::u1.
char* pvalSwitchGetTestexpr | ( | pval * | p | ) |
void pvalSwitchSetTestexpr | ( | pval * | p, |
char * | expr | ||
) |
Definition at line 5782 of file pval.c.
References pval::next, PV_SWITCH, pvalCheckType(), pval::statements, and pval::u2.
char* pvalVarDecGetValue | ( | pval * | p | ) |
char* pvalVarDecGetVarname | ( | pval * | p | ) |
void pvalVarDecSetValue | ( | pval * | p, |
char * | value | ||
) |
void pvalVarDecSetVarname | ( | pval * | p, |
char * | name | ||
) |
char* pvalWordGetString | ( | pval * | p | ) |
void pvalWordSetString | ( | pval * | p, |
char * | str | ||
) |
Definition at line 5058 of file pval.c.
References PV_WORD, pvalCheckType(), pval::str, str, and pval::u1.
Referenced by main(), and pvalIfTimeSetCondition().
|
static |
Definition at line 3038 of file pval.c.
References str.
Referenced by ast_compile_ael2(), and gen_prios().
void set_priorities | ( | struct ael_extension * | exten | ) |
Definition at line 4187 of file pval.c.
References ael_extension::is_switch, ael_priority::next, ael_extension::next_exten, ael_priority::origin, ael_extension::plist, ael_priority::priority_num, PV_LABEL, ael_extension::regexten, and pval::type.
Referenced by ast_compile_ael2().
void traverse_pval_item_template | ( | pval * | item, |
int | depth | ||
) |
Definition at line 400 of file pval.c.
References pval::arglist, pval::else_statements, pval::for_statements, pval::list, pval::macro_statements, pval::next, PV_APPLICATION_CALL, PV_BREAK, PV_CASE, PV_CATCH, PV_CONTEXT, PV_CONTINUE, PV_DEFAULT, PV_ESWITCHES, PV_EXTENSION, PV_FOR, PV_GLOBALS, PV_GOTO, PV_IF, PV_IFTIME, PV_IGNOREPAT, PV_INCLUDES, PV_LABEL, PV_LOCALVARDEC, PV_MACRO, PV_MACRO_CALL, PV_PATTERN, PV_RANDOM, PV_RETURN, PV_STATEMENTBLOCK, PV_SWITCH, PV_SWITCHES, PV_VARDEC, PV_WHILE, PV_WORD, pval::statements, pval::type, pval::u1, pval::u2, pval::u3, and pval::u4.
Referenced by ael2_print(), and traverse_pval_template().
void traverse_pval_template | ( | pval * | item, |
int | depth | ||
) |
Definition at line 634 of file pval.c.
References pval::next, and traverse_pval_item_template().
Referenced by ael2_print().
|
static |
Definition at line 2922 of file pval.c.
Referenced by ast_compile_ael2(), and gen_prios().
|
static |
Definition at line 80 of file pval.c.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), match_pval(), and match_pval_item().
|
static |
Definition at line 73 of file pval.c.
Referenced by check_label().
|
static |
Definition at line 74 of file pval.c.
Referenced by check_label().
|
static |
Definition at line 886 of file pval.c.
Referenced by check_dow().
|
static |
Definition at line 65 of file pval.c.
Referenced by ael2_semantic_check(), check_break(), check_continue(), check_goto(), check_label(), check_pval_item(), is_empty(), pbx_load_module(), and smath().
|
static |
Definition at line 60 of file pval.c.
Referenced by check_pval_item().
|
static |
Definition at line 79 of file pval.c.
Referenced by check_pval_item().
|
static |
Definition at line 81 of file pval.c.
Referenced by match_pval(), and match_pval_item().
|
static |
Definition at line 76 of file pval.c.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), and match_pval_item().
|
static |
Definition at line 77 of file pval.c.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), and match_pval_item().
|
static |
Definition at line 78 of file pval.c.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), and match_pval_item().
|
static |
Definition at line 984 of file pval.c.
Referenced by check_month().
|
static |
Definition at line 66 of file pval.c.
Referenced by ael2_semantic_check().
|
static |
Definition at line 70 of file pval.c.
Referenced by add_extensions(), and ast_compile_ael2().
|
static |
Definition at line 82 of file pval.c.
Referenced by find_context(), find_first_label_in_current_context(), find_label_in_current_context(), find_label_in_current_db(), find_label_in_current_extension(), find_macro(), match_pval(), and match_pval_item().
|
static |
Definition at line 65 of file pval.c.
Referenced by ael2_semantic_check(), check_abstract_reference(), check_app_args(), check_context_names(), check_day(), check_dow(), check_expr2_input(), check_goto(), check_includes(), check_month(), check_pval_item(), check_switch_expr(), check_timerange(), and is_empty().