I updated previous patch with new functionality:
* Variadic Parameters
* Unpacking Arguments

Git Commit:  https://git.eclipse.org/r/#/c/33947/

Michal

On Mon, Sep 29, 2014 at 4:59 PM, Dawid Pakuła <zu...@w3des.net> wrote:

> Hi,
>
> On 29 września 2014 at 15:19:34, Michał Niewrzał (micha...@zend.com)
> wrote:
>
> Hi,
> I started implementation of variadic parameters. Actually I'm not sure how
> exactly it should be done correctly, I don't know every part of PDT so it
> is hard to predict all implications.
>
> Probably none know now ;)
>
>  I'm talking mainly about AST nodes structure. My first shot was to just
> extend FormalParameter with 'isVariadic' flag, but maybe it is to simple
> approach:) I will be grateful for every suggestion :)
>
> PHP 7 will introduce AST-based compilation, and as I see in parser [1]
> isReference and isVariadic are just a flags. So we can also use just a
> flag.
>
> We should remember about this flag in in TI, CA, Formatter and label
> providers. FormatParameter#isVariadic should simplify an access.
>
> But, if you introduce special field (like isOptional), you have to
> remember about ASTMatcher.
>
> [1] -
> https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L546
>
>
>
> Michal
>
> On Fri, Sep 26, 2014 at 12:23 PM, Michał Niewrzał <micha...@zend.com>
> wrote:
>
>> Hi,
>> I prepared first commit for PHP 5.6 support. It is just initial draft
>> with 2 new elements:
>> * Constant Scalar Expressions -
>> https://wiki.php.net/rfc/const_scalar_exprs
>> * Power Operator - https://wiki.php.net/rfc/pow-operator
>>
>> These two elements can be tested already. Any feedback (positive or
>> negative) is appreciated :)
>> Git Commit:  https://git.eclipse.org/r/#/c/33947/
>>
>> BTW, Language model is still not regenerated. Is there a simple way to
>> install all necessary extensions? I tried to install them with pecl, but it
>> is pretty slow method :)
>>
>> Thanks,
>> Michal
>>
>> On Mon, Sep 22, 2014 at 2:58 PM, Dawid Pakuła <zu...@w3des.net> wrote:
>>
>>> Hi,
>>>
>>> Hi,
>>> I have some additional questions:
>>>
>>>  2. Generate code stubs and register it. Same for keywords
>>>
>>> Which part of code you are talking about exactly?
>>>
>>> See IPHPKeywordsInitializer and subclasses.
>>>
>>> Code stubs org.eclipse.php.core/Resources/language/php_ver (see
>>> README.txt howto generate it). Remember to update
>>> DefaultLanguageModelProvider after generation.
>>>
>>> 5. Copy/paste and extend parser. Current pdt parser are very close to
>>>> original php parser, so their source code may be helpful + tests
>>>
>>> Can you point me place where I can find this original PHP parser?
>>>
>>> https://github.com/php/php-src/blob/PHP-5.6.1/Zend/zend_language_parser.y
>>>
>>> And one more question about generating language model. File
>>> "generate.php" is generating code based on loaded extensions. Is there a
>>> list of modules that need to be enabled during generation?
>>>
>>> This was my mistake while initial php 5.5 implementation. File names in
>>> languages/php5.5 are your list. Module_name.php ;)
>>>
>>>
>>>
>>> Thanks,
>>> Michal
>>>
>>> On Thu, Sep 18, 2014 at 12:12 AM, Dawid Pakuła <zu...@w3des.net> wrote:
>>>
>>>> Hi,
>>>>
>>>> most elements you will find in one commit : [1].
>>>> bug for php 5.6 is open [2]
>>>>
>>>> Steps:
>>>> 1. Extend PHPVersion and where is used (projects wizard, project
>>>> preferences and more…)
>>>> 2. Generate code stubs and register it. Same for keywords
>>>> 3. Copy/paste php 5.5 flexer and extend it. Two or three new tokens as
>>>> I see(pow operator, variadic…) + tests
>>>> 4. Create new AST nodes for DOM and Compiler tree
>>>> 5. Copy/paste and extend parser. Current pdt parser are very close to
>>>> original php parser, so their source code may be helpful + tests
>>>> 6. Extend occurrences finder + tests
>>>> 7. Extend formatter / syntax coloring + tests
>>>> 8. Extend ASTMatcher + tests
>>>> 9. Modify inference engine + tests
>>>> 10. Modify CA + tests
>>>>
>>>> php 5.5 was in general easy to implement.
>>>> With php 5.6 will be harder due new use function and use constant
>>>>
>>>> DLTK doesn’t allow to add additional informations to imports. Patch: [3]
>>>>
>>>> I hope it’s helpful.
>>>>
>>>> [1] -
>>>> http://git.eclipse.org/c/pdt/org.eclipse.pdt.git/commit/?id=9034500b3b47f34efa42be4d8b18871d78493995
>>>> [2] - https://bugs.eclipse.org/bugs/show_bug.cgi?id=435922
>>>> [3] - https://bugs.eclipse.org/bugs/show_bug.cgi?id=437856
>>>>
>>>> --
>>>> Dawid Pakuła
>>>> +48 795 996 064
>>>>
>>>> w3des.net
>>>> ul. Grabiszyńska 108/10
>>>> 53-437 Wrocław
>>>> NIP: 894-293-95-95
>>>> REGON: 340769757
>>>>
>>>> From: Michał Niewrzał <micha...@zend.com> <micha...@zend.com>
>>>> Reply: PDT Developers <pdt-dev@eclipse.org>> <pdt-dev@eclipse.org>
>>>> Date: 17 września 2014 at 23:53:02
>>>> To: PDT Developers <pdt-dev@eclipse.org>> <pdt-dev@eclipse.org>
>>>> Subject:  [pdt-dev] PHP 5.6 support
>>>>
>>>> Hi All,
>>>> We (Zend Studio team) begin to think about support for PHP 5.6. Of
>>>> course we need to start from PDT. It looks that I will be person most
>>>> involved from our team and I want to start this conversation with at least
>>>> general idea what need to be done. I heard that previous version 5.5 was
>>>> implemented mostly by Dawid:) Dawid, can you write short (I hope) list with
>>>> PDT parts that needs to be adjusted/extended?
>>>>
>>>> Thanks,
>>>> Michal
>>>> _______________________________________________
>>>> pdt-dev mailing list
>>>> pdt-dev@eclipse.org
>>>> To change your delivery options, retrieve your password, or unsubscribe
>>>> from this list, visit
>>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>>>>
>>>>
>>>> _______________________________________________
>>>> pdt-dev mailing list
>>>> pdt-dev@eclipse.org
>>>> To change your delivery options, retrieve your password, or unsubscribe
>>>> from this list, visit
>>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>>>>
>>>
>>> _______________________________________________
>>> pdt-dev mailing list
>>> pdt-dev@eclipse.org
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>>>
>>>
>>> _______________________________________________
>>> pdt-dev mailing list
>>> pdt-dev@eclipse.org
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>>>
>>
>>
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
>
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
_______________________________________________
pdt-dev mailing list
pdt-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

Reply via email to