Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | - Head up! I'm reverting the patch which allows for expressions in constant | Andi Gutmans | 2003-10-28 | 1 | -2/+2 |
| | | | | | | | | | - declerations. Allowing the access of other constants in this code is - flawed. We are reverting back to PHP 4's static scalars. - Don't worry if you get the following msg when compiling: - "zend_language_parser.y contains 3 useless nonterminals and 22 useless rules" - I didn't nuke the code in case we have some brilliant ideas after beta 2 | ||||
* | - Nuke const in function parameters. I just can't remember why this exists | Andi Gutmans | 2003-10-19 | 1 | -2/+0 |
| | | | | | - and it seems no one else remembers either. It has no semantic meaning. | ||||
* | Allow foo::$bar() | Zeev Suraski | 2003-10-09 | 1 | -2/+5 |
| | |||||
* | ntroduce infrastructure for supplying information about arguments, | Zeev Suraski | 2003-08-03 | 1 | -11/+11 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | including: - Whether or not to pass by ref (replaces the old arg_types, with arg_info) - Argument name (for future use, maybe introspection) - Class/Interface name (for type hints) - If a class/interface name is available, whether to allow a null instance Both user and builtin functions share the same data structures. To declare a builtin function that expects its first arg to be an instance of class 'Person', its second argument as a regular arg, and its third by reference, use: ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0) ZEND_ARG_OBJ_INFO(0, someone, Person, 1) ZEND_ARG_PASS_INFO(0) ZEND_ARG_PASS_INFO(1) ZEND_END_ARG_INFO(); and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family of macros. The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref. The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat the arguments for which there's no explicit information as pass by reference or not. The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values. | ||||
* | Support references in foreach() | Zeev Suraski | 2003-07-24 | 1 | -4/+10 |
| | | | | | | | Syntax: foreach ($arr as &$val) foreach ($arr as $key => &$val) | ||||
* | Fix complex expressions for class names in NEW | Zeev Suraski | 2003-06-22 | 1 | -16/+35 |
| | |||||
* | Simplify | Zeev Suraski | 2003-06-22 | 1 | -7/+2 |
| | |||||
* | WS | Marcus Boerger | 2003-06-21 | 1 | -1/+1 |
| | |||||
* | Add final classes | Marcus Boerger | 2003-06-21 | 1 | -0/+1 |
| | |||||
* | Fix bug #23384 - static class::constant constants should now | Stanislav Malyshev | 2003-06-15 | 1 | -2/+6 |
| | | | | | work in static & array expressions. | ||||
* | updating license information in the headers. | James Cox | 2003-06-10 | 1 | -1/+1 |
| | |||||
* | Fix bogus implicit declarations of properties (squash bug #23671) | Zeev Suraski | 2003-06-09 | 1 | -1/+1 |
| | |||||
* | MEGA-patch: namespaces are R.I.P. | Stanislav Malyshev | 2003-06-02 | 1 | -85/+9 |
| | |||||
* | Fix ~ operator in class constants. | Marcus Boerger | 2003-05-29 | 1 | -1/+2 |
| | |||||
* | allow expressions within constants, so the following is possible | Sterling Hughes | 2003-04-10 | 1 | -6/+36 |
| | | | | | | | | | | | | class foo { const a = 1<<0; const b = 1<<1; const c = a | b; } this makes const a compile-time expression. all other operators are unaffected. | ||||
* | Revert Harald's commit | Zeev Suraski | 2003-04-10 | 1 | -2/+3 |
| | |||||
* | One line fix so that it will compile | George Schlossnagle | 2003-04-10 | 1 | -0/+1 |
| | |||||
* | removing the *syntactical sugar* again | Harald Radi | 2003-04-09 | 1 | -3/+1 |
| | | | | | | # commiting that on behalf of the community :) # don't blame me, i'm just acting as a proxy | ||||
* | Implement a different way to catch documentation comments. | Andrei Zmievski | 2003-04-02 | 1 | -1/+1 |
| | |||||
* | Revert portions of the doc comment patch. There should be no parser | Andrei Zmievski | 2003-04-02 | 1 | -20/+7 |
| | | | | | errors now. | ||||
* | Add __NAMESPACE__ auto-constant. | Stanislav Malyshev | 2003-04-01 | 1 | -0/+2 |
| | |||||
* | Multi-purpose patch: | Andrei Zmievski | 2003-03-31 | 1 | -7/+20 |
| | | | | | | | | | | - The fields of zend_namespace were not completely initialized which led to a variety of problems. - The occurrence of class/interface/namespace definition is now captured. - Functions/classes/interfaces/namespaces can be preceded by doc comments which are stored for use by extensions. | ||||
* | Since zend_do_begin_class_member_function_call assumes the previous | Andrei Zmievski | 2003-03-30 | 1 | -1/+1 |
| | | | | | opcode is FETCH_CONSTANT, swap the calls around. | ||||
* | Un-nest namespaces - now namespace X { namespace Y {} } is a parse error | Stanislav Malyshev | 2003-03-26 | 1 | -1/+0 |
| | | | | | Also refine namespaced includes | ||||
* | - Keep track of starting/ending line numbers for user functions. | Andrei Zmievski | 2003-03-19 | 1 | -1/+1 |
| | | | | | - Store last parsed doc comment in a compiler global for future use. | ||||
* | Optimize | Zeev Suraski | 2003-03-09 | 1 | -12/+5 |
| | |||||
* | Fix handling of ::foo | Zeev Suraski | 2003-03-09 | 1 | -17/+20 |
| | |||||
* | Fix parsing rules of namespaces/classes | Zeev Suraski | 2003-03-09 | 1 | -22/+25 |
| | |||||
* | Add ability to use ::interface_name in implements | Zeev Suraski | 2003-03-09 | 1 | -1/+2 |
| | |||||
* | Require abstract classes to be explicitly declared 'abstract', in order to | Zeev Suraski | 2003-03-06 | 1 | -3/+4 |
| | | | | | | | avoid making developers traverse the entire class/interface hierarchy before they can figure out whether a class is instantiable (ok, so it makes sense :) | ||||
* | Add class type hints | Zeev Suraski | 2003-03-06 | 1 | -10/+16 |
| | |||||
* | Implement $obj::static_func() | Zeev Suraski | 2003-03-05 | 1 | -1/+1 |
| | |||||
* | Add support for interfaces | Zeev Suraski | 2003-03-05 | 1 | -11/+29 |
| | |||||
* | Remove legacy code | Zeev Suraski | 2003-03-04 | 1 | -2/+2 |
| | |||||
* | Add 'final' | Zeev Suraski | 2003-02-24 | 1 | -1/+2 |
| | |||||
* | Allow namespaces to have a number of parts. I.e., now you can do: | Stanislav Malyshev | 2003-02-20 | 1 | -1/+1 |
| | | | | | | | | | | | namespace foo { function abc() {} } ... namespace foo { functio def() {} } | ||||
* | Whitespace & minor renames | Zeev Suraski | 2003-02-17 | 1 | -7/+7 |
| | |||||
* | whitespace | Zeev Suraski | 2003-02-17 | 1 | -2/+2 |
| | |||||
* | add support for ::foo syntax meaning "global one" | Stanislav Malyshev | 2003-02-16 | 1 | -0/+1 |
| | |||||
* | Namespace patch. Big changes: | Stanislav Malyshev | 2003-02-16 | 1 | -19/+58 |
| | | | | | | | | | | | | | | | | 1. Nested classes are gone. 2. New syntax for namespaces: namespace foo { class X { ... } function bar { ... } var x = 1; const ZZ = 2; } 3. Namespaced symbol access: $x = new foo::X; - etc. For now, namespaces are case insensitive, just like classes. Also, there can be no global class and namespace with the same name (to avoid ambiguities in :: resolution). | ||||
* | Improve parser handling of 'abstract' | Zeev Suraski | 2003-02-11 | 1 | -9/+14 |
| | |||||
* | - Treat $this->foo inside class X as an implicit 'public $foo' if X::$foo | Zeev Suraski | 2003-02-10 | 1 | -4/+4 |
| | | | | | | is not explicitly declared - Forbid multiple declaration of the same variable | ||||
* | - Added some missing CVS $Id$ tags, headers and footers. | foobar | 2003-02-01 | 1 | -0/+9 |
| | |||||
* | - Change "is" to "instanceof" as it explains better what the operator means. | Andi Gutmans | 2003-01-14 | 1 | -4/+4 |
| | | | | | - "is_a" was also appropriate but ugly. | ||||
* | Fix writability checks | Zeev Suraski | 2003-01-09 | 1 | -15/+15 |
| | |||||
* | - Allow variables to have both 'static' modifier and an access level. | Zeev Suraski | 2002-12-09 | 1 | -11/+9 |
| | | | | | | | | | NOTE: This only works at the syntax level right now (parser). It doesn't actually work as of yet - all statics are considered public for now - Prevent users from putting more restrictions on methods in derived classes (i.e., you cannot make a public method private in a derived class, etc.) | ||||
* | Treat the absence of an access type just as if 'public' was supplied | Zeev Suraski | 2002-12-08 | 1 | -2/+2 |
| | |||||
* | Remove unintentional code | Zeev Suraski | 2002-12-07 | 1 | -1/+1 |
| | |||||
* | - Implement public/protected/private methods. | Zeev Suraski | 2002-12-06 | 1 | -28/+38 |
| | | | | | | - Prevent instantiation of classes with abstract methods. Based in part on Marcus's patch. | ||||
* | - FN_IS_STATIC -> FN_STATIC | Andi Gutmans | 2002-11-24 | 1 | -1/+1 |
| |