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