Version 1
[yaffs-website] / vendor / symfony / expression-language / Resources / bin / generate_operator_regex.php
diff --git a/vendor/symfony/expression-language/Resources/bin/generate_operator_regex.php b/vendor/symfony/expression-language/Resources/bin/generate_operator_regex.php
new file mode 100644 (file)
index 0000000..74a1008
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+$operators = array('not', '!', 'or', '||', '&&', 'and', '|', '^', '&', '==', '===', '!=', '!==', '<', '>', '>=', '<=', 'not in', 'in', '..', '+', '-', '~', '*', '/', '%', 'matches', '**');
+$operators = array_combine($operators, array_map('strlen', $operators));
+arsort($operators);
+
+$regex = array();
+foreach ($operators as $operator => $length) {
+    // an operator that ends with a character must be followed by
+    // a whitespace or a parenthesis
+    $regex[] = preg_quote($operator, '/').(ctype_alpha($operator[$length - 1]) ? '(?=[\s(])' : '');
+}
+
+echo '/'.implode('|', $regex).'/A';