aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/ael/ael.y
AgeCommit message (Collapse)AuthorFilesLines
2009-04-20Properly handle @s within hints in AEL.seanbright1-0/+9
AEL was not handling the case of a device hint containing an @ symbol, which caused parking hints (e.g. hint(park:exten@context)) to error out the parser. This patch makes AEL treat the @ the same way it treats colon and ampersand now, meaning the characters are included in verbatim. (closes issue #14941) Reported by: bpgoldsb Patches: bug14941.patch uploaded by seanbright (license 71) Tested by: bpgoldsb git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@189462 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-18This patch fixes a regression of sorts that was introduced in murf1-12/+12
rev 24425. It basically fixes AST-190/ABE-1782. What was wrong: the user has 6000 extensions in one context; and then 6000 contexts, one per extension. The parser could only handle about 4893 of the 6000 extens in the single context. This was due to the regression I mentioned. To get rid of shift/reduce conflicts, Luigi set up right-recursive lists for globals, context elements, switch lists, and statements. Right recursive lists got rid of the warnings, but instead, they use up a tremendous amount of stack space when the lists are long. I saw this a few years back, and resolved not to fix it until someone complained. That day has arrived! After the changes were made, I ran the regression test suite, and there were no problems. I took the test case the user provided, and added 100,000 extensions to the single context, that already had 6,000 extens in it. (I'll see your 6, and raise you 100!) It takes a few minutes to read it all in, check it and generate code for it, but no problems. So, I think I can say that fundamentally, there are no longer any limits on the number of items you can place in contexts, statement blocks, switches, or globals, beyond your virt mem constraints. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@177225 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-01fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings ↵kpfleming1-35/+89
being passed to printf()-like functions and ignored results from read()/write() and friends git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@153337 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-27improve header inclusion process in a few small ways:kpfleming1-0/+2
- it is no longer necessary to forcibly include asterisk/autoconfig.h; every module already includes asterisk.h as its first header (even before system headers), which serves the same purpose - astmm.h is now included by asterisk.h when needed, instead of being forced by the Makefile; this means external modules will build properly against installed headers with MALLOC_DEBUG enabled - simplify the usage of some of these headers in the AEL-related stuff in the utils directory git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@144924 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-26closes issue #11086 where a user complains that references to following ↵murf1-12/+9
contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config, git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@87168 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-24closes issue #11037 -- unable to specify app:spec in hint argumentsmurf1-0/+4
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@86936 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-01closes issue #10777 -- by returning a null for the parse tree when there's ↵murf1-1/+1
really nothing there, and making sure we don't try to do checking on a null tree. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@84239 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-21gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set ofrussell1-4/+4
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2. (closes issue #10774, patch from qwell) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@83432 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-24backport of 80649, a fix to an unreported problem in the ael parser, that ↵murf1-6/+6
results in a crash on a 64bit machine git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@80689 f38db490-d61c-443f-a65b-d21fe96a405b
2007-06-05this fixes bug 9883, wherein macros were not allowing the includes ↵murf1-0/+1
construct. fixed and tested, looks OK. Now includes can serve as an adjunct to catch. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@67526 f38db490-d61c-443f-a65b-d21fe96a405b
2007-05-03These mods fix bug 9623, where an '@' in the eswitch contents causes a ↵murf1-1/+3
syntax error. I also updated the regressions. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@62883 f38db490-d61c-443f-a65b-d21fe96a405b
2006-10-04These changes fix the problems reported in bug 8090murf1-5/+11
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@44380 f38db490-d61c-443f-a65b-d21fe96a405b
2006-08-12This commit merges the contents of 7721, as it applied to the trunk version. ↵murf1-3/+14
Added the item that would previously trigger a false error to test1. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@39571 f38db490-d61c-443f-a65b-d21fe96a405b
2006-08-07The contents of branch teams/murf/bug_7598 are being folded in here.murf1-20/+34
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@39151 f38db490-d61c-443f-a65b-d21fe96a405b
2006-07-19committing a fix for colons in goto arguments and suppressing operator ↵murf1-1/+1
messages in globals assignments. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@37925 f38db490-d61c-443f-a65b-d21fe96a405b
2006-06-18merge changes from team/murf/AEL-trunk-fixesonlyrussell1-3/+1
- fix callerid matching for extensions - fix nested switch statements - fix compilation with bison 2.1a or higher (issue #7309) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@34665 f38db490-d61c-443f-a65b-d21fe96a405b
2006-06-07simplify autoconfig include mechanism (make tholo happy he can use lint ↵kpfleming1-0/+6
again :-) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@32846 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03more simplificationsrizzo1-18/+14
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24460 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03consistent rule for goto...rizzo1-1/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24431 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03remove another useless nonterminalrizzo1-8/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24430 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03remove a useless nonterminalrizzo1-9/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24429 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03more simplificationsrizzo1-3/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24428 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03remove more shift-reduce conflictsrizzo1-2/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24427 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03remove a redundant rulerizzo1-14/+7
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24426 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03reduce shift/reduce warningsrizzo1-13/+9
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24425 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03simplify case_statementsrizzo1-12/+10
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24424 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03switch statement in one placerizzo1-8/+7
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24423 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-03common syntax for context namerizzo1-5/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24421 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02another instance of context namerizzo1-5/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24344 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02fix a bug previously introduced in the handling of timespec.rizzo1-3/+3
Fortunately we have regression tests! git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24343 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02simplify case statementsrizzo1-3/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24341 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02one more instance of assignmentrizzo1-4/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24340 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02global_statement is really an assignment statementrizzo1-15/+12
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24339 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02expressions used in if, while, switch are all of the same kindrizzo1-14/+21
(it remains to see why 'random' gives 16 shift/reduce conflicts...) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24292 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02macro statements can be emptyrizzo1-4/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24258 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02empty arglists are validrizzo1-8/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24257 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02rename the rule for context names properlyrizzo1-7/+6
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24256 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02simplify handling of 'include' listsrizzo1-9/+10
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24255 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02... and use a single rule for timespecrizzo1-23/+20
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24254 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02use a single rule to parse timeranges hh:mm-hh:mmrizzo1-46/+17
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24252 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02if/ifTime/random statements are all the same thingrizzo1-21/+8
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24248 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02includedname is just a regular word_or_default name,rizzo1-13/+8
no need for a separate nonterminal git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24219 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02remove useless 'extern' declarationrizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24216 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02remove some unneeded local variables.rizzo1-13/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24178 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02more usage of nword(). I think the references to sourcerizzo1-46/+24
line/columns are also correct now. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24175 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02more simplifications involving linku1rizzo1-28/+13
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24174 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02correct linku1() to handle the case tail = NULL correctly.rizzo1-14/+8
Now the function can be used to simplify other conditional blocks. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24173 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-02The build of aelparse was still broken in some cases, so instead of having to russell1-4/+3
keep figuring out workarounds for build issues on various platforms, just go ahead and remove what started all of this. Two instances of ast_calloc have been changed to calloc in pbx/ael/ael.y. ast_copy_string isn't actually needed here because the only place it is used is in ast_expr2f.c. However, the utils Makefile already builds its own ast_expr2f.o with -DSTANDALONE, which makes it use strncpy instead of ast_copy_string. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24115 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-01fix dereferencing freed memoryrizzo1-4/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@23795 f38db490-d61c-443f-a65b-d21fe96a405b
2006-04-30switch a couple of operands.rizzo1-1/+4
This gives slightly different results from the previous code on syntax errors, but it actually makes fewer mistakes so i think it is an improvement. Additionally, it makes the code more uniform (the other call of reset_argcount occurs after LP and not before). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@23783 f38db490-d61c-443f-a65b-d21fe96a405b