summaryrefslogtreecommitdiffstats
path: root/server/util_expr_scan.l (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix spelling errors found by codespell. [skip ci]Mike Rumph2020-02-131-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1873985 13f79535-47bb-0310-9956-ffa450edef68
* ap_expr: follow up to r1810605.Yann Ylavic2017-10-041-33/+23
| | | | | | | | | The "split" and "join" operators are now a prefix, ala perl. Add the "sub" operator for string substitutions, prefix still. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1811104 13f79535-47bb-0310-9956-ffa450edef68
* ap_expr: open string expressions to the <word>.Yann Ylavic2017-10-021-226/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces the syntax "%{:<word>:}", borrowed from the <var>'s one, and which likewise can be embedded anywhere in a string expression (the same reserved character ':' gets reused in an unambiguous manner). This allows the two types of expressions (boolean and string) to now share fully the same language set, namely: strings, lists, vars, regexes, backrefs, functions with multiple or complex arguments, and especially combinations thereof. Most of them were reserved to boolean expressions only, while complex string constructions can also benefit to, well, strings. The <word> construct allows that (say the syntax "%{:<word>:}" looks like a temporary variable constructed in a string). Since string expressions may now have to deal with lists (arrays), they also need a way to produce/extract strings from list and vice versa. This can be done with the new "join" and "split" operators, while the new substitution regexes (like "s/<pattern>/<substitute>/<flags>") may be used to manipulate strings in place. All this of course available for both string and boolean expressions. Tests and doc updates upcoming.. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1810605 13f79535-47bb-0310-9956-ffa450edef68
* Added some more log numbers to log statements thatRainer Jung2016-01-191-2/+3
| | | | | | | | | | had none. Those were not detected by the coccinelle script. Only a few hard cases are remaining now. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1725548 13f79535-47bb-0310-9956-ffa450edef68
* avoid non-continous ranges in EBCDIC in the scanner, important characters ↵Eric Covener2013-09-021-4/+4
| | | | | | | | | | | | | like '{' come between alphas in IBM1047. (If you're reading this because you're building 2.4-or-later on z/OS, you'll have to build a new flex with the system flex and system bison. flex-2.5.35 worked.) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1519485 13f79535-47bb-0310-9956-ffa450edef68
* Properly log flex fatal errors and abort(), instead of theStefan Fritsch2012-11-051-0/+15
| | | | | | | default of fprintf(stderr, ...) and exit(2) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1405770 13f79535-47bb-0310-9956-ffa450edef68
* Do proper length checks in the expression scanner. This allows to remove theStefan Fritsch2011-08-131-15/+23
| | | | | | | | 8K length limit for expressions. Strings/Regexs in an expression are still limited to 8K, though. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1157362 13f79535-47bb-0310-9956-ffa450edef68
* Add string valued expressions to ap_expr, do some API cleanupStefan Fritsch2011-07-021-1/+30
| | | | | | | | | | | - add possibility to have expressions that evaluate to a string and not to a boolean value - modify ap_expr_parse_cmd() interface to support this and make it more convenient to use in general - rename AP_EXPR_FLAGS_* to AP_EXPR_FLAG_* for consistency git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1142164 13f79535-47bb-0310-9956-ffa450edef68
* Rename ap_expr's typedef names:Stefan Fritsch2010-12-041-1/+1
| | | | | | | | | | | ap_expr -> ap_expr_t ap_expr_parse_ctx -> ap_expr_parse_ctx_t ap_expr_eval_ctx -> ap_expr_eval_ctx_t ap_expr_lookup_fn -> ap_expr_lookup_fn_t ap_expr_node_op -> ap_expr_node_op_e git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1042146 13f79535-47bb-0310-9956-ffa450edef68
* - add -ipmatch, -str(c)match, -fnmatch, -R operators to ap_exprStefan Fritsch2010-11-281-1/+1
| | | | | | | | | | - allow lookup function to pre-parse string constant arguments (used for subnet masks so far) - various bug fixes for binary operators - do strdup() for error messages created on the stack to avoid corruption git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1039900 13f79535-47bb-0310-9956-ffa450edef68
* Fix some Windows build issuesStefan Fritsch2010-11-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1039204 13f79535-47bb-0310-9956-ffa450edef68
* ap_expr related fixes/enhancements:Stefan Fritsch2010-11-211-5/+26
| | | | | | | | | | | - implement regex backreferences and make them available for setting envvars in SetEnvIfExpr - implement nested function calls in %-syntax: %{func1:%{func2:arg}} - actually implement evaluation of concatenation operator (oops...) - Fix <If ... > treating an internal error as success git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1037504 13f79535-47bb-0310-9956-ffa450edef68
* Supress generation of unused yy_top_state function, to avoid a compilerStefan Fritsch2010-11-101-1/+1
| | | | | | | warning. Regenerate the scanner code with flex. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1033594 13f79535-47bb-0310-9956-ffa450edef68
* More fixes for picky compilersStefan Fritsch2010-11-071-4/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1032268 13f79535-47bb-0310-9956-ffa450edef68
* Replace ap_expr with a parser derived from mod_ssl's parser. Make mod_ssl useStefan Fritsch2010-11-061-0/+344
the new parser. Rework ap_expr's public interface and provide hooks for modules to add variables and functions. The Netware and Windows build files still need to be adjusted git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1032073 13f79535-47bb-0310-9956-ffa450edef68