Fri Nov 12 11:47:45 2010

Asterisk developer's documentation


ael_structs.h File Reference

Structures for AEL - the Asterisk extension language. More...

#include "asterisk/paths.h"
#include "pval.h"
Include dependency graph for ael_structs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ael_extension
struct  ael_priority
struct  parse_io

Defines

#define QUAD_MAX   (0x7fffffffffffffffLL)
#define QUAD_MIN   (-0x7fffffffffffffffLL-1)

Typedefs

typedef void * yyscan_t

Enumerations

enum  ael_priority_type {
  AEL_APPCALL, AEL_CONTROL1, AEL_FOR_CONTROL, AEL_IF_CONTROL,
  AEL_IFTIME_CONTROL, AEL_RAND_CONTROL, AEL_LABEL, AEL_RETURN
}

Functions

struct pvalael2_parse (char *fname, int *errs)
void ael2_print (char *fname, pval *tree)
void ael2_semantic_check (pval *item, int *errs, int *warns, int *notes)
void destroy_pval (pval *item)
pvallinku1 (pval *head, pval *tail)
pvalnpval (pvaltype type, int first_line, int last_line, int first_column, int last_column)

Variables

char * prev_word

Detailed Description

Structures for AEL - the Asterisk extension language.

pbx_ael.c

Todo:
document this file (ael.h)

Definition in file ael_structs.h.


Define Documentation

#define QUAD_MAX   (0x7fffffffffffffffLL)

Definition at line 54 of file ael_structs.h.

#define QUAD_MIN   (-0x7fffffffffffffffLL-1)

Definition at line 51 of file ael_structs.h.

Referenced by chk_div(), and chk_minus().


Typedef Documentation

typedef void* yyscan_t

Definition at line 71 of file ael_structs.h.


Enumeration Type Documentation

Enumerator:
AEL_APPCALL 
AEL_CONTROL1 
AEL_FOR_CONTROL 
AEL_IF_CONTROL 
AEL_IFTIME_CONTROL 
AEL_RAND_CONTROL 
AEL_LABEL 
AEL_RETURN 

Definition at line 84 of file ael_structs.h.


Function Documentation

struct pval* ael2_parse ( char *  fname,
int *  errs 
) [read]

Referenced by pbx_load_module().

void ael2_print ( char *  fname,
pval tree 
)

Definition at line 380 of file pval.c.

References ast_log(), LOG_ERROR, and print_pval_list().

00381 {
00382    FILE *fin = fopen(fname,"w");
00383    if ( !fin ) {
00384       ast_log(LOG_ERROR, "Couldn't open %s for writing.\n", fname);
00385       return;
00386    }
00387    print_pval_list(fin, tree, 0);
00388    fclose(fin);
00389 }

void ael2_semantic_check ( pval item,
int *  errs,
int *  warns,
int *  notes 
)

Definition at line 2882 of file pval.c.

References ast_config_AST_VAR_DIR, check_context_names(), and check_pval().

Referenced by pbx_load_module().

02883 {
02884    
02885 #ifdef AAL_ARGCHECK
02886    int argapp_errs =0;
02887    char *rfilename;
02888 #endif
02889    struct argapp *apps=0;
02890 
02891    if (!item)
02892       return; /* don't check an empty tree */
02893 #ifdef AAL_ARGCHECK
02894    rfilename = alloca(10 + strlen(ast_config_AST_VAR_DIR));
02895    sprintf(rfilename, "%s/applist", ast_config_AST_VAR_DIR);
02896    
02897    apps = argdesc_parse(rfilename, &argapp_errs); /* giveth */
02898 #endif
02899    current_db = item;
02900    errs = warns = notes = 0;
02901 
02902    check_context_names();
02903    check_pval(item, apps, 0);
02904 
02905 #ifdef AAL_ARGCHECK
02906    argdesc_destroy(apps);  /* taketh away */
02907 #endif
02908    current_db = 0;
02909 
02910    *arg_errs = errs;
02911    *arg_warns = warns;
02912    *arg_notes = notes;
02913 }

void destroy_pval ( pval item  ) 

Definition at line 4851 of file pval.c.

Referenced by destroy_pval_item(), pbx_load_module(), yydestruct(), and yyparse().

04852 {
04853    pval *i,*nxt;
04854    
04855    for (i=item; i; i=nxt) {
04856       nxt = i->next;
04857       
04858       destroy_pval_item(i);
04859    }
04860 }

pval* linku1 ( pval head,
pval tail 
)

Definition at line 5798 of file pval.c.

Referenced by pvalAppCallAddArg(), pvalCasePatDefAddStatement(), pvalContextAddStatement(), pvalESwitchesAddSwitch(), pvalGlobalsAddStatement(), pvalIncludesAddInclude(), pvalIncludesAddIncludeWithTimeConstraints(), pvalMacroAddArg(), pvalMacroAddStatement(), pvalMacroCallAddArg(), pvalStatementBlockAddStatement(), pvalSwitchAddCase(), pvalSwitchesAddSwitch(), pvalTopLevAddObject(), and yyparse().

05799 {
05800    if (!head)
05801       return tail;
05802    if (tail) {
05803       if (!head->next) {
05804          head->next = tail;
05805       } else {
05806          head->u1_last->next = tail;
05807       }
05808       head->u1_last = tail;
05809       tail->prev = head; /* the dad link only points to containers */
05810    }
05811    return head;
05812 }

struct pval * npval ( pvaltype  type,
int  first_line,
int  last_line,
int  first_column,
int  last_column 
) [read]

Definition at line 3464 of file ael.tab.c.

References calloc, pval::endcol, pval::endline, pval::filename, pval::startcol, pval::startline, strdup, and pval::type.

Referenced by npval2(), and yyparse().

03466 {
03467    pval *z = calloc(1, sizeof(struct pval));
03468    z->type = type;
03469    z->startline = first_line;
03470    z->endline = last_line;
03471    z->startcol = first_column;
03472    z->endcol = last_column;
03473    z->filename = strdup(my_file);
03474    return z;
03475 }


Variable Documentation

char* prev_word

Definition at line 874 of file ael_lex.c.

Referenced by yydestruct(), and yyparse().


Generated by  doxygen 1.6.2